@kizmann/nano-ui 1.0.15 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/nano-ui.css +1 -1
- package/dist/nano-ui.js +1 -1
- package/dist/nano-ui.js.map +1 -1
- package/dist/themes/default.css +1 -0
- package/dist/themes/webservy.css +1 -0
- package/package.json +6 -2
- package/src/alert/index.js +13 -2
- package/src/alert/index.scss +1 -1
- package/src/alert/src/alert/alert-handler.mjs +143 -0
- package/src/alert/src/alert/alert.scss +35 -43
- package/src/button/index.scss +2 -2
- package/src/button/src/button/button.jsx +12 -0
- package/src/button/src/button/button.scss +30 -31
- package/src/button/src/button-group/button-group.scss +9 -19
- package/src/cascader/index.scss +2 -2
- package/src/cascader/src/cascader/cascader.jsx +22 -4
- package/src/cascader/src/cascader/cascader.scss +26 -78
- package/src/cascader/src/cascader-panel/cascader-panel.scss +2 -16
- package/src/chart/index.js +9 -0
- package/src/chart/index.scss +3 -0
- package/src/chart/src/chart-bar/chart-bar.jsx +344 -0
- package/src/chart/src/chart-bar/chart-bar.scss +143 -0
- package/src/chart/src/chart-donut/chart-donut.jsx +404 -0
- package/src/chart/src/chart-donut/chart-donut.scss +123 -0
- package/src/chart/src/chart-item/chart-item.jsx +110 -0
- package/src/chart/src/chart-item/chart-item.scss +30 -0
- package/src/checkbox/index.scss +2 -2
- package/src/checkbox/src/checkbox/checkbox.scss +11 -30
- package/src/checkbox/src/checkbox-group/checkbox-group.scss +19 -29
- package/src/collapse/index.scss +2 -2
- package/src/collapse/src/collapse/collapse.jsx +27 -4
- package/src/collapse/src/collapse/collapse.scss +14 -22
- package/src/collapse/src/collapse-item/collapse-item.jsx +43 -9
- package/src/collapse/src/collapse-item/collapse-item.scss +31 -29
- package/src/config/index.scss +3 -3
- package/src/config/src/builder/builder.scss +1 -1
- package/src/config/src/reference-panel/reference-panel.scss +1 -1
- package/src/confirm/index.js +23 -1
- package/src/confirm/index.scss +1 -1
- package/src/confirm/src/confirm/confirm-handler.mjs +226 -0
- package/src/confirm/src/confirm/confirm.jsx +109 -123
- package/src/confirm/src/confirm/confirm.scss +57 -49
- package/src/datepicker/index.scss +2 -2
- package/src/datepicker/src/datepicker/datepicker.jsx +23 -4
- package/src/datepicker/src/datepicker/datepicker.scss +20 -51
- package/src/datepicker/src/datepicker-panel/datepicker-panel.jsx +4 -2
- package/src/datepicker/src/datepicker-panel/datepicker-panel.scss +79 -53
- package/src/datetimepicker/index.scss +1 -1
- package/src/datetimepicker/src/datetimepicker/datetimepicker.jsx +3 -3
- package/src/datetimepicker/src/datetimepicker/datetimepicker.scss +23 -61
- package/src/draggable/index.scss +6 -6
- package/src/draggable/src/draggrid/draggrid.jsx +4 -4
- package/src/draggable/src/draggrid/draggrid.scss +2 -19
- package/src/draggable/src/draggrid-item/draggrid-item.scss +12 -34
- package/src/draggable/src/draghandler/draghandler.scss +1 -1
- package/src/draggable/src/draglist/draglist.jsx +4 -4
- package/src/draggable/src/draglist/draglist.scss +3 -20
- package/src/draggable/src/draglist-item/draglist-item.jsx +5 -2
- package/src/draggable/src/draglist-item/draglist-item.scss +15 -36
- package/src/draggable/src/dropzone/dropzone.scss +6 -19
- package/src/drawer/index.scss +1 -1
- package/src/drawer/src/drawer/drawer.jsx +6 -3
- package/src/drawer/src/drawer/drawer.scss +27 -31
- package/src/durationpicker/index.scss +1 -1
- package/src/durationpicker/src/durationpicker/durationpicker.jsx +3 -3
- package/src/durationpicker/src/durationpicker/durationpicker.scss +18 -55
- package/src/empty/index.scss +1 -1
- package/src/empty/src/empty-icon/empty-icon.jsx +1 -1
- package/src/empty/src/empty-icon/empty-icon.scss +13 -26
- package/src/file/index.scss +1 -1
- package/src/file/src/file/file.jsx +9 -0
- package/src/file/src/file/file.scss +2 -2
- package/src/form/index.js +2 -0
- package/src/form/index.scss +5 -4
- package/src/form/src/form/form-rules.mjs +182 -0
- package/src/form/src/form/form.jsx +108 -4
- package/src/form/src/form/form.scss +33 -1
- package/src/form/src/form-bag/form-bag.jsx +90 -0
- package/src/form/src/form-bag/form-bag.scss +59 -0
- package/src/form/src/form-frame/form-frame.jsx +17 -9
- package/src/form/src/form-frame/form-frame.scss +25 -38
- package/src/form/src/form-group/form-group.jsx +24 -6
- package/src/form/src/form-group/form-group.scss +85 -66
- package/src/form/src/form-item/form-item.jsx +79 -68
- package/src/form/src/form-item/form-item.scss +23 -32
- package/src/grid/index.scss +1 -0
- package/src/grid/src/grid/grid.scss +146 -0
- package/src/index.js +4 -1
- package/src/index.scss +45 -39
- package/src/info/index.scss +3 -3
- package/src/info/src/info/info.jsx +1 -1
- package/src/info/src/info/info.scss +7 -26
- package/src/info/src/info-column/info-column.scss +2 -16
- package/src/info/src/info-field/info-field.scss +1 -1
- package/src/input/index.scss +1 -1
- package/src/input/src/input/input.jsx +1 -1
- package/src/input/src/input/input.scss +15 -40
- package/src/input-number/index.scss +1 -1
- package/src/input-number/src/input-number/input-number.jsx +39 -23
- package/src/input-number/src/input-number/input-number.scss +14 -59
- package/src/loader/index.scss +1 -1
- package/src/loader/src/loader/loader.scss +16 -29
- package/src/map/index.scss +1 -1
- package/src/map/src/map/map.scss +1 -2
- package/src/modal/index.scss +1 -1
- package/src/modal/src/modal/modal.jsx +7 -4
- package/src/modal/src/modal/modal.scss +27 -40
- package/src/notification/index.js +23 -3
- package/src/notification/index.scss +1 -1
- package/src/notification/src/notification/notification-element.mjs +74 -0
- package/src/notification/src/notification/notification-handler.mjs +75 -0
- package/src/notification/src/notification/notification.scss +13 -25
- package/src/paginator/index.scss +1 -1
- package/src/paginator/src/paginator/paginator.jsx +24 -29
- package/src/paginator/src/paginator/paginator.scss +39 -44
- package/src/popover/index.js +20 -3
- package/src/popover/index.scss +1 -1
- package/src/popover/src/popover/popover-element.mjs +578 -0
- package/src/popover/src/popover/popover-handler.mjs +116 -0
- package/src/popover/src/popover/popover-helper.mjs +75 -0
- package/src/popover/src/popover/popover.jsx +78 -550
- package/src/popover/src/popover/popover.scss +186 -78
- package/src/preview/index.js +46 -4
- package/src/preview/index.scss +5 -4
- package/src/preview/src/preview/preview-handler.mjs +205 -0
- package/src/preview/src/preview/preview-helper.mjs +126 -0
- package/src/preview/src/preview/preview.jsx +87 -117
- package/src/preview/src/preview/preview.scss +29 -2
- package/src/preview/src/preview-image/preview-image.scss +1 -3
- package/src/preview/src/preview-modal/preview-modal.jsx +126 -0
- package/src/preview/src/preview-modal/preview-modal.scss +69 -0
- package/src/preview/src/preview-plain/preview-plain.jsx +32 -20
- package/src/preview/src/preview-plain/preview-plain.scss +5 -3
- package/src/preview/src/preview-video/preview-video.jsx +3 -60
- package/src/preview/src/preview-video/preview-video.scss +1 -2
- package/src/radio/index.scss +2 -2
- package/src/radio/src/radio/radio.scss +13 -32
- package/src/radio/src/radio-group/radio-group.scss +18 -28
- package/src/rating/index.scss +1 -1
- package/src/rating/src/rating/rating.scss +15 -33
- package/src/resizer/index.js +3 -1
- package/src/resizer/index.scss +1 -1
- package/src/resizer/src/resizer/resizer-next.jsx +556 -0
- package/src/resizer/src/resizer/resizer.scss +1 -1
- package/src/root/helpers.scss +41 -0
- package/src/root/image/angle-down-shadow.svg +3 -0
- package/src/root/image/angle-down.svg +3 -0
- package/src/root/image/angle-left-shadow.svg +3 -0
- package/src/root/image/angle-left.svg +3 -0
- package/src/root/image/angle-right-shadow.svg +3 -0
- package/src/root/image/angle-right.svg +3 -0
- package/src/root/image/angle-up-shadow.svg +3 -0
- package/src/root/image/angle-up.svg +3 -0
- package/src/root/image/empty-ufo.svg +8 -0
- package/src/root/image/empty.svg +10 -0
- package/src/root/image/star.svg +5 -0
- package/src/root/vars.scss +5 -3
- package/src/scrollbar/index.scss +1 -1
- package/src/scrollbar/src/scrollbar/scrollbar.jsx +213 -376
- package/src/scrollbar/src/scrollbar/scrollbar.scss +23 -19
- package/src/select/index.scss +2 -2
- package/src/select/src/select/select.jsx +30 -26
- package/src/select/src/select/select.scss +49 -104
- package/src/select/src/select-option/select-option.scss +1 -1
- package/src/slider/index.scss +1 -1
- package/src/slider/src/slider/slider.jsx +5 -3
- package/src/slider/src/slider/slider.scss +37 -46
- package/src/switch/index.scss +1 -1
- package/src/switch/src/switch/switch.scss +17 -44
- package/src/table/index.scss +4 -4
- package/src/table/src/table/table.jsx +9 -9
- package/src/table/src/table/table.scss +19 -25
- package/src/table/src/table-cell/table-cell.scss +7 -18
- package/src/table/src/table-cell/types/table-cell-image.jsx +9 -3
- package/src/table/src/table-column/table-column.jsx +12 -24
- package/src/table/src/table-column/table-column.scss +14 -13
- package/src/table/src/table-filter/table-filter.jsx +4 -4
- package/src/table/src/table-filter/table-filter.scss +10 -4
- package/src/tabs/index.scss +2 -2
- package/src/tabs/src/tabs/tabs.scss +20 -29
- package/src/tabs/src/tabs-item/tabs-item.jsx +15 -7
- package/src/tabs/src/tabs-item/tabs-item.scss +17 -25
- package/src/tags/index.scss +2 -2
- package/src/tags/src/tags/tags.jsx +1 -0
- package/src/tags/src/tags/tags.scss +6 -2
- package/src/tags/src/tags-item/tags-item.jsx +8 -9
- package/src/tags/src/tags-item/tags-item.scss +10 -31
- package/src/textarea/index.scss +1 -1
- package/src/textarea/src/textarea/textarea.jsx +2 -0
- package/src/textarea/src/textarea/textarea.scss +6 -23
- package/src/timepicker/index.scss +2 -2
- package/src/timepicker/src/timepicker/timepicker.jsx +6 -3
- package/src/timepicker/src/timepicker/timepicker.scss +21 -53
- package/src/timepicker/src/timepicker-panel/timepicker-panel.jsx +15 -3
- package/src/timepicker/src/timepicker-panel/timepicker-panel.scss +34 -41
- package/src/tooltip/index.scss +1 -0
- package/src/tooltip/src/tooltip/tooltip.scss +116 -0
- package/src/transfer/index.scss +1 -1
- package/src/transfer/src/transfer/transfer.jsx +2 -2
- package/src/transfer/src/transfer/transfer.scss +33 -53
- package/src/virtualscroller/index.scss +1 -1
- package/src/virtualscroller/src/virtualscroller/virtualscroller.jsx +71 -44
- package/src/virtualscroller/src/virtualscroller/virtualscroller.scss +4 -2
- package/themes/default/alert/index.scss +1 -0
- package/themes/default/alert/src/alert/alert.scss +29 -0
- package/themes/default/button/index.scss +2 -0
- package/themes/default/button/src/button/button.scss +87 -0
- package/themes/default/button/src/button-group/button-group.scss +1 -0
- package/themes/default/cascader/index.scss +2 -0
- package/themes/default/cascader/src/cascader/cascader.scss +31 -0
- package/themes/default/cascader/src/cascader-panel/cascader-panel.scss +21 -0
- package/themes/default/chart/index.scss +2 -0
- package/themes/default/chart/src/chart-donut/chart-donut.scss +22 -0
- package/themes/default/chart/src/chart-item/chart-item.scss +11 -0
- package/themes/default/checkbox/index.scss +2 -0
- package/themes/default/checkbox/src/checkbox/checkbox.scss +26 -0
- package/themes/default/checkbox/src/checkbox-group/checkbox-group.scss +1 -0
- package/themes/default/collapse/index.scss +2 -0
- package/themes/default/collapse/src/collapse/collapse.scss +14 -0
- package/themes/default/collapse/src/collapse-item/collapse-item.scss +14 -0
- package/themes/default/confirm/index.scss +1 -0
- package/themes/default/confirm/src/confirm/confirm.scss +35 -0
- package/themes/default/datepicker/index.scss +2 -0
- package/themes/default/datepicker/src/datepicker/datepicker.scss +44 -0
- package/themes/default/datepicker/src/datepicker-panel/datepicker-panel.scss +44 -0
- package/themes/default/datetimepicker/index.scss +1 -0
- package/themes/default/datetimepicker/src/datetimepicker/datetimepicker.scss +51 -0
- package/themes/default/demo/index.scss +1 -0
- package/themes/default/demo/src/demo/demo.scss +34 -0
- package/themes/default/draggable/index.scss +9 -0
- package/themes/default/draggable/src/draggrid/draggrid.scss +5 -0
- package/themes/default/draggable/src/draggrid-item/draggrid-item.scss +52 -0
- package/themes/default/draggable/src/draghandler/draghandler.scss +15 -0
- package/themes/default/draggable/src/draglist/draglist.scss +5 -0
- package/themes/default/draggable/src/draglist-item/draglist-item.scss +56 -0
- package/themes/default/draggable/src/dropzone/dropzone.scss +5 -0
- package/themes/default/drawer/index.scss +1 -0
- package/themes/default/drawer/src/drawer/drawer.scss +25 -0
- package/themes/default/durationpicker/index.scss +1 -0
- package/themes/default/durationpicker/src/durationpicker/durationpicker.scss +39 -0
- package/themes/default/empty/index.scss +1 -0
- package/themes/default/empty/src/empty-icon/empty-icon.scss +17 -0
- package/themes/default/example.scss +29 -0
- package/themes/default/file/index.scss +1 -0
- package/themes/default/file/src/file/file.scss +1 -0
- package/themes/default/form/index.scss +4 -0
- package/themes/default/form/src/form/form.scss +17 -0
- package/themes/default/form/src/form-frame/form-frame.scss +25 -0
- package/themes/default/form/src/form-group/form-group.scss +42 -0
- package/themes/default/form/src/form-item/form-item.scss +25 -0
- package/themes/default/index.scss +43 -0
- package/themes/default/info/index.scss +3 -0
- package/themes/default/info/src/info/info.scss +5 -0
- package/themes/default/info/src/info-column/info-column.scss +5 -0
- package/themes/default/info/src/info-field/info-field.scss +5 -0
- package/themes/default/input/index.scss +1 -0
- package/themes/default/input/src/input/input.scss +27 -0
- package/themes/default/input-number/index.scss +1 -0
- package/themes/default/input-number/src/input-number/input-number.scss +30 -0
- package/themes/default/loader/index.scss +1 -0
- package/themes/default/loader/src/loader/loader.scss +10 -0
- package/themes/default/map/index.scss +1 -0
- package/themes/default/map/src/map/map.scss +1 -0
- package/themes/default/modal/index.scss +1 -0
- package/themes/default/modal/src/modal/modal.scss +25 -0
- package/themes/default/notification/index.scss +1 -0
- package/themes/default/notification/src/notification/notification.scss +11 -0
- package/themes/default/paginator/index.scss +1 -0
- package/themes/default/paginator/src/paginator/paginator.scss +5 -0
- package/themes/default/popover/index.scss +1 -0
- package/themes/default/popover/src/popover/popover.scss +131 -0
- package/themes/default/preview/index.scss +4 -0
- package/themes/default/preview/src/preview-image/preview-image.scss +5 -0
- package/themes/default/preview/src/preview-modal/preview-modal.scss +39 -0
- package/themes/default/preview/src/preview-plain/preview-plain.scss +9 -0
- package/themes/default/preview/src/preview-video/preview-video.scss +5 -0
- package/themes/default/radio/index.scss +2 -0
- package/themes/default/radio/src/radio/radio.scss +32 -0
- package/themes/default/radio/src/radio-group/radio-group.scss +1 -0
- package/themes/default/rating/index.scss +1 -0
- package/themes/default/rating/src/rating/rating.scss +14 -0
- package/themes/default/resizer/index.scss +1 -0
- package/themes/default/resizer/src/resizer/resizer.scss +5 -0
- package/themes/default/root/helpers.scss +41 -0
- package/themes/default/root/image/angle-down-shadow.svg +3 -0
- package/themes/default/root/image/angle-down.svg +3 -0
- package/themes/default/root/image/angle-left-shadow.svg +3 -0
- package/themes/default/root/image/angle-left.svg +3 -0
- package/themes/default/root/image/angle-right-shadow.svg +3 -0
- package/themes/default/root/image/angle-right.svg +3 -0
- package/themes/default/root/image/angle-up-shadow.svg +3 -0
- package/themes/default/root/image/angle-up.svg +3 -0
- package/themes/default/root/image/empty-ufo.svg +8 -0
- package/themes/default/root/image/empty.svg +10 -0
- package/themes/default/root/image/star.svg +5 -0
- package/themes/default/root/vars/colors-dark-bluish.scss +457 -0
- package/themes/default/root/vars/colors-dark.scss +457 -0
- package/themes/default/root/vars/colors-light-bluish.scss +479 -0
- package/themes/default/root/vars/colors-light.scss +479 -0
- package/themes/default/root/vars/sizes-default.scss +101 -0
- package/themes/default/scrollbar/index.scss +1 -0
- package/themes/default/scrollbar/src/scrollbar/scrollbar.scss +7 -0
- package/themes/default/select/index.scss +2 -0
- package/themes/default/select/src/select/select.scss +32 -0
- package/themes/default/select/src/select-option/select-option.scss +1 -0
- package/themes/default/slider/index.scss +1 -0
- package/themes/default/slider/src/slider/slider.scss +30 -0
- package/themes/default/switch/index.scss +1 -0
- package/themes/default/switch/src/switch/switch.scss +19 -0
- package/themes/default/table/index.scss +4 -0
- package/themes/default/table/src/table/table.scss +14 -0
- package/themes/default/table/src/table-cell/table-cell.scss +34 -0
- package/themes/{macos → default}/table/src/table-column/table-column.scss +9 -10
- package/themes/default/table/src/table-filter/table-filter.scss +1 -0
- package/themes/default/tabs/index.scss +2 -0
- package/themes/default/tabs/src/tabs/tabs.scss +9 -0
- package/themes/default/tabs/src/tabs-item/tabs-item.scss +23 -0
- package/themes/default/tags/index.scss +2 -0
- package/themes/default/tags/src/tags/tags.scss +1 -0
- package/themes/default/tags/src/tags-item/tags-item.scss +17 -0
- package/themes/default/textarea/index.scss +1 -0
- package/themes/default/textarea/src/textarea/textarea.scss +18 -0
- package/themes/default/timepicker/index.scss +2 -0
- package/themes/default/timepicker/src/timepicker/timepicker.scss +44 -0
- package/themes/default/timepicker/src/timepicker-panel/timepicker-panel.scss +26 -0
- package/themes/default/transfer/index.scss +1 -0
- package/themes/default/transfer/src/transfer/transfer.scss +20 -0
- package/themes/default/virtualscroller/index.scss +1 -0
- package/themes/default/virtualscroller/src/virtualscroller/virtualscroller.scss +1 -0
- package/themes/webservy/alert/index.scss +1 -0
- package/themes/webservy/alert/src/alert/alert.scss +29 -0
- package/themes/webservy/button/index.scss +2 -0
- package/themes/webservy/button/src/button/button.scss +87 -0
- package/themes/webservy/button/src/button-group/button-group.scss +1 -0
- package/themes/webservy/cascader/index.scss +2 -0
- package/themes/webservy/cascader/src/cascader/cascader.scss +27 -0
- package/themes/webservy/cascader/src/cascader-panel/cascader-panel.scss +21 -0
- package/themes/webservy/chart/index.scss +2 -0
- package/themes/webservy/chart/src/chart-donut/chart-donut.scss +22 -0
- package/themes/webservy/chart/src/chart-item/chart-item.scss +11 -0
- package/themes/webservy/checkbox/index.scss +2 -0
- package/themes/webservy/checkbox/src/checkbox/checkbox.scss +25 -0
- package/themes/webservy/checkbox/src/checkbox-group/checkbox-group.scss +1 -0
- package/themes/webservy/collapse/index.scss +2 -0
- package/themes/webservy/collapse/src/collapse/collapse.scss +14 -0
- package/themes/webservy/collapse/src/collapse-item/collapse-item.scss +14 -0
- package/themes/webservy/confirm/index.scss +1 -0
- package/themes/webservy/confirm/src/confirm/confirm.scss +35 -0
- package/themes/webservy/datepicker/index.scss +2 -0
- package/themes/webservy/datepicker/src/datepicker/datepicker.scss +40 -0
- package/themes/webservy/datepicker/src/datepicker-panel/datepicker-panel.scss +44 -0
- package/themes/webservy/datetimepicker/index.scss +1 -0
- package/themes/webservy/datetimepicker/src/datetimepicker/datetimepicker.scss +47 -0
- package/themes/webservy/demo/index.scss +1 -0
- package/themes/webservy/demo/src/demo/demo.scss +34 -0
- package/themes/webservy/draggable/index.scss +9 -0
- package/themes/webservy/draggable/src/draggrid/draggrid.scss +5 -0
- package/themes/webservy/draggable/src/draggrid-item/draggrid-item.scss +51 -0
- package/themes/webservy/draggable/src/draghandler/draghandler.scss +15 -0
- package/themes/webservy/draggable/src/draglist/draglist.scss +5 -0
- package/themes/webservy/draggable/src/draglist-item/draglist-item.scss +55 -0
- package/themes/webservy/draggable/src/dropzone/dropzone.scss +5 -0
- package/themes/webservy/drawer/index.scss +1 -0
- package/themes/webservy/drawer/src/drawer/drawer.scss +23 -0
- package/themes/webservy/durationpicker/index.scss +1 -0
- package/themes/webservy/durationpicker/src/durationpicker/durationpicker.scss +35 -0
- package/themes/webservy/empty/index.scss +1 -0
- package/themes/webservy/empty/src/empty-icon/empty-icon.scss +17 -0
- package/themes/webservy/example.scss +29 -0
- package/themes/webservy/file/index.scss +1 -0
- package/themes/webservy/file/src/file/file.scss +1 -0
- package/themes/webservy/form/index.scss +4 -0
- package/themes/webservy/form/src/form/form.scss +17 -0
- package/themes/webservy/form/src/form-frame/form-frame.scss +25 -0
- package/themes/webservy/form/src/form-group/form-group.scss +42 -0
- package/themes/webservy/form/src/form-item/form-item.scss +25 -0
- package/themes/webservy/index.scss +43 -0
- package/themes/webservy/info/index.scss +3 -0
- package/themes/webservy/info/src/info/info.scss +5 -0
- package/themes/webservy/info/src/info-column/info-column.scss +5 -0
- package/themes/webservy/info/src/info-field/info-field.scss +5 -0
- package/themes/webservy/input/index.scss +1 -0
- package/themes/webservy/input/src/input/input.scss +23 -0
- package/themes/webservy/input-number/index.scss +1 -0
- package/themes/webservy/input-number/src/input-number/input-number.scss +27 -0
- package/themes/webservy/loader/index.scss +1 -0
- package/themes/webservy/loader/src/loader/loader.scss +10 -0
- package/themes/webservy/map/index.scss +1 -0
- package/themes/webservy/map/src/map/map.scss +1 -0
- package/themes/webservy/modal/index.scss +1 -0
- package/themes/webservy/modal/src/modal/modal.scss +23 -0
- package/themes/webservy/notification/index.scss +1 -0
- package/themes/webservy/notification/src/notification/notification.scss +11 -0
- package/themes/webservy/paginator/index.scss +1 -0
- package/themes/webservy/paginator/src/paginator/paginator.scss +5 -0
- package/themes/webservy/popover/index.scss +1 -0
- package/themes/webservy/popover/src/popover/popover.scss +131 -0
- package/themes/webservy/preview/index.scss +4 -0
- package/themes/webservy/preview/src/preview-image/preview-image.scss +5 -0
- package/themes/webservy/preview/src/preview-modal/preview-modal.scss +39 -0
- package/themes/webservy/preview/src/preview-plain/preview-plain.scss +9 -0
- package/themes/webservy/preview/src/preview-video/preview-video.scss +5 -0
- package/themes/webservy/radio/index.scss +2 -0
- package/themes/webservy/radio/src/radio/radio.scss +31 -0
- package/themes/webservy/radio/src/radio-group/radio-group.scss +1 -0
- package/themes/webservy/rating/index.scss +1 -0
- package/themes/webservy/rating/src/rating/rating.scss +14 -0
- package/themes/webservy/resizer/index.scss +1 -0
- package/themes/webservy/resizer/src/resizer/resizer.scss +5 -0
- package/themes/webservy/root/helpers.scss +41 -0
- package/themes/webservy/root/image/angle-down-shadow.svg +3 -0
- package/themes/webservy/root/image/angle-down.svg +3 -0
- package/themes/webservy/root/image/angle-left-shadow.svg +3 -0
- package/themes/webservy/root/image/angle-left.svg +3 -0
- package/themes/webservy/root/image/angle-right-shadow.svg +3 -0
- package/themes/webservy/root/image/angle-right.svg +3 -0
- package/themes/webservy/root/image/angle-up-shadow.svg +3 -0
- package/themes/webservy/root/image/angle-up.svg +3 -0
- package/themes/webservy/root/image/empty-ufo.svg +8 -0
- package/themes/webservy/root/image/empty.svg +10 -0
- package/themes/webservy/root/image/star.svg +5 -0
- package/themes/webservy/root/vars/colors-dark-bluish.scss +461 -0
- package/themes/webservy/root/vars/colors-dark.scss +461 -0
- package/themes/webservy/root/vars/colors-light-bluish.scss +483 -0
- package/themes/webservy/root/vars/colors-light.scss +483 -0
- package/themes/webservy/root/vars/sizes-default.scss +101 -0
- package/themes/webservy/scrollbar/index.scss +1 -0
- package/themes/webservy/scrollbar/src/scrollbar/scrollbar.scss +7 -0
- package/themes/webservy/select/index.scss +2 -0
- package/themes/webservy/select/src/select/select.scss +28 -0
- package/themes/webservy/select/src/select-option/select-option.scss +1 -0
- package/themes/webservy/slider/index.scss +1 -0
- package/themes/webservy/slider/src/slider/slider.scss +30 -0
- package/themes/webservy/switch/index.scss +1 -0
- package/themes/webservy/switch/src/switch/switch.scss +19 -0
- package/themes/webservy/table/index.scss +4 -0
- package/themes/webservy/table/src/table/table.scss +14 -0
- package/themes/webservy/table/src/table-cell/table-cell.scss +34 -0
- package/themes/webservy/table/src/table-column/table-column.scss +31 -0
- package/themes/webservy/table/src/table-filter/table-filter.scss +1 -0
- package/themes/webservy/tabs/index.scss +2 -0
- package/themes/webservy/tabs/src/tabs/tabs.scss +9 -0
- package/themes/webservy/tabs/src/tabs-item/tabs-item.scss +23 -0
- package/themes/webservy/tags/index.scss +2 -0
- package/themes/webservy/tags/src/tags/tags.scss +1 -0
- package/themes/webservy/tags/src/tags-item/tags-item.scss +17 -0
- package/themes/webservy/textarea/index.scss +1 -0
- package/themes/webservy/textarea/src/textarea/textarea.scss +14 -0
- package/themes/webservy/timepicker/index.scss +2 -0
- package/themes/webservy/timepicker/src/timepicker/timepicker.scss +40 -0
- package/themes/webservy/timepicker/src/timepicker-panel/timepicker-panel.scss +26 -0
- package/themes/webservy/transfer/index.scss +1 -0
- package/themes/webservy/transfer/src/transfer/transfer.scss +24 -0
- package/themes/webservy/virtualscroller/index.scss +1 -0
- package/themes/webservy/virtualscroller/src/virtualscroller/virtualscroller.scss +1 -0
- package/dist/themes/dark.css +0 -1
- package/dist/themes/light.css +0 -1
- package/src/alert/src/alert/alert.js +0 -133
- package/src/notification/src/notification/notification.js +0 -165
- package/src/root/image/empty-default.svg +0 -30
- package/src/root/image/empty-space.svg +0 -34
- package/src/root/image/star-default.svg +0 -10
- package/themes/macos/alert/index.scss +0 -1
- package/themes/macos/alert/src/alert/alert.scss +0 -27
- package/themes/macos/button/index.scss +0 -2
- package/themes/macos/button/src/button/button.scss +0 -98
- package/themes/macos/button/src/button-group/button-group.scss +0 -1
- package/themes/macos/cascader/index.scss +0 -2
- package/themes/macos/cascader/src/cascader/cascader.scss +0 -47
- package/themes/macos/cascader/src/cascader-panel/cascader-panel.scss +0 -14
- package/themes/macos/checkbox/index.scss +0 -2
- package/themes/macos/checkbox/src/checkbox/checkbox.scss +0 -45
- package/themes/macos/checkbox/src/checkbox-group/checkbox-group.scss +0 -1
- package/themes/macos/collapse/index.scss +0 -2
- package/themes/macos/collapse/src/collapse/collapse.scss +0 -22
- package/themes/macos/collapse/src/collapse-item/collapse-item.scss +0 -22
- package/themes/macos/confirm/index.scss +0 -1
- package/themes/macos/confirm/src/confirm/confirm.scss +0 -14
- package/themes/macos/datepicker/index.scss +0 -2
- package/themes/macos/datepicker/src/datepicker/datepicker.scss +0 -51
- package/themes/macos/datepicker/src/datepicker-panel/datepicker-panel.scss +0 -45
- package/themes/macos/datetimepicker/index.scss +0 -1
- package/themes/macos/datetimepicker/src/datetimepicker/datetimepicker.scss +0 -69
- package/themes/macos/demo/index.scss +0 -1
- package/themes/macos/demo/src/demo/demo.scss +0 -22
- package/themes/macos/draggable/index.scss +0 -9
- package/themes/macos/draggable/src/draggrid/draggrid.scss +0 -14
- package/themes/macos/draggable/src/draggrid-item/draggrid-item.scss +0 -66
- package/themes/macos/draggable/src/draghandler/draghandler.scss +0 -15
- package/themes/macos/draggable/src/draglist/draglist.scss +0 -14
- package/themes/macos/draggable/src/draglist-item/draglist-item.scss +0 -73
- package/themes/macos/draggable/src/dropzone/dropzone.scss +0 -14
- package/themes/macos/drawer/index.scss +0 -1
- package/themes/macos/drawer/src/drawer/drawer.scss +0 -35
- package/themes/macos/durationpicker/index.scss +0 -1
- package/themes/macos/durationpicker/src/durationpicker/durationpicker.scss +0 -53
- package/themes/macos/empty/index.scss +0 -1
- package/themes/macos/empty/src/empty-icon/empty-icon.scss +0 -13
- package/themes/macos/file/index.scss +0 -1
- package/themes/macos/file/src/file/file.scss +0 -39
- package/themes/macos/form/index.scss +0 -4
- package/themes/macos/form/src/form/form.scss +0 -1
- package/themes/macos/form/src/form-frame/form-frame.scss +0 -34
- package/themes/macos/form/src/form-group/form-group.scss +0 -43
- package/themes/macos/form/src/form-item/form-item.scss +0 -29
- package/themes/macos/index-dark.scss +0 -3
- package/themes/macos/index-light.scss +0 -3
- package/themes/macos/index.scss +0 -40
- package/themes/macos/info/index.scss +0 -3
- package/themes/macos/info/src/info/info.scss +0 -5
- package/themes/macos/info/src/info-column/info-column.scss +0 -5
- package/themes/macos/info/src/info-field/info-field.scss +0 -5
- package/themes/macos/input/index.scss +0 -1
- package/themes/macos/input/src/input/input.scss +0 -39
- package/themes/macos/input-number/index.scss +0 -1
- package/themes/macos/input-number/src/input-number/input-number.scss +0 -48
- package/themes/macos/loader/index.scss +0 -1
- package/themes/macos/loader/src/loader/loader.scss +0 -22
- package/themes/macos/map/index.scss +0 -1
- package/themes/macos/map/src/map/map.scss +0 -1
- package/themes/macos/modal/index.scss +0 -1
- package/themes/macos/modal/src/modal/modal.scss +0 -35
- package/themes/macos/notification/index.scss +0 -1
- package/themes/macos/notification/src/notification/notification.scss +0 -25
- package/themes/macos/paginator/index.scss +0 -1
- package/themes/macos/paginator/src/paginator/paginator.scss +0 -5
- package/themes/macos/popover/index.scss +0 -1
- package/themes/macos/popover/src/popover/popover.scss +0 -84
- package/themes/macos/radio/index.scss +0 -2
- package/themes/macos/radio/src/radio/radio.scss +0 -46
- package/themes/macos/radio/src/radio-group/radio-group.scss +0 -1
- package/themes/macos/rating/index.scss +0 -1
- package/themes/macos/rating/src/rating/rating.scss +0 -19
- package/themes/macos/resizer/index.scss +0 -1
- package/themes/macos/resizer/src/resizer/resizer.scss +0 -5
- package/themes/macos/root/image/empty-default.svg +0 -30
- package/themes/macos/root/image/empty-space.svg +0 -34
- package/themes/macos/root/image/star-default.svg +0 -10
- package/themes/macos/root/vars-dark.scss +0 -234
- package/themes/macos/root/vars-light.scss +0 -234
- package/themes/macos/root/vars.scss +0 -233
- package/themes/macos/scrollbar/index.scss +0 -1
- package/themes/macos/scrollbar/src/scrollbar/scrollbar.scss +0 -6
- package/themes/macos/select/index.scss +0 -2
- package/themes/macos/select/src/select/select.scss +0 -49
- package/themes/macos/select/src/select-option/select-option.scss +0 -1
- package/themes/macos/slider/index.scss +0 -1
- package/themes/macos/slider/src/slider/slider.scss +0 -41
- package/themes/macos/switch/index.scss +0 -1
- package/themes/macos/switch/src/switch/switch.scss +0 -30
- package/themes/macos/table/index.scss +0 -4
- package/themes/macos/table/src/table/table.scss +0 -15
- package/themes/macos/table/src/table-cell/table-cell.scss +0 -51
- package/themes/macos/table/src/table-filter/table-filter.scss +0 -1
- package/themes/macos/tabs/index.scss +0 -2
- package/themes/macos/tabs/src/tabs/tabs.scss +0 -39
- package/themes/macos/tabs/src/tabs-item/tabs-item.scss +0 -19
- package/themes/macos/tags/index.scss +0 -2
- package/themes/macos/tags/src/tags/tags.scss +0 -1
- package/themes/macos/tags/src/tags-item/tags-item.scss +0 -32
- package/themes/macos/textarea/index.scss +0 -1
- package/themes/macos/textarea/src/textarea/textarea.scss +0 -31
- package/themes/macos/timepicker/index.scss +0 -2
- package/themes/macos/timepicker/src/timepicker/timepicker.scss +0 -51
- package/themes/macos/timepicker/src/timepicker-panel/timepicker-panel.scss +0 -28
- package/themes/macos/transfer/index.scss +0 -1
- package/themes/macos/transfer/src/transfer/transfer.scss +0 -18
- package/themes/macos/virtualscroller/index.scss +0 -1
- package/themes/macos/virtualscroller/src/virtualscroller/virtualscroller.scss +0 -1
package/dist/nano-ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nano-ui.js","mappings":"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","sources":["webpack://Nano/webpack/universalModuleDefinition","webpack://Nano/./src/config/src/builder/prototypes/durationpicker/n-durationpicker.js","webpack://Nano/./src/config/src/builder/prototypes/switch/n-switch.js","webpack://Nano/external umd {\"root\":\"pi\",\"commonjs2\":\"@kizmann/pico-js\",\"commonjs\":\"@kizmann/pico-js\",\"amd\":\"@kizmann/pico-js\"}","webpack://Nano/./src/config/src/builder/prototypes/rating/n-rating.js","webpack://Nano/./src/config/src/builder/prototypes/input-number/n-input-number.js","webpack://Nano/external umd {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}","webpack://Nano/./src/config/src/builder/prototypes/html/span.js","webpack://Nano/./src/notification/src/notification/notification.js","webpack://Nano/./src/config/src/builder/prototypes/html/div.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-group.js","webpack://Nano/./src/config/src/builder/prototypes/slider/n-slider.js","webpack://Nano/./src/config/src/builder/prototypes/datepicker/n-datepicker.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button-group.js","webpack://Nano/./src/config/src/builder/prototypes/datetimepicker/n-datetimepicker.js","webpack://Nano/./src/config/src/builder/prototypes/select/n-select.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table-column.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio-group.js","webpack://Nano/./src/config/src/builder/prototypes/input/n-input.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-item.js","webpack://Nano/./src/config/src/builder/prototypes/html/nano.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs-item.js","webpack://Nano/./src/config/src/builder/prototypes/empty/n-empty.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags-item.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox-group.js","webpack://Nano/./src/config/src/builder/prototypes/cascader/n-cascader.js","webpack://Nano/./src/config/src/builder/prototypes/loader/n-loader.js","webpack://Nano/./src/config/src/builder/prototypes/timepicker/n-timepicker.js","webpack://Nano/./src/config/src/builder/prototypes/modal/n-modal.js","webpack://Nano/./src/alert/src/alert/alert.js","webpack://Nano/./src/config/src/builder/prototypes/confirm/n-confirm.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio.js","webpack://Nano/./src/config/src/builder/prototypes/transfer/n-transfer.js","webpack://Nano/webpack/bootstrap","webpack://Nano/webpack/runtime/define property getters","webpack://Nano/webpack/runtime/hasOwnProperty shorthand","webpack://Nano/webpack/runtime/make namespace object","webpack://Nano/./src/mixins/src/ctor.js","webpack://Nano/./src/mixins/src/cmer.js","webpack://Nano/./src/mixins/src/cslo.js","webpack://Nano/./src/empty/src/empty-icon/empty-icon.jsx","webpack://Nano/./src/config/src/config/config.jsx","webpack://Nano/./src/config/src/config/config-next.jsx","webpack://Nano/./src/config/src/builder/builder.jsx","webpack://Nano/./src/config/src/reference-panel/reference-panel.jsx","webpack://Nano/./src/config/src/reference-picker/reference-picker.jsx","webpack://Nano/./src/scrollbar/src/scrollbar/scrollbar.jsx","webpack://Nano/./src/virtualscroller/src/virtualscroller/virtualscroller.jsx","webpack://Nano/./src/draggable/src/draghandler/draghandler.js","webpack://Nano/./src/draggable/src/draglist/draglist.jsx","webpack://Nano/./src/draggable/src/draglist-item/draglist-item.jsx","webpack://Nano/./src/draggable/src/draggrid/draggrid.jsx","webpack://Nano/./src/draggable/src/draggrid-item/draggrid-item.jsx","webpack://Nano/./src/draggable/src/dropzone/dropzone.jsx","webpack://Nano/./src/loader/src/loader/loader.jsx","webpack://Nano/./src/resizer/src/resizer/resizer.jsx","webpack://Nano/./src/popover/src/popover/popover.jsx","webpack://Nano/./src/popover/src/popover-group/popover-group.jsx","webpack://Nano/./src/popover/src/popover-option/popover-option.jsx","webpack://Nano/./src/modal/src/modal/modal.jsx","webpack://Nano/./src/button/src/button/button.jsx","webpack://Nano/./src/button/src/button-group/button-group.jsx","webpack://Nano/./src/input/src/input/input.jsx","webpack://Nano/./src/input-number/src/input-number/input-number.jsx","webpack://Nano/./src/textarea/src/textarea/textarea.jsx","webpack://Nano/./src/select/src/select/select.jsx","webpack://Nano/./src/select/src/select-option/select-option.jsx","webpack://Nano/./src/checkbox/src/checkbox/checkbox.jsx","webpack://Nano/./src/checkbox/src/checkbox-group/checkbox-group.jsx","webpack://Nano/./src/radio/src/radio/radio.jsx","webpack://Nano/./src/radio/src/radio-group/radio-group.jsx","webpack://Nano/./src/slider/src/slider/slider.jsx","webpack://Nano/./src/switch/src/switch/switch.jsx","webpack://Nano/./src/confirm/src/confirm/confirm.jsx","webpack://Nano/./src/cascader/src/cascader-panel/cascader-panel.jsx","webpack://Nano/./src/cascader/src/cascader/cascader.jsx","webpack://Nano/./src/datepicker/src/datepicker-panel/datepicker-panel.jsx","webpack://Nano/./src/datepicker/src/datepicker/datepicker.jsx","webpack://Nano/./src/timepicker/src/timepicker-panel/timepicker-panel.jsx","webpack://Nano/./src/timepicker/src/timepicker/timepicker.jsx","webpack://Nano/./src/datetimepicker/src/datetimepicker/datetimepicker.jsx","webpack://Nano/./src/durationpicker/src/durationpicker/durationpicker.jsx","webpack://Nano/./src/transfer/src/transfer/transfer.jsx","webpack://Nano/./src/form/src/form/form.jsx","webpack://Nano/./src/form/src/form-group/form-group.jsx","webpack://Nano/./src/form/src/form-item/form-item.jsx","webpack://Nano/./src/form/src/form-frame/form-frame.jsx","webpack://Nano/./src/tabs/src/tabs/tabs.jsx","webpack://Nano/./src/tabs/src/tabs-item/tabs-item.jsx","webpack://Nano/./src/tags/src/tags/tags.jsx","webpack://Nano/./src/tags/src/tags-item/tags-item.jsx","webpack://Nano/./src/collapse/src/collapse/collapse.jsx","webpack://Nano/./src/collapse/src/collapse-item/collapse-item.jsx","webpack://Nano/./src/table/src/table/table.jsx","webpack://Nano/./src/table/src/table-column/table-column.jsx","webpack://Nano/./src/table/src/table-cell/table-cell.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-string.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-boolean.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-datetime.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-option.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-image.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-matrix.jsx","webpack://Nano/./src/table/src/table-cell/types/table-cell-select.jsx","webpack://Nano/./src/table/src/table-filter/table-filter.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-string.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-boolean.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-datetime.jsx","webpack://Nano/./src/table/src/table-filter/types/table-filter-option.jsx","webpack://Nano/./src/paginator/src/paginator/paginator.jsx","webpack://Nano/./src/info/src/info/info.jsx","webpack://Nano/./src/info/src/info-column/info-column.jsx","webpack://Nano/./src/info/src/info-field/info-field.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-string.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-boolean.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-datetime.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-option.jsx","webpack://Nano/./src/info/src/info-field/types/info-field-image.jsx","webpack://Nano/./src/preview/src/preview/preview.jsx","webpack://Nano/./src/preview/src/preview-plain/preview-plain.jsx","webpack://Nano/./src/preview/src/preview-image/preview-image.jsx","webpack://Nano/./src/preview/src/preview-video/preview-video.jsx","webpack://Nano/./src/map/src/map/map.jsx","webpack://Nano/./src/map/src/map-marker/map-marker.jsx","webpack://Nano/./src/file/src/file/file.jsx","webpack://Nano/./src/rating/src/rating/rating.jsx","webpack://Nano/./src/drawer/src/drawer/drawer.jsx","webpack://Nano/./src/index.js","webpack://Nano/./src/alert/index.js","webpack://Nano/./src/notification/index.js","webpack://Nano/./src/empty/index.js","webpack://Nano/./src/config/index.js","webpack://Nano/./src/scrollbar/index.js","webpack://Nano/./src/virtualscroller/index.js","webpack://Nano/./src/draggable/index.js","webpack://Nano/./src/loader/index.js","webpack://Nano/./src/resizer/index.js","webpack://Nano/./src/popover/index.js","webpack://Nano/./src/modal/index.js","webpack://Nano/./src/button/index.js","webpack://Nano/./src/input/index.js","webpack://Nano/./src/input-number/index.js","webpack://Nano/./src/textarea/index.js","webpack://Nano/./src/select/index.js","webpack://Nano/./src/checkbox/index.js","webpack://Nano/./src/radio/index.js","webpack://Nano/./src/slider/index.js","webpack://Nano/./src/switch/index.js","webpack://Nano/./src/confirm/index.js","webpack://Nano/./src/cascader/index.js","webpack://Nano/./src/datepicker/index.js","webpack://Nano/./src/timepicker/index.js","webpack://Nano/./src/datetimepicker/index.js","webpack://Nano/./src/durationpicker/index.js","webpack://Nano/./src/transfer/index.js","webpack://Nano/./src/form/index.js","webpack://Nano/./src/tabs/index.js","webpack://Nano/./src/tags/index.js","webpack://Nano/./src/collapse/index.js","webpack://Nano/./src/table/index.js","webpack://Nano/./src/paginator/index.js","webpack://Nano/./src/info/index.js","webpack://Nano/./src/preview/index.js","webpack://Nano/./src/map/index.js","webpack://Nano/./src/file/index.js","webpack://Nano/./src/rating/index.js","webpack://Nano/./src/drawer/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@kizmann/pico-js\", \"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Nano\"] = factory(require(\"@kizmann/pico-js\"), require(\"vue\"));\n\telse\n\t\troot[\"Nano\"] = factory(root[\"pi\"], root[\"Vue\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE__55__, __WEBPACK_EXTERNAL_MODULE__122__) => {\nreturn ","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDurationpicker'] = Locale.trans('NDurationpicker');\n\nwindow.NanoBuilderIndexies['NDurationpicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDurationpicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSwitch'] = Locale.trans('NSwitch');\n\nwindow.NanoBuilderIndexies['NSwitch'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSwitch']['props'] = {\n modelValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n onValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n offValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n onType: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n offType: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n size: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeSizes\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n};","module.exports = __WEBPACK_EXTERNAL_MODULE__55__;","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRating'] = Locale.trans('NRating');\n\nwindow.NanoBuilderIndexies['NRating'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRating']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NInputNumber'] = Locale.trans('NInputNumber');\n\nwindow.NanoBuilderIndexies['NInputNumber'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NInputNumber']['props'] = {\n modelValue: {\n for: ['binds', 'props'], default: null, type: 'Number'\n },\n clearValue: {\n for: ['binds', 'props'], default: null, type: 'Number'\n },\n clearable: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n min: {\n for: ['binds', 'props'], default: 0, type: 'Number'\n },\n max: {\n for: ['binds', 'props'], default: Number.MAX_VALUE, type: 'Number'\n },\n stepSize: {\n for: ['binds', 'props'], default: 1, type: 'Number'\n },\n precision: {\n for: ['binds', 'props'], default: 0, type: 'Number'\n },\n size: {\n for: ['binds', 'props'], default: 'md', type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: window.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n placeholder: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n format: {\n for: ['binds', 'props'], default: ':count', type: 'String'\n },\n decimals: {\n for: ['binds', 'props'], default: '.', type: 'String'\n },\n};","module.exports = __WEBPACK_EXTERNAL_MODULE__122__;","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['span'] = Locale.trans('span');\n\nwindow.NanoBuilderIndexies['span'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['span']['props'] = {\n //\n};","import { UUID, Str, Obj, Dom } from \"@kizmann/pico-js\";\n\nclass Notification {\n\n el = null;\n\n text = '';\n\n icon = '';\n\n type = '';\n\n options = {\n duration: 4500,\n };\n\n constructor(text, type = 'primary', options = {})\n {\n let defaultIcons = {\n iconPrimary: window.nano.Icons.info,\n iconSecondary: window.nano.Icons.info,\n iconSuccess: window.nano.Icons.success,\n iconWarning: window.nano.Icons.warning,\n iconDanger: window.nano.Icons.danger,\n iconInfo: window.nano.Icons.info\n };\n\n this.text = text;\n this.type = type;\n\n this.options = Obj.assign(this.options,\n defaultIcons, options);\n\n this.render();\n }\n\n getIcon()\n {\n return Obj.get(this.options,\n 'icon' + Str.ucfirst(this.type));\n }\n\n append(el = document.body)\n {\n this.el.appendTo(el);\n\n setTimeout(() => this.el.addClass('n-active'), 100);\n\n return this;\n }\n\n remove()\n {\n this.el.get(0).remove();\n\n return this;\n }\n\n render()\n {\n let classList = [\n 'n-notification',\n 'n-notification--' + this.type\n ];\n\n this.el = Dom.make('div', {\n classList: classList.join(' '), onclick: () => this.remove()\n });\n \n\n let icon = Dom.make('div', {\n classList: 'n-notification__icon'\n });\n\n icon.appendTo(this.el);\n\n let iconSpan = Dom.make('span', {\n classList: this.getIcon()\n });\n\n iconSpan.appendTo(icon);\n\n let text = Dom.make('div', {\n classList: 'n-notification__text'\n });\n\n text.html(this.text).appendTo(this.el);\n }\n\n}\n\nexport class Notify {\n\n static alias = 'Notify';\n\n static size = window.nano.Settings.notifySize;\n\n static position = window.nano.Settings.notifyPosition;\n\n static notifications = {};\n\n static handle(...args)\n {\n let uid = Notify.create(undefined, ...args);\n\n let wrapper = Notify.getWrapper();\n\n // Append element to dom\n Notify.notifications[uid].append(wrapper);\n\n // Queue remove\n setTimeout(() => Notify.remove(uid),\n Notify.notifications[uid].options.duration);\n\n return uid;\n }\n\n static create(uid = UUID(), ...args)\n {\n Notify.notifications[uid] = new Notification(...args);\n\n return uid;\n }\n\n static remove(uid)\n {\n if ( Notify.notifications[uid] === undefined ) {\n return;\n }\n\n // Remove dom element\n Notify.notifications[uid].remove();\n\n // Remove from list\n delete Notify.notifications[uid];\n }\n\n static getWrapper()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let style = {\n 'z-index': window.zIndex + 100\n };\n\n let classList = [\n 'n-notification-frame',\n 'n-notification-frame--' + this.size,\n 'n-notification-frame--' + this.position\n ];\n\n if ( Dom.find('.n-notification-frame').empty() === true ) {\n Dom.make('div', { classList: classList.join(' ') }).appendTo(document.body);\n }\n\n Dom.find('.n-notification-frame').css(style);\n\n return Dom.find('.n-notification-frame');\n }\n\n}\n\nexport default Notify;\n","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['div'] = Locale.trans('div');\n\nwindow.NanoBuilderIndexies['div'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['div']['props'] = {\n classList: {\n type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTabs'] = Locale.trans('NTabs');\n\nwindow.NanoBuilderIndexies['NTabs'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTabs']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NButton'] = Locale.trans('NButton');\n\nwindow.NanoBuilderIndexies['NButton'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NButton']['props'] = {\n size: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n link: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n square: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n icon: {\n for: ['binds', 'props'], type: 'String'\n },\n iconPosition: {\n for: ['binds', 'props'], type: 'String', options: ['before', 'after']\n },\n nativeType: {\n for: ['binds', 'props'], type: 'String', options: ['button', 'a', 'div']\n },\n click: {\n for: ['on'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NFormGroup'] = Locale.trans('NFormGroup');\n\nwindow.NanoBuilderIndexies['NFormGroup'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NFormGroup']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSlider'] = Locale.trans('NSlider');\n\nwindow.NanoBuilderIndexies['NSlider'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSlider']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDatepicker'] = Locale.trans('NDatepicker');\n\nwindow.NanoBuilderIndexies['NDatepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDatepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NButtonGroup'] = Locale.trans('n-button-group');\n\nwindow.NanoBuilderIndexies['NButtonGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NButtonGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDatetimepicker'] = Locale.trans('NDatetimepicker');\n\nwindow.NanoBuilderIndexies['NDatetimepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDatetimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSelect'] = Locale.trans('NSelect');\n\nwindow.NanoBuilderIndexies['NSelect'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSelect']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTableColumn'] = Locale.trans('NTableColumn');\n\nwindow.NanoBuilderIndexies['NTableColumn'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTableColumn']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NForm'] = Locale.trans('NForm');\n\nwindow.NanoBuilderIndexies['NForm'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NForm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRadioGroup'] = Locale.trans('NRadioGroup');\n\nwindow.NanoBuilderIndexies['NRadioGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRadioGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NInput'] = Locale.trans('NInput');\n\nwindow.NanoBuilderIndexies['NInput'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NInput']['props'] = {\n modelValue: {\n for: ['binds', 'props'], default: null, type: 'String'\n },\n size: {\n for: ['binds', 'props'], default: 'md', type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: window.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n placeholder: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n nativeType: {\n for: ['binds', 'props'], default: 'text', type: 'String', options: ['text', 'password', 'email']\n },\n icon: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n iconPosition: {\n for: ['binds', 'props'], default: 'before', type: 'String', options: ['before', 'after']\n },\n iconDisabled: {\n for: ['binds', 'props'], default: null, type: 'Boolean', options: window.NanoPrototypeBools\n },\n iconClick: {\n for: ['on'], type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTable'] = Locale.trans('NTable');\n\nwindow.NanoBuilderIndexies['NTable'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTable']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTags'] = Locale.trans('NTags');\n\nwindow.NanoBuilderIndexies['NTags'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTags']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NFormItem'] = Locale.trans('NFormItem');\n\nwindow.NanoBuilderIndexies['NFormItem'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NFormItem']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","window.NanoPrototypeSizes = [\n 'xs', 'sm', 'md', 'lg'\n];\n\nwindow.NanoPrototypeTypes = [\n 'primary', 'secondary', 'success', 'warning', 'danger', 'info'\n];\n\nwindow.NanoPrototypeBools = [\n 'true', 'false'\n];","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCheckbox'] = Locale.trans('n-checkbox');\n\nwindow.NanoBuilderIndexies['NCheckbox'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCheckbox']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTabsItem'] = Locale.trans('NTabsItem');\n\nwindow.NanoBuilderIndexies['NTabsItem'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTabsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NEmpty'] = Locale.trans('NEmpty');\n\nwindow.NanoBuilderIndexies['NEmpty'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NEmpty']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTagsItem'] = Locale.trans('NTagsItem');\n\nwindow.NanoBuilderIndexies['NTagsItem'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTagsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCheckboxGroup'] = Locale.trans('NCheckboxGroup');\n\nwindow.NanoBuilderIndexies['NCheckboxGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCheckboxGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCascader'] = Locale.trans('n-cascader');\n\nwindow.NanoBuilderIndexies['NCascader'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCascader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NLoader'] = Locale.trans('NLoader');\n\nwindow.NanoBuilderIndexies['NLoader'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NLoader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTimepicker'] = Locale.trans('NTimepicker');\n\nwindow.NanoBuilderIndexies['NTimepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NModal'] = Locale.trans('NModal');\n\nwindow.NanoBuilderIndexies['NModal'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NModal']['props'] = {\n //\n};","import { Any, Str, Obj, Dom } from \"@kizmann/pico-js\";\n\nclass AlertFrame {\n\n el = null;\n\n text = '';\n\n icon = '';\n\n type = '';\n\n options = {};\n\n constructor(text, type = 'primary', options = {})\n {\n let defaultIcons = {\n iconPrimary: window.nano.Icons.info,\n iconSecondary: window.nano.Icons.info,\n iconSuccess: window.nano.Icons.success,\n iconWarning: window.nano.Icons.warning,\n iconDanger: window.nano.Icons.danger,\n iconInfo: window.nano.Icons.info\n };\n\n this.text = text;\n this.type = type;\n\n this.options = Obj.assign(this.options,\n defaultIcons, options);\n\n this.render();\n }\n\n getIcon()\n {\n return Obj.get(this.options,\n 'icon' + Str.ucfirst(this.type));\n }\n\n append(el = document.body)\n {\n this.el.appendTo(el);\n\n Dom.find(document.body).on('keydown', (event) => {\n if ( event.which === 27 ) {\n this.remove();\n }\n }, 'n-alert');\n\n setTimeout(() => this.el.addClass('n-active'), 100);\n }\n\n remove()\n {\n Dom.find(document.body).off('keydown', null, 'n-alert');\n\n this.el.get(0).remove();\n }\n\n render()\n {\n let classList = [\n 'n-alert-frame',\n 'n-alert-frame--' + this.type,\n 'n-alert-frame--' + Alert.size\n ];\n\n this.el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n let backdrop = Dom.make('div', {\n classList: 'n-alert-backdrop', onclick: () => this.remove()\n });\n\n backdrop.onClick = () => {\n this.remove();\n };\n\n backdrop.appendTo(this.el);\n\n let frame = Dom.make('div', {\n classList: 'n-alert'\n });\n\n frame.appendTo(this.el);\n\n let icon = Dom.make('div', {\n classList: 'n-alert__icon'\n });\n\n icon.appendTo(frame);\n\n let iconSpan = Dom.make('span', {\n classList: this.getIcon()\n });\n\n iconSpan.appendTo(icon);\n\n let text = Dom.make('div', {\n classList: 'n-alert__text'\n });\n\n text.html(this.text).appendTo(frame);\n }\n\n}\n\nexport class Alert {\n\n static alias = 'Alert';\n\n static size = window.nano.Settings.notifySize;\n\n static alert = null;\n\n static handle(...args)\n {\n if ( ! Any.isEmpty(Alert.alert) ) {\n Alert.alert.remove();\n }\n\n Alert.alert = new AlertFrame(...args);\n\n Alert.alert.append();\n\n return Alert;\n }\n\n}\n\nexport default Alert;\n","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NConfirm'] = Locale.trans('n-confirm');\n\nwindow.NanoBuilderIndexies['NConfirm'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NConfirm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRadio'] = Locale.trans('NRadio');\n\nwindow.NanoBuilderIndexies['NRadio'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRadio']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTransfer'] = Locale.trans('NTransfer');\n\nwindow.NanoBuilderIndexies['NTransfer'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTransfer']['props'] = {\n //\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Arr, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n ctor(key, fallback = null)\n {\n let ctor = Obj.get(this.$options, key.split('.'), -1);\n\n // if ( ctor === -1 ) {\n // ctor = Obj.get(this.$vnode.componentOptions.Ctor,\n // Arr.merge(['options'], key.split('.')), -1);\n // }\n\n if ( ctor === -1 ) {\n ctor = fallback;\n }\n\n if ( typeof ctor !== 'function' ) {\n return ctor;\n }\n\n return (...args) => ctor.apply(this, args);\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n cmer(classList)\n {\n let attrsList = {};\n\n if ( Any.isString(classList) ) {\n attrsList[classList] = true;\n }\n\n if ( Any.isArray(classList) ) {\n Arr.each(classList, (value) => attrsList[value] = true);\n }\n\n if ( Any.isPlain(classList) ) {\n Obj.assign(attrsList, classList);\n }\n\n if ( Any.isString(this.$attrs.class) ) {\n attrsList[this.$attrs.class] = true;\n }\n\n if ( Any.isArray(this.$attrs.class) ) {\n Arr.each(this.$attrs.class, (value) => attrsList[value] = true);\n }\n\n if ( Any.isPlain(this.$attrs.class) ) {\n Obj.assign(attrsList, this.$attrs.class);\n }\n\n return attrsList;\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport { Comment } from \"vue\";\n\nexport default {\n\n cslo(slot = 'default', props = {})\n {\n if ( ! this.$slots[slot] ) {\n return false;\n }\n\n return this.$slots[slot](props).findIndex((o) => {\n return o.type !== Comment;\n }) !== -1;\n }\n\n}\n","export default {\n\n name: 'NEmptyIcon',\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n inline: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-empty-icon',\n 'n-empty-icon--' + this.size,\n 'n-empty-icon--' + this.type\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.inline ) {\n classList.push('n-inline');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-empty-icon__frame\">\n { /* Icon */ }\n </div>\n <div class=\"n-empty-icon__text\">\n { this.$slots.default && this.$slots.default() }\n </div>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfig',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return this;\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n solveAwait(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( Any.isString(value) && value.match(/\\$\\$scope/) ) {\n return Obj.has({ $$scope: this.scope }, value);\n }\n\n if ( Any.isString(value) && value.match(/\\$\\$value/) ) {\n return Obj.has({ $$value: this.tempValue }, value);\n }\n\n return false;\n },\n\n solveValue(value, ...args)\n {\n if ( Any.isFunction(value) ) {\n return value.apply(this.scope, [this.tempValue, ...args]);\n }\n\n if ( Any.isString(value) && value.match(/^\\$\\$scope/) ) {\n return Obj.get({ $$scope: this.scope }, value);\n }\n\n if ( Any.isString(value) && value.match(/^\\$\\$value/) ) {\n return Obj.get({ $$value: this.tempValue }, value);\n }\n\n return value;\n },\n\n solveEvent(value)\n {\n let scope = Obj.assign(this.scope, {\n $configRefs: this.$refs\n });\n\n if ( Any.isFunction(value) ) {\n return (...args) => value.apply(scope, args);\n }\n\n return value;\n },\n\n solveContent(value, ...args)\n {\n if ( Any.isFunction(value) ) {\n return value.apply(this.scope, [this.$render, this.tempValue, ...args]);\n }\n\n return value;\n },\n\n prepareValue(veModel)\n {\n if ( ! veModel.path ) {\n return veModel.fallback;\n }\n\n if ( ! Obj.has(this.tempValue, veModel.path) ) {\n this.deepSet(this.tempValue, veModel.path, veModel.fallback);\n }\n\n return Obj.get(this.tempValue, veModel.path);\n },\n\n inputClosure(veModel, closure = null)\n {\n if ( ! veModel.path ) {\n return () => null;\n }\n\n return (value) => {\n\n if ( closure ) {\n closure(value, this.tempValue);\n }\n\n this.deepSet(this.tempValue, veModel.path, value);\n };\n },\n\n deepSet(obj, keys, val)\n {\n keys = (typeof keys === 'string') ?\n keys.split('.') : keys;\n\n let key = keys.shift();\n\n if ( obj[key] === undefined || obj[key] === null ) {\n Obj.set(obj, key, {});\n }\n\n if ( keys.length === 0 ) {\n return Obj.set(obj, key, val);\n }\n\n return this.deepSet(obj[key], keys, val);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n renderLayer(source)\n {\n if ( ! Any.isPlain(source) ) {\n return source;\n }\n\n return Arr.each(source, (setup, component) => {\n\n component = component.replace(/:.*?$/, '');\n\n // Set setup defaults\n setup = Obj.assign({\n vIf: true, vShow: true, vAwait: null, class: null, $on: {}, $props: {}, $attrs: {}\n }, setup);\n\n if ( ! this.solveAwait(setup.vAwait) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vIf) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vShow) ) {\n setup.style = { display: 'none' };\n }\n\n // Build default model\n let veModel = Obj.assign({\n prop: 'modelValue', fallback: null\n }, setup.model);\n\n // Delete model from setup\n delete setup.model;\n\n // Normalize props\n setup.$props = this.solveValue(setup.$props);\n\n // Normalize class\n setup.class = this.solveValue(setup.class);\n\n // Solve props\n Obj.map(setup.$props, (value) => this.solveValue(value));\n\n // Normalize attrs\n setup.$attrs = this.solveValue(setup.$attrs);\n\n // Solve attrs\n Obj.map(setup.$attrs, (value) => this.solveValue(value));\n\n // Solve events\n Obj.map(setup.$on, (value) => this.solveEvent(value));\n\n if ( veModel.path ) {\n\n // Override input event\n setup['onUpdate:modelValue'] = this.inputClosure(veModel, setup.$on.input);\n\n // Set prop in value or get fallback\n setup.$props[veModel.prop] = this.prepareValue(veModel);\n }\n\n Obj.assign(setup, setup.$props);\n delete setup.$props;\n\n Obj.assign(setup, setup.$attrs);\n delete setup.$attrs;\n\n Obj.assign(setup, setup.$on);\n delete setup.$on;\n\n let content = setup.content;\n delete setup.content;\n\n delete setup.vIf;\n delete setup.vShow;\n delete setup.vAwait;\n\n // Solve content if is functional\n let slots = this.solveContent(content, setup);\n\n let domtypes = [\n 'div', 'span', 'a'\n ];\n\n let resolved = component;\n\n if ( ! Arr.has(domtypes, resolved) ) {\n resolved = resolveComponent(component);\n }\n\n return h(resolved, setup, this.ctor('renderLayer')(slots));\n });\n },\n\n render()\n {\n return this.ctor('renderLayer')(this.config)[0];\n }\n\n}","import { Arr, Obj, Str, Any } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfigNext',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n extraValue: {\n default()\n {\n return null;\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue, sempValue: this.extraValue || this.modelValue\n };\n },\n\n watch: {\n\n modelValue: function (value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n extraValue: function (value) {\n if ( value !== this.sempValue ) {\n this.sempValue = value;\n }\n }\n\n },\n\n methods: {\n\n getString(value)\n {\n let final = value.replace(/^@/, '')\n .replace(/^\\\\@/, '@');\n\n\n\n if ( value.match(/^@/) ) {\n return this.trans(final);\n }\n\n return final;\n },\n\n propAwait(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Any.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, true);\n });\n\n return ! Arr.has(result, false);\n },\n\n propExists(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Any.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, false);\n });\n\n return ! Arr.has(result, false);\n },\n\n getState(value, exists = true)\n {\n if ( Any.isFunction(value) ) {\n return !! this.solveInput(value);\n }\n\n if ( ! Any.isString(value) ) {\n return !! value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return !! value;\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( exists ) {\n return Obj.get(sources, value, undefined) === undefined;\n }\n\n return !! Obj.get(sources, value);\n },\n\n toPropKey(value)\n {\n let splits = value.replace(/^!/, '').split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n toEventKey(value)\n {\n if ( ! value.match(/^on/) ) {\n value = 'on-' + value;\n }\n\n let splits = value.split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n solveInput(cb, fallback)\n {\n return cb.call(this.scope, this.tempValue, fallback);\n },\n\n solveContext(cb)\n {\n if ( ! Any.isFunction(cb) ) {\n return () => console.error('Raw suffix (!) only allowed on functions');\n }\n\n return (...args) => cb.call(this.scope, ...args);\n },\n\n getProp(key, value)\n {\n if ( key.match(/^!/) ) {\n return this.solveContext(value);\n }\n\n if ( Any.isFunction(value) ) {\n return this.solveInput(value);\n }\n\n if ( ! Any.isString(value) ) {\n return value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return this.getString(value);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n let result = Obj.get(sources, value.replace(/^!+/, ''));\n\n if ( value.match(/^!!\\$/) ) {\n result = Any.isEmpty(result);\n }\n\n if ( value.match(/^!\\$/) ) {\n result = Any.isEmpty(result);\n }\n\n return result;\n },\n\n getInput(prop, fallback)\n {\n if ( Any.isFunction(prop) ) {\n return this.solveInput(prop, fallback);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( ! Any.isNull(fallback) && Obj.get(sources, prop, -1337) === -1337 ) {\n Obj.set(sources, prop, fallback);\n }\n\n return Obj.get(sources, prop);\n },\n\n setInput(prop, value)\n {\n if ( Any.isFunction(prop) ) {\n return console.error('NConfigNew: Bind with function is not allowed!');\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n Obj.set(sources, prop, value);\n }\n\n },\n\n renderSetup(setup, alias)\n {\n if ( ! Any.isPlain(setup) ) {\n return setup;\n }\n\n if ( ! this.propExists(setup['vIf']) ) {\n return null;\n }\n\n if ( ! this.propAwait(setup['vAwait']) ) {\n return null;\n }\n\n let defaults = {\n binds: {}, props: {}, events: {}, content: {}, slots: {}\n };\n\n let defaultsBind = {\n value: '', fallback: null\n };\n\n setup = Obj.assign(defaults, setup);\n\n let binds = {};\n\n Obj.each(setup['binds'], (value, key) => {\n\n if ( Any.isString(value) ) {\n value = { value: value };\n }\n\n binds[key] = Obj.assign(defaultsBind, value);\n });\n\n let events = {};\n\n Obj.each(setup['events'], (value, key) => {\n events[this.toEventKey(key)] = this.solveContext(value);\n });\n\n let props = {};\n\n Obj.each(setup['props'], (value, key) => {\n props[this.toPropKey(key)] = this.getProp(key, value);\n });\n\n props = Obj.assign(props, events);\n\n Obj.each(binds, (value, key) => {\n\n let updateKey = 'onUpdate:' + key;\n\n props[this.toEventKey(updateKey)] = (input) => {\n this.setInput(value.value, input);\n };\n\n props[this.toPropKey(key)] = this.getInput(value.value,\n value.fallback);\n });\n\n let component = alias.replace(/:.*?$/, '');\n\n if ( !Arr.has(['div', 'p'], component) ) {\n component = resolveComponent(component);\n }\n\n if ( Any.isEmpty(component) ) {\n return null;\n }\n\n if ( !this.propExists(setup['vShow']) ) {\n props.style = \"display: none;\";\n }\n\n let slots = {\n default: this.ctor('renderSlot')(setup.content)\n };\n\n Obj.each(setup.slots, (slot, key) => {\n slots[key] = this.ctor('renderSlot')(slot);\n });\n\n return h(component, props, slots);\n },\n\n renderSlot(callback)\n {\n let render = () => Arr.each(callback, (value, key) => {\n return this.ctor('renderSetup')(value, key);\n });\n\n if ( Any.isFunction(callback) ) {\n render = () => callback.apply(this.scope);\n }\n\n if ( Any.isString(callback) ) {\n render = () => this.getString(callback);\n }\n\n return render;\n },\n\n render()\n {\n return Arr.each(this.config, (value, key) => this.ctor('renderSetup')(value, key));\n }\n\n}","import { Arr, Dom, Any, Locale, Obj, UUID, Num } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderPropType = {\n 'root': Locale.trans('Root'),\n 'binds': Locale.trans('Bind'),\n 'props': Locale.trans('Property'),\n 'attrs': Locale.trans('Attribute'),\n 'on': Locale.trans('Event'),\n};\n\nwindow.NanoBuilderPropCode = {\n 'string': Locale.trans('String'),\n 'number': Locale.trans('Number'),\n 'boolean': Locale.trans('Boolean'),\n 'object': Locale.trans('Object'),\n 'function': Locale.trans('Function'),\n};\n\nwindow.NanoBuilderProps = {\n classList: {\n for: ['root', 'attrs', 'props'], type: 'String'\n },\n vIf: {\n for: ['root'], type: 'String'\n },\n vShow: {\n for: ['root'], type: 'String'\n },\n};\n\nwindow.NanoBuilderTypes = {\n //\n};\n\nwindow.NanoBuilderIndexies = {\n //\n};\n\n// DOM elements\nrequire('./prototypes/html/nano');\nrequire('./prototypes/html/div');\nrequire('./prototypes/html/span');\n\n// Nano elements\nrequire('./prototypes/button/n-button');\nrequire('./prototypes/button/n-button-group');\nrequire('./prototypes/cascader/n-cascader');\nrequire('./prototypes/checkbox/n-checkbox');\nrequire('./prototypes/checkbox/n-checkbox-group');\nrequire('./prototypes/confirm/n-confirm');\nrequire('./prototypes/datepicker/n-datepicker');\nrequire('./prototypes/datetimepicker/n-datetimepicker');\nrequire('./prototypes/durationpicker/n-durationpicker');\nrequire('./prototypes/empty/n-empty');\nrequire('./prototypes/form/n-form');\nrequire('./prototypes/form/n-form-group');\nrequire('./prototypes/form/n-form-item');\nrequire('./prototypes/input/n-input');\nrequire('./prototypes/input-number/n-input-number');\nrequire('./prototypes/loader/n-loader');\nrequire('./prototypes/modal/n-modal');\nrequire('./prototypes/radio/n-radio');\nrequire('./prototypes/radio/n-radio-group');\nrequire('./prototypes/rating/n-rating');\nrequire('./prototypes/select/n-select');\nrequire('./prototypes/slider/n-slider');\nrequire('./prototypes/switch/n-switch');\nrequire('./prototypes/table/n-table');\nrequire('./prototypes/table/n-table-column');\nrequire('./prototypes/tabs/n-tabs');\nrequire('./prototypes/tabs/n-tabs-item');\nrequire('./prototypes/tags/n-tags');\nrequire('./prototypes/tags/n-tags-item');\nrequire('./prototypes/timepicker/n-timepicker');\nrequire('./prototypes/transfer/n-transfer');\n\nexport default {\n\n name: 'NBuilder',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n renderDemo: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderExport: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n init: false, demo: false, collapse: [], safevar: this.normalizeModel(this.modelValue)\n };\n },\n\n watch: {\n modelValue: function () {\n this.safevar = this.normalizeModel(this.modelValue)\n }\n },\n\n mounted()\n {\n this.init = true;\n },\n\n methods: {\n\n exportJson(value)\n {\n return JSON.stringify(Obj.clone(value), null, 4).replace(/\"!FUNC:(.*?):FUNC!\"/g, (matches) => {\n return matches.replace(/^\"!FUNC:/, '').replace(/:FUNC!\"$/, '').replace(/\\\\\"/, '\"').replace(/\\\\n/g, \"\\n\");\n });\n },\n\n exportExecutable(value)\n {\n return new Function(`return ${this.exportJson(value)};`)();\n },\n\n normalizeModel(model)\n {\n let result = {};\n\n Obj.each(model, (value, key) => {\n result[key] = Obj.assign(this.normalizeChild(value), {\n order: (Any.vals(result).length + 1) * 100\n });\n });\n\n return result;\n },\n\n normalizeChild(child)\n {\n let result = this.applyProps(null, {\n ...Obj.except(child, ['content']), content: {}, builder: this.buildProps(child),\n });\n\n if ( Any.isArray(child.content) ) {\n child.content = Arr.first(child.content);\n }\n\n if ( ! Any.isPlain(child.content) && ! Any.isString(child.content) ) {\n child.content = {};\n }\n\n result.builder[\"null\"] = {\n type: typeof child.content\n }\n\n if (Any.isPlain(child.content)) {\n Obj.each(child.content || {}, (value, key) => {\n\n if ( ! key.match(':') ) {\n key += ':' + UUID();\n }\n\n result['content'][key] = Obj.assign(this.normalizeChild(value), {\n order: (Any.vals(result['content']).length + 1) * 100\n });\n });\n } else {\n result.content = child.content;\n }\n\n return result;\n },\n\n getOriginalValue(prop)\n {\n let safevalue = prop.value;\n\n if ( typeof prop.value === 'function' ) {\n safevalue = btoa(\"!FUNC:\" + prop.value.toString() + \":FUNC!\");\n }\n\n return safevalue;\n },\n\n getSafeValue(prop)\n {\n let safevalue = '';\n\n if ( typeof prop.value === 'string' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'boolean' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'number' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'object' ) {\n safevalue = JSON.stringify(prop.value);\n }\n\n if ( typeof prop.value === 'function' ) {\n safevalue = btoa(\"!FUNC:\" + prop.value.toString() + \":FUNC!\");\n }\n\n return safevalue;\n },\n\n getRealValue(prop)\n {\n let realvalue = '';\n\n if ( prop.code === 'string' ) {\n realvalue = Any.string(prop.value);\n }\n\n if ( prop.code === 'boolean' ) {\n realvalue = Any.boolean(prop.value);\n }\n\n if ( prop.code === 'number' ) {\n realvalue = Any.number(prop.value, 0);\n }\n\n if ( prop.code === 'object' ) {\n realvalue = JSON.parse(prop.value);\n }\n\n if ( prop.code === 'function' ) {\n realvalue = atob(prop.original);\n }\n\n return realvalue;\n },\n\n changeElement(key, update)\n {\n if ( Any.isEmpty(update) ) {\n return;\n }\n\n let newKey = key.replace(/^(.*?)([^\\.]+):([^\\.]+)$/, `$1${update}:$3`);\n\n let value = Obj.get(this, key, {});\n\n Obj.unset(this, key);\n Obj.set(this, newKey, value);\n\n this.collapse = Arr.each(this.collapse, (k) => {\n return k.replace(key, newKey);\n });\n },\n\n changeAlias(key, update)\n {\n if ( Any.isEmpty(update) ) {\n return;\n }\n\n let newKey = key.replace(/^(.*?)([^\\.]+):([^\\.]+)$/, `$1$2:${update}`);\n\n let value = Obj.get(this, key, {});\n\n Obj.unset(this, key);\n Obj.set(this, newKey, value);\n\n this.collapse = Arr.each(this.collapse, (k) => {\n return k.replace(key, newKey);\n });\n },\n\n changeType(key, type)\n {\n let value = Obj.get(this, key, {});\n\n let original = Obj.get(value, 'builder.null.type');\n\n if ( type === 'object' ) {\n value.content = {};\n }\n\n if ( type === 'string' ) {\n value.content = '';\n }\n\n Obj.set(value, 'builder.null.type', typeof value.content);\n },\n\n applyProps(key = null, value = {})\n {\n if ( ! Any.isEmpty(key) ) {\n value = Obj.get(this, key, {});\n }\n\n let reset = [\n 'vIf', 'vShow', 'classList', 'vLocale', 'binds', 'attrs', 'props', 'on',\n ];\n\n Obj.each(reset, (prop) => {\n Obj.unset(value, prop);\n });\n\n Obj.each(value.builder || {}, (val) => {\n\n if ( Any.isEmpty(val.key) ) {\n return;\n }\n\n let bindValue = {\n value: val.value, fallback: null\n };\n\n if ( val.code === 'string' ) {\n bindValue.fallback = Any.string(val.fallback || '');\n }\n\n if ( val.code === 'boolean' ) {\n bindValue.fallback = Any.boolean(val.fallback || 'false');\n }\n\n if ( val.code === 'object' ) {\n bindValue.fallback = JSON.parse(val.fallback || '{}');\n }\n\n if ( val.type === 'binds' ) {\n return Obj.set(value, [val.type, val.key], bindValue);\n }\n\n let realvalue = '';\n\n try {\n realvalue = this.getRealValue(val);\n } catch (e) {\n if ( ! Any.isEmpty(val.value) ) {\n console.error('Invalid JSON: ' + val.value);\n }\n }\n\n if ( val.type === 'root' ) {\n return Obj.set(value, val.key, realvalue);\n }\n\n if ( val.type === 'attrs' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n if ( val.type === 'props' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n if ( val.type === 'on' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n });\n\n if ( Any.isEmpty(key) ) {\n return value;\n }\n\n return Obj.set(this, key, value);\n },\n\n buildProps(el, key = null)\n {\n let builder = {};\n\n Obj.each(Obj.only(el, ['vIf', 'vShow', 'classList']), (value, sey) => {\n builder[UUID()] = {\n type: 'root', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value })\n };\n });\n\n Obj.each(Obj.get(el, `binds`, {}), (value, sey) => {\n\n let result = {\n type: 'binds', code: typeof value, key: sey, fallback: null, original: this.getOriginalValue({ value })\n }\n\n if ( Any.isString(value) ) {\n result.value = this.getSafeValue({ value });\n }\n\n if ( Any.isObject(value) ) {\n Obj.assign(result, { value: this.getSafeValue(value), fallback: Obj.get(value, 'fallback', null) })\n }\n\n builder[UUID()] = result;\n });\n\n Obj.each(Obj.get(el, `props`, {}), (value, sey) => {\n builder[UUID()] = { type: 'props', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n Obj.each(Obj.get(el, `attrs`, {}), (value, sey) => {\n builder[UUID()] = { type: 'attrs', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n Obj.each(Obj.get(el, `on`, {}), (value, sey) => {\n builder[UUID()] = { type: 'on', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n if ( Any.isEmpty(key) ) {\n return builder;\n }\n\n this.$nextTick(() => {\n Obj.set(this, `${key}.builder`, builder);\n });\n\n return builder;\n },\n\n addProp(key)\n {\n let value = Obj.get(this, `${key}.builder`, {});\n\n Obj.set(value, UUID(), {\n type: 'props', code: 'string', key: '', value: '', fallback: null\n });\n\n Obj.set(this, `${key}.builder`, value);\n },\n\n removeProp(key, prop)\n {\n Obj.unset(this, `${key}.builder.${prop}`);\n\n this.applyProps(key);\n },\n\n collapseElement(key)\n {\n Arr.toggle(this.collapse, key);\n },\n\n addElement(key)\n {\n let value = Obj.get(this, key, {});\n\n Obj.set(value, 'div:' + UUID(), {\n order: (Any.vals(value).length + 1) * 100, props: { modelValue: '$scope.list' }, content: {}\n });\n\n Obj.assign(this, key, value);\n },\n\n removeElement(key)\n {\n Obj.unset(this, key);\n },\n\n moveupElement(key)\n {\n let [el, childs] = [\n Obj.get(this, key), Obj.get(this, key.replace(/\\.[^.]+$/, ''))\n ];\n\n let close = Number.MIN_VALUE;\n\n Arr.each(childs, (sub) => {\n if ( sub.order < el.order ) close = Math.max(close, sub.order);\n });\n\n if ( close === Number.MIN_VALUE ) {\n return;\n }\n\n let replacement = Arr.find(childs, {\n order: close\n });\n\n Obj.assign(replacement, {\n order: el.order\n });\n\n Obj.assign(el, { order: close });\n },\n\n movedownElement(key)\n {\n let [el, childs] = [\n Obj.get(this, key), Obj.get(this, key.replace(/\\.[^.]+$/, ''))\n ];\n\n let close = Number.MAX_VALUE;\n\n Arr.each(childs, (sub) => {\n if ( sub.order > el.order ) close = Math.min(close, sub.order);\n });\n\n if ( close === Number.MAX_VALUE ) {\n return;\n }\n\n let replacement = Arr.find(childs, {\n order: close\n });\n\n Obj.assign(replacement, {\n order: el.order\n });\n\n Obj.assign(el, { order: close });\n },\n\n },\n\n renderTools(el, value, key)\n {\n let rootProps = {\n //\n };\n\n rootProps['onDblclick'] = () => {\n this.collapseElement(key);\n };\n\n let collapseProps = {\n href: 'javascript:void(0)',\n };\n\n collapseProps['onClick'] = () => {\n this.collapseElement(key);\n };\n\n let addProps = {\n href: 'javascript:void(0)',\n };\n\n addProps['onClick'] = () => {\n this.addElement(`${key}.content`);\n };\n\n let removeProps = {\n href: 'javascript:void(0)',\n };\n\n removeProps['onClick'] = () => {\n this.removeElement(key);\n };\n\n let moveupProps = {\n href: 'javascript:void(0)',\n };\n\n moveupProps['onClick'] = () => {\n this.moveupElement(key);\n };\n\n let movedownProps = {\n href: 'javascript:void(0)',\n };\n\n movedownProps['onClick'] = () => {\n this.movedownElement(key);\n };\n\n\n return (\n <div class=\"n-builder__tools\" {...rootProps}>\n <div class=\"n-builder__collapse\">\n <a {...collapseProps}><i class=\"fa fa-bars\"></i></a>\n </div>\n <div class=\"n-builder__name\">\n {key.replace(/^.*?([^\\.:]+):([^\\.:]+)$/, '$1')}<span>{key.replace(/^.*?([^\\.:]+):([^\\.:]+)$/, '$2')}</span>\n </div>\n <div class=\"n-builder__move\">\n <a {...moveupProps}><i class=\"fa fa-angle-up\"></i></a>\n <a {...movedownProps}><i class=\"fa fa-angle-down\"></i></a>\n </div>\n <div class=\"n-builder__add\">\n <a {...addProps}><i class=\"fa fa-plus\"></i></a>\n </div>\n <div class=\"n-builder__remove\">\n <a {...removeProps}><i class=\"fa fa-trash\"></i></a>\n </div>\n </div>\n );\n },\n\n renderProp(el, sub, key)\n {\n if ( sub === \"null\" ) {\n return null;\n }\n\n let group = key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$1')\n let value = Obj.get(this.$data, `${key}.builder.${sub}`, {});\n\n let props = Obj.clone(Obj.get(window.NanoBuilderIndexies, `${group}.props`, {}));\n\n props = Obj.assign({}, window.NanoBuilderProps, props);\n\n Obj.each(props, (prop, index) => {\n if ( ! Any.isEmpty(prop.for) && ! Arr.has(prop.for, value.type) ) {\n props = Obj.unset(props, index);\n }\n });\n\n let typeProps = {\n size: 'sm', options: window.NanoBuilderPropType\n };\n\n typeProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let keyProps = {\n size: 'sm', allowCreate: true, options: props, optionsLabel: '$index'\n };\n\n keyProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let codeProps = {\n size: 'sm', options: window.NanoBuilderPropCode\n };\n\n codeProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let values = Obj.get(props, `${value.key}.options`, []);\n\n let valueInputProps = {\n size: 'sm', model: this.model, scope: this.scope\n };\n\n valueInputProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let valueHtml = (\n <NReferencePicker vModel={value.value} {...valueInputProps} />\n );\n\n let fallbackProps = {\n size: 'sm', minRows: 1, autoRows: true\n };\n\n fallbackProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let tooltipHtml = (\n <div class=\"n-builder_prop-text\">\n <p>{Obj.get(props, `${value.key}.desc`, '')}</p>\n </div>\n );\n\n return (\n <div class=\"n-builder_prop\">\n <div class=\"n-builder_prop-type\">\n <NSelect vModel={value.type} {...typeProps} />\n </div>\n <div class=\"n-builder_prop-key\">\n <NSelect vModel={value.key} {...keyProps} />\n </div>\n <div class=\"n-builder_prop-func\">\n <NSelect vModel={value.code} {...codeProps} />\n </div>\n <div class=\"n-builder_prop-value\">\n {valueHtml}\n </div>\n <div class=\"n-builder_prop-fallback\">\n <NInput vModel={value.fallback} {...fallbackProps} />\n </div>\n <div class=\"n-builder_prop-button\">\n <NButton size=\"sm\" type=\"danger\" onClick={() => this.removeProp(key, sub)}>Remove</NButton>\n </div>\n </div>\n );\n },\n\n renderProps(el, value, key)\n {\n if ( !Arr.has(this.collapse, key) ) {\n return null;\n }\n\n let elementProps = {\n options: window.NanoBuilderTypes, allowCreate: true, modelValue: key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$1'),\n };\n\n elementProps['onUpdate:modelValue'] = (value) => {\n this.changeElement(key, value);\n };\n\n let aliasProps = {\n modelValue: key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$2'),\n };\n\n aliasProps['onUpdate:modelValue'] = (value) => {\n this.changeAlias(key, value);\n };\n\n let plainProps = {\n modelValue: Obj.get(value, 'builder.null.type'),\n options: {\n 'object': this.trans('Object'),\n 'string': this.trans('String'),\n }\n };\n\n plainProps['onUpdate:modelValue'] = (value) => {\n this.changeType(key, value);\n };\n\n let addProps = {\n type: 'primary', size: 'sm', link: true\n };\n\n addProps['onClick'] = () => {\n this.addProp(key, value);\n };\n\n let props = Obj.get(value, `builder`);\n\n if ( ! Obj.has(value, 'builder') ) {\n props = this.buildProps(el, key, value);\n }\n\n return (\n <NForm class=\"n-builder__props\">\n <NFormItem class=\"n-builder__element-type\" label={this.trans('Type')}>\n <NSelect {...elementProps} />\n </NFormItem>\n <NFormItem class=\"n-builder__element-alias\" label={this.trans('Alias')}>\n <NInput {...aliasProps} />\n </NFormItem>\n <NFormItem class=\"n-builder__element-plain\" label={this.trans('Content')}>\n <NSelect {...plainProps}>{this.trans('Enable plain')}</NSelect>\n </NFormItem>\n <div class=\"n-builder__element-prop\">\n <NButton {...addProps}>Add property</NButton>\n </div>\n <div class=\"n-builder__element-list\">\n {Arr.each(props, (prop, sub) => this.ctor('renderProp')(el, sub, key))}\n </div>\n </NForm>\n );\n },\n\n renderElement(el, value, key)\n {\n let classList = [\n 'n-builder__element'\n ];\n\n if ( Arr.has(this.collapse, key) ) {\n classList.push('is-open');\n }\n\n let builderHtml = () => {\n return this.ctor('renderBuilder')(value.content || {}, `${key}.content`);\n };\n\n if ( value.builder[\"null\"][\"type\"] === 'string' ) {\n builderHtml = () => {\n return (<div><NInput vModel={value.content} /></div>);\n };\n }\n\n return (\n <div class={classList}>\n {this.ctor('renderTools')(el, value, key)}\n {this.ctor('renderProps')(el, value, key)}\n {builderHtml()}\n </div>\n );\n },\n\n renderBuilder(el, key)\n {\n if ( Any.isEmpty(el) ) {\n return null;\n }\n\n let items = Arr.each(Obj.sort(Obj.clone(el), 'order'), (v) => {\n\n let args = [\n Obj.get(this.$data, key, {}),\n Obj.get(this.$data, [key, v._key], {}),\n `${key}.${v._key}`\n ];\n\n return this.ctor('renderElement')(...args);\n });\n\n return (\n <div class=\"n-builder__frame\">\n {items}\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-builder__body\">\n {this.ctor('renderBuilder')(this.safevar, 'safevar')}\n </div>\n );\n },\n\n renderHead()\n {\n let addProps = {\n type: 'primary'\n };\n\n addProps['onClick'] = () => {\n this.addElement('safevar');\n };\n\n let addHtml = (\n <div class=\"n-builder__head-add\">\n <NButton {...addProps}>{this.trans('Add root element')}</NButton>\n </div>\n );\n\n let demoProps = {\n type: 'primary'\n };\n\n demoProps['onClick'] = () => {\n this.demo = true;\n };\n\n let demoHtml = (\n <div class=\"n-builder__head-demo\">\n <NButton {...demoProps}>{this.trans('Render demo')}</NButton>\n </div>\n );\n\n return (\n <div class=\"n-builder__head\">\n {[addHtml, demoHtml]}\n </div>\n );\n },\n\n renderOutput()\n {\n return (\n <div class=\"n-builder__output\">\n <pre>{this.exportJson(this.safevar)}</pre>\n </div>\n );\n },\n\n renderDemo()\n {\n if ( ! this.renderDemo || ! this.demo ) {\n return null;\n }\n\n let renderFunction = this.$slots.default;\n\n if ( Any.isEmpty(renderFunction) ) {\n renderFunction = ({ render }) => render();\n }\n\n let modalProps = {\n width: '100%',\n height: '100%'\n };\n\n let configProps = {\n modelValue: this.model, scope: this.scope, config: this.exportExecutable(this.safevar)\n };\n\n let renderContent = () => {\n return ( <NConfigNext {...configProps} />);\n };\n\n return (\n <NModal vModel={this.demo} {...modalProps}>\n {renderFunction({ render: renderContent })}\n </NModal>\n );\n },\n\n render()\n {\n let classList = [\n 'n-builder',\n ];\n\n return (\n <div class={classList}>\n {[\n this.ctor('renderBody')(), this.ctor('renderHead')(), this.ctor('renderOutput')(), this.ctor('renderDemo')(),\n ]}\n </div>\n );\n }\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NReferencePanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return \"\";\n },\n type: [String]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n },\n\n data()\n {\n return {\n expanded: [], selected: null, modelTree: this.buildTree(this.model, '$model'), scopeTree: this.buildTree(this.scope, '$scope')\n };\n },\n\n methods: {\n\n buildTree(value, path = '')\n {\n let result = {};\n\n if ( ! Any.isPlain(value) && ! Obj.get(value, '__v_skip') ) {\n return result;\n }\n\n for(var key in value) {\n\n let [ref, val] = [\n `${path}.${key}`, value[key]\n ];\n\n if ( Any.isPlain(val) ) {\n val = this.buildTree(val, ref);\n }\n\n let type = typeof val;\n\n if ( Any.isArray(val) ) {\n type = 'array';\n }\n\n result[key] = {\n path: ref, value: val, type: type\n };\n\n }\n\n return result;\n },\n\n submitItem(value)\n {\n this.$emit('update:modelValue', value.path);\n },\n\n selectItem(value)\n {\n this.selected = value;\n },\n\n expandItem(value)\n {\n if ( value.type === 'object' ) {\n Arr.toggle(this.expanded, value.path);\n }\n }\n\n },\n\n renderLeaf(value, key)\n {\n let classList = [\n 'n-reference-panel__item',\n 'n-reference-panel__item--' + value.type,\n ];\n\n if ( Obj.get(this.selected, 'path') === value.path) {\n classList.push('is-selected');\n }\n\n if ( value.type === 'object' ) {\n classList.push('has-childs');\n }\n\n if ( Arr.has(this.expanded, value.path) ) {\n classList.push('is-expanded');\n }\n\n return (\n <div class={classList} onDblclick={() => this.submitItem(value)}>\n <div class=\"n-reference-panel__expand\" onClick={() => this.expandItem(value)}>\n <i class=\"fa fa-angle-right\"></i>\n </div>\n <div class=\"n-reference-panel__name\" onClick={() => this.selectItem(value)}>\n {key}\n </div>\n <div class=\"n-reference-panel__type\" onClick={() => this.selectItem(value)}>\n {value.type}\n </div>\n <div class=\"n-reference-panel__pick\" onClick={() => this.submitItem(value)}>\n <i class=\"fa fa-expand\"></i>\n </div>\n </div>\n );\n },\n\n renderTree(value, key)\n {\n let childItems = Arr.each(value.value, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n let childHtml = (\n <div class=\"n-reference-panel__childs\">\n {childItems}\n </div>\n );\n\n if ( ! Arr.has(this.expanded, value.path) ) {\n childHtml = null;\n }\n\n return [this.ctor('renderLeaf')(value, key), childHtml];\n },\n\n renderItem(value, key)\n {\n if ( value.type === 'object' ) {\n return this.ctor('renderTree')(value, key);\n }\n\n return this.ctor('renderLeaf')(value, key);\n },\n\n renderModel()\n {\n let modelHtml = Arr.each(this.modelTree, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n return (\n <div class=\"n-reference-panel__model\">\n {modelHtml}\n </div>\n );\n },\n\n renderScope()\n {\n let scopeHtml = Arr.each(this.scopeTree, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n return (\n <div class=\"n-reference-panel__scope\">\n {scopeHtml}\n </div>\n );\n },\n\n render()\n {\n return (\n <div class=\"n-reference-panel\">\n {[this.ctor('renderModel')(), this.ctor('renderScope')()]}\n </div>\n );\n }\n\n}","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NReferencePicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n width: {\n default()\n {\n return '100%';\n },\n type: [String]\n },\n\n height: {\n default()\n {\n return '100%';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return {\n modal: false, tempValue: this.modelValue\n };\n },\n\n methods: {\n\n updateValue(value)\n {\n this.$emit('update:modelValue', this.tempValue = value);\n }\n\n },\n\n renderModal()\n {\n if ( ! this.modal ) {\n return null;\n }\n\n let modalProps = {\n modelValue: true,\n width: this.width,\n height: this.height,\n };\n\n modalProps['onClose'] = () => {\n this.modal = false;\n };\n\n let panelProps = {\n model: this.model, scope: this.scope,\n };\n\n panelProps['onUpdate:modelValue'] = (value) => {\n this.updateValue(value); this.modal = false;\n };\n\n let slots = {\n //\n };\n\n slots['body'] = () => (\n <NReferencePanel class=\"in-modal\" {...panelProps} />\n );\n\n return (\n <NModal {...modalProps} v-slots={slots} />\n );\n },\n\n renderInput()\n {\n let inputProps = {\n modelValue: this.tempValue,\n icon: 'fa fa-expand',\n size: this.size,\n };\n\n inputProps['onUpdate:modelValue'] = (value) => {\n this.updateValue(value);\n };\n\n inputProps['onBlur'] = (e) => {\n this.$emit('onBlur', e);\n };\n\n inputProps['onIconClick'] = () => {\n this.modal = true;\n };\n\n return (\n <NInput {...inputProps} />\n );\n },\n\n render()\n {\n return (\n <div class=\"n-reference-picker\">\n {[this.ctor('renderInput')(), this.ctor('renderModal')()]}\n </div>\n );\n }\n\n}","import { Arr, Obj, Dom, Any, Str, Event } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NScrollbar',\n\n provide()\n {\n return {\n NScrollbar: this\n };\n },\n\n props: {\n\n options: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n fixture: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n allowNative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n framerate: {\n default()\n {\n return 24;\n },\n type: [Number]\n },\n\n wrapClass: {\n default()\n {\n return 'n-scrollbar__wrap';\n }\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n native: false\n };\n },\n\n beforeMount()\n {\n this.adaptScrollBehavior();\n },\n\n mounted()\n {\n this.bindAdaptHeight();\n this.bindAdaptWidth();\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Event.bind('NScrollbar:resize',\n this.onResize, this._.uid);\n\n Event.bind('NResizer:moved',\n this.onUpdate, this._.uid);\n\n Dom.find(window).on('resize',\n this.onResize, passive);\n\n Dom.find(this.$refs.content).on('scroll',\n this.onScroll, passive);\n },\n\n updated()\n {\n if ( this.passedHeight || this.passedWidth ) {\n Dom.find(this.$el).addClass('n-ready');\n }\n },\n\n beforeUnmount()\n {\n this.unbindAdaptHeight();\n this.unbindAdaptWidth();\n\n let passive = {\n passive: true, uid: this._.uid\n };\n\n Event.unbind('NScrollbar:resize',\n this._.uid);\n\n Event.unbind('NResizer:moved',\n this._.uid);\n\n Dom.find(window).off('resize',\n null, passive);\n\n Dom.find(this.$el).off('scroll',\n null, passive);\n },\n\n methods: {\n\n scrollTo(x = 0, y = 0, delay = 0)\n {\n Any.delay(() => this.onScrollTo(x, y), delay);\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if ( this.$refs.content ) {\n this.$refs.content.scrollTop = y;\n this.$refs.content.scrollLeft = x;\n }\n },\n\n scrollIntoView(selector, delay = 0, padding = 0)\n {\n Any.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.\n 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.\n 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 && this.allowNative ) {\n return;\n }\n\n // let offsetHeight = this.$refs.content.clientHeight -\n // this.$refs.content.offsetHeight;\n //\n // let offsetWidth = this.$refs.content.clientWidth -\n // this.$refs.content.offsetWidth;\n\n let outerHeight = this.$refs.content.\n clientHeight || 0;\n\n if ( this.native && ! this.allowNative ) {\n outerHeight -= 16;\n }\n\n // if ( offsetHeight === 0 && this.overflowX ) {\n // outerHeight -= 15;\n // }\n\n let innerHeight = this.$refs.content\n .scrollHeight || 0;\n\n let virtualHeight = 0;\n\n Dom.find(this.$refs.content).childs().each((el) => {\n virtualHeight += Dom.find(el).height() || 0;\n });\n\n if ( this.native && ! this.allowNative ) {\n innerHeight -= 16;\n }\n\n if ( virtualHeight > innerHeight ) {\n innerHeight = virtualHeight;\n }\n\n // if ( offsetHeight === 0 && this.overflowX ) {\n // innerHeight -= 15;\n // }\n\n let isSameOld = outerHeight === this.outerHeight &&\n innerHeight === this.innerHeight;\n\n if ( isSameOld ) {\n return;\n }\n\n this.outerHeight = outerHeight;\n this.innerHeight = innerHeight;\n\n let height = (outerHeight / innerHeight)\n * outerHeight;\n\n let barHeight = Math.max(height, 50);\n\n let maxHeight = Math.ceil((outerHeight / innerHeight) *\n (innerHeight - outerHeight));\n\n this.heightRatio = (maxHeight - (barHeight - height)\n - this.offsetY) / maxHeight;\n\n Dom.find(this.$refs.vbar).css({\n height: (this.barHeight = Math.ceil(barHeight)) + 'px'\n });\n\n // let hasNativeBar = offsetWidth !== 0 && this.overflowY;\n //\n // if ( hasNativeBar ) {\n // Dom.find(this.$el).addClass('has-native-vbar');\n // }\n //\n // if ( hasNativeBar && this.overflowX ) {\n // Dom.find(this.$el).addClass('has-native-hbar');\n // }\n\n let hasVtrack = outerHeight && outerHeight < innerHeight;\n\n if ( hasVtrack ) {\n Dom.find(this.$el).addClass('has-vtrack');\n }\n\n if ( ! hasVtrack ) {\n Dom.find(this.$el).removeClass('has-vtrack');\n }\n\n // if ( hasVtrack && ! hasNativeBar ) {\n // Event.fire('NScrollbar:native');\n // }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollWidth()\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n // let offsetWidth = this.$refs.content.clientWidth -\n // this.$refs.content.offsetWidth;\n //\n // let offsetHeight = this.$refs.content.clientHeight -\n // this.$refs.content.offsetHeight;\n\n let outerWidth = this.$refs.content.\n clientWidth || 0;\n\n if ( this.native && ! this.allowNative ) {\n outerWidth -= 16;\n }\n\n // if ( offsetWidth === 0 && this.overflowY ) {\n // outerWidth -= 15;\n // }\n\n let innerWidth = this.$refs.content\n .scrollWidth || 0;\n\n let virtualWidth = 0;\n\n Dom.find(this.$refs.content).childs().each((el) => {\n virtualWidth += Dom.find(el).width() || 0;\n });\n\n if ( this.native && ! this.allowNative ) {\n innerWidth -= 16;\n }\n\n if ( virtualWidth > innerWidth ) {\n innerWidth = virtualWidth;\n }\n\n // if ( offsetWidth === 0 && this.overflowY ) {\n // innerWidth -= 15;\n // }\n\n let isSameOld = outerWidth === this.outerWidth &&\n innerWidth === this.innerWidth;\n\n if ( isSameOld ) {\n return;\n }\n\n this.outerWidth = outerWidth;\n this.innerWidth = innerWidth;\n\n let width = (outerWidth / innerWidth)\n * outerWidth;\n\n let barWidth = Math.max(width, 50);\n\n let maxWidth = Math.ceil((outerWidth / innerWidth) *\n (innerWidth - outerWidth));\n\n this.widthRatio = (maxWidth - (barWidth - width)\n - this.offsetX) / maxWidth;\n\n Dom.find(this.$refs.hbar).css({\n width: (this.barWidth = Math.ceil(barWidth)) + 'px'\n });\n\n // let hasNativeBar = offsetHeight && this.overflowX;\n\n // if ( hasNativeBar ) {\n // Dom.find(this.$el).addClass('has-native-hbar');\n // }\n //\n // if ( hasNativeBar && this.overflowY ) {\n // Dom.find(this.$el).addClass('has-native-vbar');\n // }\n\n let hasHtrack = outerWidth && outerWidth < innerWidth;\n\n if ( hasHtrack ) {\n Dom.find(this.$el).addClass('has-htrack');\n }\n\n if ( ! hasHtrack ) {\n Dom.find(this.$el).removeClass('has-htrack');\n }\n\n // if ( hasHtrack && ! hasNativeBar ) {\n // Event.fire('NScrollbar:native');\n // }\n\n this.adaptScrollPosition();\n },\n\n adaptScrollPosition(scroll = {})\n {\n if ( this.native && this.allowNative ) {\n return;\n }\n\n if ( ! scroll.top ) {\n scroll.top = this.$refs.content.scrollTop;\n }\n\n if ( ! scroll.left ) {\n scroll.left = this.$refs.content.scrollLeft;\n }\n\n let vbarTop = Math.ceil((this.outerHeight / this.innerHeight) *\n scroll.top * this.heightRatio) || 0;\n\n if ( ! this.vbarTop || vbarTop !== this.vbarTop ) {\n\n Dom.find(this.$refs.vbar).css({\n transform: `translateY(${vbarTop}px) translateZ(0)`\n });\n\n this.vbarTop = vbarTop;\n }\n\n let hbarLeft = Math.ceil((this.outerWidth / this.innerWidth) *\n scroll.left * this.widthRatio) || 0;\n\n if ( ! this.hbarLeft || hbarLeft !== this.hbarLeft ) {\n\n Dom.find(this.$refs.hbar).css({\n transform: `translateX(${hbarLeft}px) translateZ(0)`\n });\n\n this.hbarLeft = hbarLeft;\n }\n },\n\n adaptHeight()\n {\n if ( ! this.cacheChildEl ) {\n this.cacheChildEl = Dom.find(this.$refs.content).child();\n }\n\n let height = this.cacheChildEl\n .height();\n\n if ( ! this.cacheWindwoEl ) {\n this.cacheWindwoEl = Dom.find(this.$el);\n }\n\n let window = this.cacheWindwoEl\n .innerHeight();\n\n if ( height === this.passedHeight && window === this.windowCache ) {\n return;\n }\n\n this.windowCache = window;\n\n if ( this.overflowY ) {\n this.adaptScrollHeight();\n }\n\n if ( window ) {\n this.passedHeight = height;\n }\n\n let style = {\n height: (height + 1) + 'px'\n };\n\n if ( ! this.relative ) {\n return Any.delay(this.onSizechange, 100);\n }\n\n Dom.find(this.$refs.spacer).child().css(style);\n },\n\n bindAdaptHeight()\n {\n this.refreshHeight = setInterval(this.adaptHeight,\n 1000 / this.framerate);\n },\n\n unbindAdaptHeight()\n {\n clearInterval(this.refreshHeight);\n },\n\n adaptWidth()\n {\n if ( this.resizeTimer ) {\n return;\n }\n\n let width = Dom.find(this.$refs.content)\n .child().width();\n\n let window = Dom.find(this.$el)\n .innerWidth();\n\n if ( width === this.passedWidth ) {\n return;\n }\n\n if ( this.overflowX ) {\n this.adaptScrollWidth();\n }\n\n if ( window ) {\n this.passedWidth = width;\n }\n\n let style = {\n width: width + 'px'\n };\n\n if ( this.fixture ) {\n this.onUpdate();\n }\n\n if ( ! this.relative ) {\n return Any.delay(this.onSizechange, 100);\n }\n\n Dom.find(this.$refs.spacer).child().css(style);\n },\n\n bindAdaptWidth()\n {\n this.refreshWidth = setInterval(this.adaptWidth,\n 1000 / this.framerate);\n },\n\n unbindAdaptWidth()\n {\n clearInterval(this.refreshWidth);\n },\n\n onScroll(event)\n {\n let scroll = {\n top: this.$refs.content.scrollTop,\n left: this.$refs.content.scrollLeft\n };\n\n let scrollUpdate = () => {\n this.$emit('scrollupdate', scroll.top, scroll.left);\n }\n\n this.$nextTick(scrollUpdate);\n this.adaptScrollPosition(scroll);\n },\n\n onSizechange(event)\n {\n let height = Dom.find(this.$el).height();\n let width = Dom.find(this.$el).width();\n\n if ( ! height || ! width ) {\n return;\n }\n\n if ( this.passedHeight || this.passedWidth ) {\n Dom.find(this.$el).addClass('is-ready');\n }\n\n this.$emit('sizechange', height, width, this.$el);\n },\n\n onResize()\n {\n if ( ! this.fixture ) {\n return;\n }\n\n Dom.find(this.$refs.content)\n .child().css(null);\n\n clearTimeout(this.resizeTimer);\n\n this.resizeTimer = setTimeout(\n this.onUpdate, 500);\n\n Dom.find(this.$el).fire('resized');\n },\n\n onUpdate()\n {\n if ( ! this.fixture || ! this.$refs.content ) {\n return;\n }\n\n let $inner = Dom.find(this.$refs.content)\n .child();\n\n let height = $inner.actual(() => {\n return $inner.scrollHeight();\n });\n\n if ( height !== this.passedHeight ) {\n $inner.css({ height: height + 'px' });\n }\n\n let width = $inner.actual(() => {\n return $inner.scrollWidth() - 1;\n });\n\n if ( width !== this.passedWidth ) {\n $inner.css({ width: width + 'px' });\n }\n\n delete this.resizeTimer;\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onVbarMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n\n Dom.find(document).on(this.mousemove,\n this.onVbarMousemove, this._.uid);\n\n Dom.find(document).on(this.mouseup,\n this.onVbarMouseup, this._.uid);\n\n this.scrollTop = this.$refs.content\n .scrollTop;\n\n this.clientY = this.getTouchEvent(event)\n .clientY;\n },\n\n onVbarMousemove(event)\n {\n let clientY = this.getTouchEvent(event)\n .clientY;\n\n let top = (this.outerHeight / this.innerHeight) *\n this.scrollTop * this.heightRatio;\n\n let offset = (clientY - this.clientY) + top;\n\n let height = (this.outerHeight -\n this.barHeight - this.offsetY);\n\n this.$refs.content.scrollTop = offset / height *\n (this.innerHeight - this.outerHeight);\n },\n\n onVbarMouseup(event)\n {\n Dom.find(document).off(this.mousemove,\n null, this._.uid);\n\n Dom.find(document).off(this.mouseup,\n null, this._.uid);\n },\n\n onHbarMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.stopPropagation();\n\n Dom.find(document).on(this.mousemove,\n this.onHbarMousemove, this._.uid);\n\n Dom.find(document).on(this.mouseup,\n this.onHbarMouseup, this._.uid);\n\n this.scrollLeft = this.$refs.content\n .scrollLeft;\n\n this.clientX = event.clientX;\n },\n\n onHbarMousemove(event)\n {\n let top = (this.outerWidth / this.innerWidth) *\n this.scrollLeft * this.widthRatio;\n\n let offset = (event.clientX - this.clientX) + top;\n\n let width = (this.outerWidth -\n this.barWidth - this.offsetX);\n\n this.$refs.content.scrollLeft = offset / width *\n (this.innerWidth - this.outerWidth);\n },\n\n onHbarMouseup(event)\n {\n Dom.find(document).off(this.mousemove,\n null, this._.uid);\n\n Dom.find(document).off(this.mouseup,\n null, this._.uid);\n },\n\n },\n\n render()\n {\n let classList = [\n 'n-scrollbar'\n ];\n\n if ( this.native ) {\n classList.push('n-scrollbar--native');\n }\n\n if ( ! this.allowNative ) {\n classList.push('n-scrollbar--forced');\n }\n\n if ( this.touch ) {\n classList.push('n-scrollbar--touch');\n }\n\n if ( window.WIN ) {\n classList.push('n-windows');\n }\n\n if ( this.overflowY ) {\n classList.push('n-overflow-y');\n }\n\n if ( this.overflowX ) {\n classList.push('n-overflow-x');\n }\n\n let vbarProps = {\n ['on' + Str.ucfirst(this.mousedown)]: this.onVbarMousedown\n };\n\n let hbarProps = {\n ['on' + Str.ucfirst(this.mousedown)]: this.onHbarMousedown\n };\n\n return (\n <div class={classList} {...Obj.except(this.$attrs, ['class'])}>\n <div class=\"n-scrollbar-content\" ref=\"content\">\n <div class={this.wrapClass}>\n { this.$slots.default && this.$slots.default() }\n </div>\n </div>\n <div class=\"n-scrollbar-spacer\" ref=\"spacer\">\n <div class={this.wrapClass}>\n { /* Adapt inner height */ }\n </div>\n </div>\n <div ref=\"hbar\" class=\"n-scrollbar-h\" {...hbarProps}></div>\n <div ref=\"vbar\" class=\"n-scrollbar-v\" {...vbarProps}></div>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any, Dom } from \"@kizmann/pico-js\";\n\nwindow.DEBUG_NVSCROLL = false;\n\nexport default {\n\n name: 'NVirtualscroller',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n itemHeight: {\n default()\n {\n return 34;\n }\n },\n\n itemWidth: {\n default()\n {\n return 0;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n deathzone: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n framerate: {\n default()\n {\n return 65;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n let state = {\n start: 0, end: 0, grid: 1\n };\n\n return {\n state, buffer: [], width: 0, height: 0, load: true\n };\n },\n\n watch: {\n\n 'items': function () {\n this.updateRender();\n }\n\n },\n\n beforeMount()\n {\n this.scrollTop = 0;\n },\n\n mounted()\n {\n\n this.bindAdaptScroll()\n },\n\n\n beforeUnmount()\n {\n this.unbindAdaptScroll()\n },\n\n methods: {\n\n bindAdaptScroll()\n {\n this.refreshScroll = setInterval(this.onScrollupdate,\n 1000 / this.framerate);\n },\n\n unbindAdaptScroll()\n {\n clearInterval(this.refreshScroll);\n },\n\n isIndexRendered(index)\n {\n if ( ! this.itemHeight ) {\n return true;\n }\n\n return this.state.start < index &&\n this.state.end > index;\n },\n\n scrollIntoView(index)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n if ( index === -1 || index >= this.items.length ) {\n index = this.items.length;\n }\n\n if ( ! this.isIndexRendered(index) ) {\n return this.scrollToIndex(index);\n }\n\n let selector = `[data-index=\"${index}\"]`;\n\n this.$refs.scrollbar.scrollIntoView(selector);\n },\n\n scrollToIndex(index, delay = 0)\n {\n Any.delay(() => this.onScrollToIndex(index), delay);\n },\n\n onScrollToIndex(index)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n let total = Math.ceil(this.items.length /\n this.state.grid);\n\n index = Math.floor(index / this.state.grid);\n\n if ( index === -1 || index >= total ) {\n index = total;\n }\n\n let targetTop = index * this.itemHeight;\n\n if ( this.scrollTop > targetTop ) {\n return this.scrollTo(0, targetTop);\n }\n\n targetTop = targetTop - this.height +\n this.itemHeight;\n\n this.scrollTo(0, targetTop);\n },\n\n scrollTo(x = 0, y = 0, delay = 0)\n {\n Any.delay(() => this.onScrollTo(x, y), delay);\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if ( ! this.$refs.scrollbar ) {\n return;\n }\n\n this.$refs.scrollbar.scrollTo(x, y);\n },\n\n clearState()\n {\n this.state = { start: 0, end: 0 };\n },\n\n updateRender()\n {\n if ( ! this.$refs.scrollbar ) {\n return Any.delay(this.updateRender);\n }\n\n this.scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n Any.async(this.refreshDriver);\n },\n\n onScrollupdate()\n {\n if ( ! this.threshold ) {\n return;\n }\n\n let scrollTop = this.$refs.scrollbar.\n $refs.content.scrollTop;\n\n if ( scrollTop === this.scrollTop ) {\n return;\n }\n\n this.scrollTop = scrollTop;\n\n let offset = this.$refs.scrollbar.$el.offsetHeight -\n this.$refs.scrollbar.$el.clientHeight;\n\n let isOutOfRange = scrollTop < 0 || scrollTop + this.height\n > this.$refs.inner.scrollHeight + offset;\n\n if ( isOutOfRange ) {\n return;\n }\n\n Any.async(this.refreshDriver);\n },\n\n onSizechange(height, width, el)\n {\n this.width = width;\n this.height = height;\n\n Any.async(this.refreshDriver);\n },\n\n\n refreshDriver(queue = true)\n {\n if ( Any.isEmpty(this.timer) ) {\n this.timer = Date.now();\n }\n\n if ( Date.now() - this.timer > 20 ) {\n queue = false;\n }\n\n clearTimeout(this.to);\n\n this.to = setTimeout(() => {\n this.refreshDriver(false);\n }, 25);\n\n if ( queue ) {\n return;\n }\n\n clearTimeout(this.to);\n\n let grid = 1;\n\n if ( this.itemWidth ) {\n grid = Math.floor((this.width - this.deathzone) /\n this.itemWidth) || 1;\n }\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n return this.state = { start: 0, end: 0, grid };\n }\n\n let total = Math.ceil(this.items.length\n / grid);\n\n let bufferItems = Math.round((this.height /\n this.itemHeight) * 0.6);\n\n let startItem = Math.round(this.scrollTop /\n this.itemHeight);\n\n let endItem = Math.round((this.scrollTop +\n this.height) / this.itemHeight);\n\n let start = (startItem - bufferItems);\n\n if ( start < 0 ) {\n start = 0;\n }\n\n let end = endItem + bufferItems;\n\n if ( end > total ) {\n end = total;\n }\n\n let state = { start, end, grid };\n\n if ( Any.isEqual(this.state, state) ) {\n return;\n }\n\n this.state = state;\n },\n\n },\n\n renderItem(passed)\n {\n passed.index = (passed.index +\n this.state.start);\n\n let topOffset = Math.round(this.itemHeight *\n passed.index);\n\n let renderFunction = this.$slots.default;\n\n if ( this.renderNode ) {\n renderFunction = this.renderNode;\n }\n\n let props = {\n 'data-index': passed.index\n };\n\n if ( this.NDraggable && this.useKeys ) {\n props.key = passed.value[this.NDraggable.uniqueProp];\n }\n\n let style = {};\n\n let isLazy = this.threshold && this.threshold <=\n this.items.length;\n\n if ( isLazy && this.state.grid === 1 ) {\n style.top = topOffset + 'px';\n }\n\n if ( this.itemHeight ) {\n style.height = this.itemHeight + 'px';\n }\n\n if ( this.state.grid !== 1 ) {\n style.width = this.itemWidth + 'px';\n }\n\n return (\n <div class=\"n-virtualscroller__item\" style={style} {...props}>\n { renderFunction(passed) }\n </div>\n );\n },\n\n renderRows()\n {\n let items = Arr.slice(this.items, this.state.start,\n this.state.end);\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n items = this.items;\n }\n\n return Arr.each(items, (value, index) => {\n return this.ctor('renderItem')({ value, index });\n });\n },\n\n renderGridRows(passed)\n {\n let topOffset = Math.round(this.itemHeight *\n (passed.index + this.state.start));\n\n let style = {};\n\n if ( this.threshold && this.threshold <= this.items.length ) {\n style.top = topOffset + 'px';\n }\n\n let counter = passed.index * this.state.start;\n\n return (\n <div data-row={passed.index} class=\"n-virtualscroller__row\" style={style}>\n {\n Arr.each(passed.chunk, (value, index) => {\n return this.ctor('renderItem')({\n value, index: index + counter\n });\n })\n }\n </div>\n );\n },\n\n renderGrid()\n {\n let chunks = Arr.chunk(this.items,\n this.state.grid);\n\n let items = Arr.slice(chunks, this.state.start,\n this.state.end);\n\n if ( ! this.threshold || this.threshold > this.items.length ) {\n items = chunks;\n }\n\n return Arr.each(items, (chunk, index) => {\n return this.ctor('renderGridRows')({ chunk, index });\n });\n },\n\n renderItems()\n {\n if ( ! this.items.length ) {\n return this.$slots.empty && this.$slots.empty() || null;\n }\n\n if ( this.state.grid === 1 ) {\n return this.ctor('renderRows')();\n }\n\n return this.ctor('renderGrid')();\n },\n\n render()\n {\n let classList = [\n 'n-virtualscroller'\n ];\n\n if ( this.threshold && this.threshold <= this.items.length ) {\n classList.push('n-virtualscroller--absolute');\n }\n\n let props = {\n overflowY: this.overflowY,\n overflowX: this.overflowX,\n offsetY: this.offsetY,\n offsetX: this.offsetX,\n onSizechange: this.onSizechange,\n };\n\n let style = {\n 'overflow-y': 'hidden'\n };\n\n let totalHeight = Math.ceil(this.items.length / this.state.grid) *\n this.itemHeight;\n\n if ( this.threshold && this.items.length ) {\n style.height = Math.ceil(totalHeight + this.offsetY) + 'px';\n }\n\n return (\n <NScrollbar class={classList} ref=\"scrollbar\" {...props}>\n <div ref=\"inner\" class=\"n-virtualscroller__inner\" style={style}>\n { this.ctor('renderItems')() }\n </div>\n </NScrollbar>\n );\n }\n\n}\n","import { Arr, Obj, Num, Any, Dom, Event, Locale, UUID } from \"@kizmann/pico-js\";\n\nwindow.dragMods = [];\n\nclass NDragCounter\n{\n\n $el = null;\n\n constructor()\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__counter']\n });\n\n Dom.ready(() => {\n this.$el.appendTo(document.body);\n });\n }\n\n get(event, count)\n {\n // Update dragover color/type\n this.update();\n\n this.$el.html(\n `<span>${Locale.choice(':count Item|:count Items', count)}</span>`\n );\n\n // Fix data transfer\n event.dataTransfer.setData('text/plain', '');\n\n if ( typeof event.dataTransfer.setDragImage !== 'function' ) {\n return;\n }\n\n // Set finally the drop image\n event.dataTransfer.setDragImage(this.$el.get(0), 0, 0);\n }\n\n update()\n {\n window.dragMods = window.keyMods;\n\n let classList = [\n 'n-draggable__counter'\n ];\n\n if ( Arr.has(window.dragMods, 18) ) {\n classList.push('n-modify--alt');\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n classList.push('n-modify--ctrl');\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n classList.push('n-modify--meta');\n }\n\n this.$el.attr('class', classList.join(' '));\n }\n\n}\n\nwindow.DragCounter = new NDragCounter;\n\nclass NDragIndicator\n{\n\n $el = null;\n\n parent = null;\n\n constructor(parent)\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__indicator']\n });\n\n this.$el.appendTo(this.parent = parent);\n }\n\n resolve(event, safezone, el, strategy = 'inner')\n {\n let rect = el.getBoundingClientRect();\n\n if ( event.clientY < rect.y + safezone ) {\n strategy = 'before';\n }\n\n if ( event.clientY > rect.y + rect.height - safezone ) {\n strategy = 'after';\n }\n\n if ( Dom.find(el).hasClass('n-expanded') ) {\n strategy = strategy === 'after' ? 'inner' : strategy;\n }\n\n Arr.has(['before', 'after'], strategy) ?\n this.show(el, strategy) : this.hide();\n\n\n return strategy;\n }\n\n show(el, strategy)\n {\n let offsetTop = Dom.find(el).offsetTop(this.parent);\n\n let style = {\n top: offsetTop || 1\n };\n\n if ( strategy === 'after' ) {\n style.top = offsetTop + Dom.find(el).height();\n }\n\n this.$el.css(Obj.map(style, (item) => item + 'px'));\n }\n\n hide()\n {\n this.$el.css(null);\n }\n\n destroy()\n {\n this.$el.get(0).remove();\n }\n\n}\n\nclass NDraghandler\n{\n\n uid = null;\n\n rootNode = null;\n childNodes = {};\n\n dropNodes = [];\n cacheNodes = [];\n\n strategy = 'nodrop';\n frames = 0;\n timeout = 0;\n dragcount = {};\n\n constructor(rootNode)\n {\n this.rootNode = rootNode;\n }\n\n bindRoot(frame = null)\n {\n this.DragIndicator = new NDragIndicator(frame || this.rootNode.$el);\n\n if ( window.DragCache ) {\n this.bindDragstart.call(this, ...window.DragCache);\n }\n\n Dom.find(this.rootNode.$el).on('dragenter', (event) => {\n this.onDragenterRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragover', (event) => {\n this.onDragoverRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragleave', (event) => {\n this.onDragleaveRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragend', (event) => {\n this.onDragendRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('drop', (event) => {\n this.onDragdropRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragdrop', (event) => {\n this.onDragdropRoot(event);\n });\n\n Event.bind('NDrag:start', this.bindDragstart.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:end', this.bindDragend.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:drop', this.bindDragdrop.bind(this),\n this.rootNode.uid);\n }\n\n unbindRoot()\n {\n let events = [\n 'dragstart',\n 'dragenter',\n 'dragover',\n 'dragleave',\n 'dragend',\n 'drop',\n 'dragdrop',\n ];\n\n Dom.find(this.rootNode.$el).off(events);\n\n Event.unbind('NDrag:start', this.rootNode.uid);\n Event.unbind('NDrag:end', this.rootNode.uid);\n Event.unbind('NDrag:drop', this.rootNode.uid);\n }\n\n onDragenterRoot(event)\n {\n event.preventDefault();\n }\n\n onDragoverRoot(event)\n {\n let isNode = Dom.find(event.target)\n .closest('.n-draglist-item');\n\n if ( isNode || !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n if ( this.frames && Date.now() - this.frames < 135 ) {\n return;\n }\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Any.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, null, this.strategy);\n });\n\n this.strategy = 'root';\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n this.DragIndicator.hide();\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-dragover');\n } else {\n Dom.find(this.rootNode.$el).removeClass('n-dragover');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-nodrop');\n } else {\n Dom.find(this.rootNode.$el).removeClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveRoot(event)\n {\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n }\n\n onDragendRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n Event.fire('NDrag:end');\n }\n\n onDragdropRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(null, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindDragstart(group, cache)\n {\n if ( Arr.has(this.rootNode.allowGroups, group) ) {\n this.cacheNodes = JSON.parse(JSON.stringify(cache));\n }\n }\n\n bindDragend()\n {\n this.dragcount = {};\n\n this.cacheNodes = this.dropNodes = [];\n }\n\n bindDragdrop(...args)\n {\n if ( !this.dropNodes.length ) {\n return;\n }\n\n this.rootNode.tempSelected = [];\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n if ( !this.rootNode.removeNode ) {\n return;\n }\n\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n this.unlinkNodes(clone);\n this.removeNodes(clone);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n onDragstartNode(event, node)\n {\n if ( !this.rootNode.isSelected(node) ) {\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected = [node.uid]);\n }\n\n let cache = Arr.each(this.rootNode.tempSelected, (id) => {\n return Arr.find(this.rootNode.virtuals, { [this.rootNode.uniqueProp]: id });\n });\n\n window.DragCounter.get(event, cache.length);\n\n Arr.map(cache, (value) => {\n return { value, item: Obj.get(this.rootNode, value.route) };\n });\n\n Event.fire('NDrag:start', this.rootNode.group,\n this.dropNodes = cache);\n\n window.DragCache = [\n this.rootNode.group, this.dropNodes\n ];\n\n this.dragcount[node.uid] = 0;\n }\n\n onDragenterNode(event, node)\n {\n event.preventDefault();\n\n if ( !this.dragcount[node.uid] ) {\n this.dragcount[node.uid] = 0;\n }\n\n this.dragcount[node.uid] ++;\n }\n\n onDragoverNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n if ( this.frames && Date.now() - this.frames < 45 ) {\n return;\n }\n\n let safezone = this.rootNode\n .safezone(node.$el.clientHeight);\n\n this.strategy = this.DragIndicator\n .resolve(event, safezone, node.$el);\n\n let targetNode = {\n value: node.value, item: node.item\n };\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Any.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, targetNode, this.strategy);\n });\n\n let isInSelf = Arr.has(node.value.cascade,\n this.rootNode.tempSelected);\n\n rainbow.push(!isInSelf);\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n if ( this.strategy === 'nodrop' ) {\n this.DragIndicator.hide();\n }\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(node.$el).addClass('n-dragover');\n Dom.find(node.$el).removeClass('n-nodrop');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(node.$el).removeClass('n-dragover');\n Dom.find(node.$el).addClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveNode(event, node)\n {\n this.dragcount[node.uid] --;\n\n if ( this.dragcount[node.uid] !== 0 ) {\n return;\n }\n\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n }\n\n onDragendNode(event, node)\n {\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n Event.fire('NDrag:end');\n\n window.DragCache = null;\n }\n\n onDragdropNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n if ( this.strategy === 'nodrop' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(node, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindNode(node)\n {\n if ( this.childNodes[node.uid] ) {\n this.unbindNode(node);\n }\n\n let $handle = Dom.find(node.$el);\n\n if ( this.rootNode.handle ) {\n $handle = $handle.find('[draggable]');\n }\n\n let $el = Dom.find(node.$el);\n\n $handle.on('dragstart', (event) => {\n this.onDragstartNode(event, node);\n });\n\n $el.on('dragenter', (event) => {\n this.onDragenterNode(event, node);\n });\n\n $el.on('dragover', (event) => {\n this.onDragoverNode(event, node);\n });\n\n $el.on('dragleave', (event) => {\n this.onDragleaveNode(event, node);\n });\n\n $el.on('dragend', (event) => {\n this.onDragendNode(event, node);\n });\n\n $el.on('drop', (event) => {\n this.onDragdropNode(event, node);\n });\n\n $el.on('dragdrop', (event) => {\n this.onDragdropNode(event, node);\n });\n\n this.childNodes[node.uid] = node;\n }\n\n unbindNode(node)\n {\n let $handle = Dom.find(node.$el);\n\n if ( this.rootNode.handle ) {\n $handle = $handle.find('[draggable]');\n }\n\n $handle.off('dragstart');\n\n let $el = Dom.find(node.$el);\n\n $el.off([\n 'dragenter',\n 'dragover',\n 'dragleave',\n 'dragend',\n 'drop',\n 'dragdrop',\n ]);\n\n $el.removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n delete this.childNodes[node.uid];\n }\n\n moveNodes(target, strategy) {\n\n if ( this.rootNode.items !== undefined ) {\n return this.moveNodesMany(target, strategy);\n }\n\n if ( this.rootNode.item !== undefined ) {\n return this.moveNodesOne(target, strategy);\n }\n\n return null;\n }\n\n moveNodesOne(target, strategy)\n {\n let clone = {\n items: [Obj.clone(this.rootNode.item)]\n };\n\n if ( this.rootNode.insertNode ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n let source = Arr.first(this.cacheNodes);\n\n this.rootNode.$emit('move', Obj.get(source, 'value.id'),\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit('moveRaw',\n source, target, strategy);\n\n this.rootNode.$emit('update:item',\n Obj.get(source, 'item'));\n }\n\n moveNodesMany(target, strategy)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n if ( this.rootNode.removeNode ) {\n this.unlinkNodes(clone);\n }\n\n if ( !this.dropNodes.length ) {\n Arr.each(this.cacheNodes, (value, key) => {\n this.cacheNodes[key]['item'] = this.rootNode.transformDrop(value.item);\n });\n }\n\n if ( this.rootNode.insertNode && strategy === 'root' ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'inner' ) {\n clone = this.moveNodesInto(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'before' ) {\n clone = this.moveNodesBefore(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'after' ) {\n clone = this.moveNodesAfter(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n this.dropNodes = this.rootNode.tempSelected = [];\n\n let eventName = 'move';\n\n if ( Arr.has(window.dragMods, 18) ) {\n eventName = 'moveAlt';\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n eventName = 'moveCtrl';\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n eventName = 'moveMeta';\n }\n\n this.rootNode.$emit(eventName, sources,\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit(eventName + 'Raw',\n this.cacheNodes, target, strategy);\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n unlinkNodes(clone)\n {\n Arr.each(this.dropNodes, (node) => {\n Obj.set(clone, node.value.route, null);\n });\n }\n\n removeNodes(clone, prop = 'items')\n {\n clone[prop] = Arr.filter(clone[prop], (node) => {\n return !!node;\n });\n\n Arr.map(clone[prop], (node) => {\n\n if ( !node[this.rootNode.childProp] ) {\n return node;\n }\n\n return this.removeNodes(node,\n this.rootNode.childProp);\n });\n\n return clone;\n }\n\n moveNodesRoot(clone)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n Arr.each(this.cacheNodes, (node) => {\n clone.items.push(node.item);\n });\n\n return clone;\n }\n\n moveNodesInto(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = [\n target.value.route,\n this.rootNode.childProp\n ].join('.');\n\n let children = Obj.get(clone,\n targetRoute, []);\n\n Arr.each(this.cacheNodes, (node) => {\n children.push(node.item);\n });\n\n Obj.set(clone, targetRoute, children);\n\n return clone;\n }\n\n moveNodesBefore(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n moveNodesAfter(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index + 1, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n copyNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n let target = Obj.except(node.item, [], {\n [this.rootNode.uniqueProp]: UUID()\n });\n\n items.splice(node.value.index + 1,\n 0, target);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n removeNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n items.splice(node.value.index, 1);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n reduce(items, ...props)\n {\n return Arr.reduce(items, (merge, item, index) =>\n this.reduceItem(merge, item, Num.int(index), ...props), []);\n }\n\n reduceItem(merge, item, index, depth = 0, route = 'items', cascades = [])\n {\n // Get a unique id\n let unique = Obj.get(item,\n this.rootNode.uniqueProp, UUID());\n\n // Add unique to cascader\n let tempCascade = Arr.merge(cascades,\n [unique]);\n\n let virtual = {\n index: index,\n depth: depth,\n route: [route, index].join('.'),\n parent: Arr.last(cascades),\n cascade: tempCascade,\n };\n\n virtual[this.rootNode.uniqueProp] = unique;\n\n let children = Obj.get(item,\n this.rootNode.childProp, []);\n\n if ( Any.isEmpty(children) ) {\n return Arr.merge(merge, [virtual]);\n }\n\n let childRoute = [\n route, index,\n this.rootNode.childProp\n ].join('.');\n\n let props = [\n depth + 1, childRoute, tempCascade\n ]\n\n return Arr.merge(merge, [virtual],\n this.reduce(children, ...props));\n }\n\n}\n\nexport default NDraghandler;","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraglist',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n expanded: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.265;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 34;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderSelect: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderExpand: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NDraggable: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n modifier: [],\n virtuals: [], \n visible: [], \n childNodes: {}, \n highlight: [],\n firstSelected: null,\n lastSelected: null,\n tempCurrent: this.current, \n tempExpanded: this.expanded, \n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n\n Dom.find(window).on('keydown',\n this.watchModifierDown, this._.uid);\n\n Dom.find(window).on('keyup',\n this.watchModifierUp, this._.uid);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected, \n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n Dom.find(document).off('keyup', null, this.uid);\n },\n\n watch: {\n \n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n expanded(value)\n {\n this.tempExpanded = value;\n\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchModifierDown(e)\n {\n Arr.add(this.modifier, e.which);\n },\n\n watchModifierUp(e)\n {\n Arr.remove(this.modifier, e.which);\n },\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n updateNode(node)\n {\n Obj.set(this, node.value.route, node.item);\n\n this.$emit('update:items', this.items);\n },\n\n findVirtual(unique)\n {\n let value = Arr.find(this.virtuals, (item) => {\n return item[this.uniqueProp] === unique;\n });\n\n if ( ! value ) {\n return null;\n }\n\n return {\n value, item: Obj.get(this, value.route, null)\n };\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return Arr.contains(this.tempExpanded, node.cascade.slice(0, -1));\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Any.delay(() => this.scrollTo(x, y));\n }\n\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Any.delay(() => this.scrollToIndex(index));\n }\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Any.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n let val = node;\n\n if ( !Any.isEmpty(key) ) {\n val = Obj.get(val, key);\n }\n\n if ( ! Any.isFunction(value) ) {\n value = (val) => val === value;\n }\n\n if ( ! value(val) ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n \n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n \n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent && \n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent && \n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current', \n this.tempCurrent = node.item);\n \n Event.fire('NDraglist:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible, \n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current', \n this.tempCurrent = item);\n \n Event.fire('NDraglist:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n \n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraglist:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n hasChildren(node)\n {\n return !! this.getChildren(node).length;\n },\n\n getChildren(node)\n {\n return Obj.get(node.item, this.childProp, []);\n },\n\n isExpanded(node)\n {\n return Arr.has(this.tempExpanded, node.value[this.uniqueProp]);\n },\n\n expandItem(node)\n {\n if ( ! this.hasChildren(node) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, node.value[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n expandCurrent()\n {\n if ( ! this.tempCurrent ) {\n return;\n }\n\n let children = Obj.get(this.tempCurrent, \n this.childProp);\n\n if ( Any.isEmpty(children) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, \n this.tempCurrent[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n toggleSingleNode(node)\n {\n Arr.toggle(this.tempSelected, this.lastSelected =\n node.value[this.uniqueProp]);\n },\n\n toggleRangeNode(node)\n {\n let indexies = [0, -1], reversed = false;\n\n if ( ! Any.isEmpty(this.lastSelected) ) {\n indexies[1] = this.getIndex(this.lastSelected);\n }\n\n indexies[0] = this.getIndex(node.value[this.uniqueProp]);\n\n if ( indexies[1] > indexies[0] ) {\n reversed = true;\n }\n\n if ( ! reversed ) {\n indexies = [indexies[1]+1, indexies[0]+1];\n }\n\n Arr.each(this.items.slice(indexies[0], indexies[1]), (item, index) => {\n Arr.toggle(this.tempSelected, item[this.uniqueProp]);\n });\n\n this.lastSelected = node.value[this.uniqueProp];\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n ! Arr.has(this.modifier, 16) || this.renderExpand ?\n this.toggleSingleNode(node) : this.toggleRangeNode(node);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let result = Arr.filter(this.visible, (item) => {\n\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n let row = {\n value: item, item: Obj.get(this, item.route)\n };\n\n return ! item.depth && canSelect(row);\n });\n\n let indexies = Arr.each(result, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.lastSelected = null;\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown', \n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown', \n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 32 ) {\n event.preventDefault();\n event.stopPropagation();\n this.expandCurrent();\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draglist__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraglistItem {...Obj.except(props, ['index'])}>\n { { default: this.$slots.default } }\n </NDraglistItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist',\n 'n-draglist--' + this.size,\n 'n-draglist--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'bufferItems', 'itemHeight', \n 'overflowX', 'overflowY', 'offsetX', 'offsetY', 'useKeys'\n ];\n\n let props = Obj.only(this.$props, passed, {\n items: this.visible,\n onMouseenter: this.bindKeydown,\n onMouseleave: this.unbindKeydown\n });\n\n return (\n <NVirtualscroller ref=\"virtualscroller\" class={classList} {...props}>\n { { default: this.ctor('renderItem'), empty: this.ctor('renderEmpty') } }\n </NVirtualscroller>\n );\n }\n\n}\n","import { Str, Obj, Arr, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDraglistItem',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n \n },\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n },\n\n },\n\n computed: {\n\n uid()\n {\n return Obj.get(this.value, this.NDraggable.uniqueProp);\n },\n\n item()\n {\n return Obj.get(this.NDraggable, this.value.route);\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n init: ! this.NDraggable.lazyload\n };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => {\n\n if ( this.NDraggable.draggable ) {\n this.timer = setTimeout(() => {\n this.NDraggable.drag.bindNode(this);\n }, 10);\n }\n\n this.init = true;\n }, 5);\n },\n\n beforeUnmount()\n {\n clearTimeout(this.timer);\n\n this.NDraggable.drag.unbindNode(this);\n },\n\n methods: {\n\n copy()\n {\n return this.NDraggable.drag.copyNode(this);\n },\n\n remove()\n {\n return this.NDraggable.drag.removeNode(this);\n },\n\n hasChildren()\n {\n return this.NDraggable.hasChildren(this);\n },\n\n isDisabled()\n {\n return this.NDraggable.isDisabled(this);\n },\n\n isHighlight()\n {\n return this.NDraggable.isHighlight(this);\n },\n\n isCurrent()\n {\n return this.NDraggable.isCurrent(this);\n },\n\n isDraggable()\n {\n return this.NDraggable.isDraggable(this);\n },\n\n isExpanded()\n {\n return this.NDraggable.isExpanded(this);\n },\n\n expandItem()\n {\n this.NDraggable.expandItem(this);\n },\n\n isSelected()\n {\n return this.NDraggable.isSelected(this);\n },\n\n selectItem()\n {\n this.NDraggable.selectItem(this);\n },\n\n onClick(event)\n {\n let isExpand = Dom.find(event.target)\n .closest('.n-draglist-item__expand');\n\n if ( isExpand ) {\n return;\n }\n\n this.NDraggable.setCurrent(this);\n\n if ( Arr.has(window.keyMods, 91) ) {\n this.NDraggable.selectItem(this);\n }\n\n this.NDraggable.$emit('row-click', this);\n },\n\n onDblclick()\n {\n this.NDraggable.setCurrent(this);\n\n this.NDraggable.$emit('row-dblclick', this);\n }\n\n },\n\n renderElement()\n {\n let classList = [\n 'n-draglist-item__element'\n ];\n\n if ( ! this.init ) {\n return (<div class={classList} />);\n }\n\n let props = {\n value: this.value,\n item: this.item,\n copy: this.copy,\n remove: this.remove,\n };\n\n let renderFunction = this.$slots.default;\n\n if ( this.NDraggable.renderNode ) {\n renderFunction = this.NDraggable.renderNode;\n }\n\n return (\n <div class={classList}>\n { renderFunction(props) }\n </div>\n );\n },\n\n renderSpacer()\n {\n let width = this.value.depth * \n this.NDraggable.itemOffset;\n\n if ( ! width ) {\n return null;\n }\n\n let style = {\n width: width + 'px'\n };\n\n return (\n <div class=\"n-draglist-item__spacer\" style={style}>\n { /* SPACER */ }\n </div>\n );\n },\n\n renderHandle()\n {\n if ( ! this.NDraggable.renderHandle ) {\n return null;\n }\n\n let props = {};\n\n if ( this.NDraggable.draggable && this.isDraggable() ) {\n props.draggable = true;\n }\n\n return (\n <div class=\"n-draglist-item__handle\" {...props}>\n <div class=\"n-draglist-item__ellipsis\">\n <i class={ nano.Icons.handle }></i>\n </div>\n </div>\n );\n },\n\n renderExpand()\n {\n if ( ! this.NDraggable.renderExpand ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.expandItem\n };\n\n return (\n <div class=\"n-draglist-item__expand\" {...props}>\n <div class=\"n-draglist-item__angle\">\n <i class={ nano.Icons.angleRight }></i>\n </div>\n </div>\n );\n },\n\n renderSelect()\n {\n if ( ! this.NDraggable.renderSelect ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.selectItem\n };\n\n return (\n <div class=\"n-draglist-item__select\" {...props}>\n <div class=\"n-draglist-item__checkbox\">\n <i class={ nano.Icons.checked }></i>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist-item'\n ];\n\n if ( this.hasChildren() ) {\n classList.push('n-children');\n }\n\n if ( this.isDisabled() ) {\n classList.push('n-disabled');\n }\n\n if ( this.isSelected() ) {\n classList.push('n-selected');\n }\n\n if ( this.isExpanded() ) {\n classList.push('n-expanded');\n }\n\n if ( this.isCurrent() ) {\n classList.push('n-current');\n }\n\n if ( this.isHighlight() ) {\n classList.push('n-highlight');\n }\n\n let props = {\n onClick: this.onClick,\n onDblclick: this.onDblclick,\n };\n\n if ( this.NDraggable.draggable && ! this.NDraggable.handle && this.isDraggable() ) {\n props.draggable = true;\n }\n\n props['data-unique'] = this.value[this.NDraggable.uniqueProp];\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHandle')() }\n { this.ctor('renderSpacer')() }\n { this.ctor('renderExpand')() }\n { this.ctor('renderSelect')() }\n { this.ctor('renderElement')() }\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraggrid',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => -1;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 200;\n },\n type: [Number]\n },\n\n itemWidth: {\n default()\n {\n return 150;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n deathzone: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n offsetX: {\n default()\n {\n return 10;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderSelect: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NDraggable: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n virtuals: [],\n visible: [],\n childNodes: {},\n highlight: [],\n firstSelected: null,\n tempCurrent: this.current,\n tempExpanded: this.expanded,\n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected,\n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n },\n\n watch: {\n\n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return node.depth === 0;\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Any.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n if ( Obj.get(node, key || this.uniqueProp) !== value ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n\n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n\n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent &&\n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent &&\n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current',\n this.tempCurrent = node.item);\n\n Event.fire('NDraggrid:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible,\n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current',\n this.tempCurrent = item);\n\n Event.fire('NDraggrid:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraggrid:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n Arr.toggle(this.tempSelected, node.value[this.uniqueProp]);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n let indexies = Arr.each(visible, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown',\n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown',\n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draggrid__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraggridItem {...Obj.except(props, ['index'])}>\n { { default: this.$slots.default } }\n </NDraggridItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draggrid',\n 'n-draggrid--' + this.size,\n 'n-draggrid--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'deathzone', 'itemHeight', 'itemWidth',\n 'overflowX', 'overflowY', 'offsetX', 'offsetY', 'useKeys'\n ];\n\n let props = Obj.only(this.$props, passed, {\n items: this.visible,\n onMouseenter: this.bindKeydown,\n onMouseleave: this.unbindKeydown\n });\n\n return (\n <NVirtualscroller ref=\"virtualscroller\" class={classList} {...props}>\n { { default: this.ctor('renderItem'), empty: this.ctor('renderEmpty') } }\n </NVirtualscroller>\n );\n }\n\n}\n","import { Str, Arr, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDraggridItem',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n }\n\n },\n\n computed: {\n\n uid()\n {\n return Obj.get(this.value, this.NDraggable.uniqueProp);\n },\n\n item()\n {\n return Obj.get(this.NDraggable, this.value.route);\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n init: ! this.NDraggable.lazyload\n };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => {\n\n if ( this.NDraggable.draggable ) {\n this.timer = setTimeout(() => {\n this.NDraggable.drag.bindNode(this);\n }, 50);\n }\n\n this.init = true;\n }, 40);\n },\n\n beforeUnmount()\n {\n if ( ! this.init ) {\n clearTimeout(this.timer);\n }\n\n this.NDraggable.drag.unbindNode(this);\n },\n\n methods: {\n\n copy()\n {\n return this.NDraggable.drag.copyNode(this);\n },\n\n remove()\n {\n return this.NDraggable.drag.removeNode(this);\n },\n\n isDisabled()\n {\n return this.NDraggable.isDisabled(this);\n },\n\n isHighlight()\n {\n return this.NDraggable.isHighlight(this);\n },\n\n isCurrent()\n {\n return this.NDraggable.isCurrent(this);\n },\n\n isDraggable()\n {\n return this.NDraggable.isDraggable(this);\n },\n\n isSelected()\n {\n return this.NDraggable.isSelected(this);\n },\n\n selectItem()\n {\n this.NDraggable.selectItem(this);\n },\n\n onClick()\n {\n this.NDraggable.setCurrent(this);\n\n if ( Arr.has(window.keyMods, 91) ) {\n this.NDraggable.selectItem(this);\n }\n\n this.NDraggable.$emit('row-click', this);\n },\n\n onDblclick()\n {\n this.NDraggable.setCurrent(this);\n\n this.NDraggable.$emit('row-dblclick', this);\n }\n\n },\n\n renderElement()\n {\n let classList = [\n 'n-draglist-item__element'\n ];\n\n if ( ! this.init ) {\n return (<div class={classList} />);\n }\n\n let props = {\n value: this.value,\n item: this.item,\n copy: this.copy,\n remove: this.remove,\n };\n\n let renderFunction = this.$slots.default;\n\n if ( this.NDraggable.renderNode ) {\n renderFunction = this.NDraggable.renderNode;\n }\n\n return (\n <div class={classList}>\n {renderFunction(props)}\n </div>\n );\n },\n\n renderHandle()\n {\n if ( ! this.NDraggable.renderHandle ) {\n return null;\n }\n\n let props = {};\n\n if ( this.NDraggable.draggable && this.isDraggable() ) {\n props.draggable = true;\n }\n\n return (\n <div class=\"n-draggrid-item__handle\" {...props}>\n <div class=\"n-draggrid-item__ellipsis\">\n <i class={ nano.Icons.handle }></i>\n </div>\n </div>\n );\n },\n\n renderSelect()\n {\n if ( ! this.NDraggable.renderSelect ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.selectItem\n };\n\n return (\n <div class=\"n-draggrid-item__select\" {...props}>\n <div class=\"n-draggrid-item__checkbox\">\n <i class={ nano.Icons.checked }></i>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draggrid-item'\n ];\n\n if ( this.isDisabled() ) {\n classList.push('n-disabled');\n }\n\n if ( this.isSelected() ) {\n classList.push('n-selected');\n }\n\n if ( this.isCurrent() ) {\n classList.push('n-current');\n }\n\n if ( this.isHighlight() ) {\n classList.push('n-highlight');\n }\n\n let props = {\n onClick: this.onClick,\n onDblclick: this.onDblclick,\n };\n\n if ( this.NDraggable.draggable && ! this.NDraggable.handle && this.isDraggable() ) {\n props.draggable = true;\n }\n\n props['data-unique'] = this.value[this.NDraggable.uniqueProp];\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHandle')() }\n { this.ctor('renderSelect')() }\n { this.ctor('renderElement')() }\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDropzone',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n },\n\n provide()\n {\n return {\n NDropzone: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n this.drag.bindRoot(this.$el);\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n },\n\n renderItem()\n {\n if ( Any.isEmpty(this.item) ) {\n return null;\n }\n\n return this.$slots.default && this.$slots.default(this.item)\n },\n\n renderEmpty()\n {\n if ( ! Any.isEmpty(this.item) ) {\n return null;\n }\n\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-dropzone__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entry') }\n </NEmptyIcon>\n );\n },\n\n render()\n {\n let classList = [\n 'n-dropzone',\n 'n-dropzone--' + this.size,\n 'n-dropzone--' + this.type\n ];\n\n if ( Any.isEmpty(this.item) ) {\n classList.push('n-empty');\n }\n\n return (\n <div class={classList}>\n {[this.ctor('renderItem')(), this.ctor('renderEmpty')()]}\n </div>\n );\n }\n\n}\n","import { UUID, Num, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NLoader',\n\n inject: {\n\n NLoader: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NLoader: this\n };\n },\n\n props: {\n\n visible: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n minimum: {\n default()\n {\n return 120;\n },\n type: [Number]\n },\n\n debounce: {\n default()\n {\n return 120;\n },\n type: [Number]\n }\n\n },\n\n data()\n {\n return {\n tempVisible: this.visible\n };\n },\n\n methods: {\n\n applyTimer()\n {\n this.timing = Date.now();\n\n if ( this.visible) {\n return this.tempVisible = this.visible;\n }\n\n this.startTimer();\n },\n\n startTimer()\n {\n let timing = Date.now() - this.timing;\n\n if ( timing < this.minimum ) {\n return this.restartTimer(timing);\n }\n\n this.timeout = setTimeout(() => this.tempVisible = false, \n this.debounce);\n },\n\n restartTimer(timing = 0) {\n Any.delay(this.startTimer, this.minimum - timing + 10);\n }\n\n },\n\n watch: {\n\n visible()\n {\n this.applyTimer();\n }\n\n },\n\n mounted()\n {\n this.applyTimer();\n },\n\n render()\n {\n let classList = [\n 'n-loader', \n 'n-loader--' + this.size, \n 'n-loader--' + this.type\n ];\n\n if ( this.tempVisible ) {\n classList.push('n-load');\n }\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { UUID, Arr, Obj, Dom, Any, Str, Locale, Event, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NResizer',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n minWidth: {\n default()\n {\n return 60;\n },\n type: [Number]\n },\n\n maxWidth: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n group: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n resizerWidth: {\n default()\n {\n return 6;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n sizeFixed: false,\n tempValue: this.modelValue,\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n mounted()\n {\n if ( ! this.modelValue ) {\n this.updateWidth();\n }\n\n if ( this.NScrollbar ) {\n this.bindSizechange();\n }\n\n Event.bind('NResizer:move', (...args) => {\n this.forceWidth(...args)\n }, this._.uid);\n\n Dom.find(window).on('resize', Any.debounce((...args) => {\n this.onResize(...args)\n }, 500), this._.uid);\n\n 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).css(style);\n },\n\n updateWidth()\n {\n let width = Dom.find(this.$el)\n .width();\n\n if ( width === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = width);\n\n this.updateHandle();\n },\n\n updateHandle()\n {\n let style = {};\n\n if ( this.position === 'left' ) {\n style.transform =`translateX(-${this.tempValue - this.resizerWidth}px)`\n }\n\n if ( this.position === 'right' ) {\n style.transform = `translateX(${this.tempValue - this.resizerWidth}px)`\n }\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n bindSizechange()\n {\n Dom.find(this.NScrollbar.$el).on('resized',\n Any.debounce(this.updateWidth, 50), this._.uid);\n },\n\n unbindSizechange()\n {\n Dom.find(this.NScrollbar.$el)\n .off('resized', null, this._.uid);\n },\n\n\n onResize()\n {\n if ( this.NScrollbar ) {\n return;\n }\n\n this.updateWidth();\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onLeftMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onLeftMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onLeftMousemove, 60), this._.uid);\n },\n\n onLeftMousemove(event)\n {\n this.clientX = (window.innerWidth -\n this.getTouchEvent(event).clientX);\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(-${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n onLeftMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).removeClass('n-move');\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n onRightMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onRightMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onRightMousemove, 60), this._.uid);\n },\n\n onRightMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n onRightMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mousemove, null, this._.uid);\n Dom.find(document).off(this.mouseup, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).removeClass('n-move');\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n renderHandle()\n {\n if ( this.disabled ) {\n return null;\n }\n\n let classList = [\n 'n-resizer__handle',\n ];\n\n let props = {};\n\n if ( this.position === 'right' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onRightMousedown;\n }\n\n if ( this.position === 'left' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onLeftMousedown;\n }\n\n if ( this.resizerWidth ) {\n props.width = this.resizerWidth + 'px';\n }\n\n return (\n <div ref=\"handle\" class={classList} {...props}/>\n );\n },\n\n render()\n {\n let classList = [\n 'n-resizer',\n 'n-resizer--' + this.position,\n ];\n\n let style = {};\n\n if ( this.width && ! this.tempValue ) {\n style['width'] = this.width + 'px';\n }\n\n if ( this.width ) {\n style['flex-basis'] = this.width + 'px';\n }\n\n if ( this.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 { Arr, Any, Dom, Event, UUID } from \"@kizmann/pico-js\";\n\n\nexport default {\n\n name: 'NPopover',\n\n provide()\n {\n return {\n NPopover: this\n };\n },\n\n inject: {\n\n NPopover: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n window: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-center';\n },\n type: [String]\n },\n\n scrollClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n multiClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n framerate: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n tempValue: false,\n clientX: 0,\n clientY: 0,\n target: null,\n prevent: false,\n };\n },\n\n watch: {\n\n modelValue()\n {\n this.tempValue = this.modelValue;\n },\n\n tempValue()\n {\n Any.delay(this.refreshVisible, 50);\n }\n\n },\n\n beforeMount()\n {\n this.tempValue = this.modelValue;\n },\n\n mounted()\n {\n this.target = Dom.find(this.$el).previous().get(0);\n\n if ( this.trigger === 'context' ) {\n this.target = Dom.find(this.$el).parent().get(0);\n }\n\n if ( this.window ) {\n Dom.find(document.body).append(this.$el);\n }\n\n if ( this.listen && this.trigger === 'hover' ) {\n Dom.find(document.body).on('mousemove', \n Any.framerate(this.onHover, 30), this._.uid);\n }\n\n if ( this.listen && this.trigger === 'click' ) {\n Dom.find(document.body).on(this.mousedown, \n Any.framerate(this.onClick, 30), this._.uid);\n }\n\n if ( this.listen && this.trigger === 'context' ) {\n Dom.find(document.body).on('contextmenu', \n Any.framerate(this.onContext, 30), this._.uid);\n }\n\n Dom.find(document.body).on(this.mousedown, \n Any.framerate(this.onExit, 30), this._.uid);\n\n Event.bind('NPopover:close', this.onCloseEvent, this._.uid);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n\n Dom.find(document).off('mousemove', null, this._.uid);\n Dom.find(document).off('mousedown', null, this._.uid);\n Dom.find(document).off('contextmenu', null, this._.uid);\n\n Event.unbind('NPopover:close', this._.uid);\n \n },\n\n methods: {\n\n active()\n {\n return this.tempValue;\n },\n\n open()\n {\n this.$emit('update:modelValue', \n this.tempValue = true);\n },\n\n close(type = null)\n {\n if ( this.prevent ) {\n return;\n }\n\n delete this.timer;\n\n if ( ! type ) {\n this.$emit('close');\n }\n\n if ( type === 'scroll' ) {\n this.$emit('scrollClose');\n }\n\n if ( type === 'multi' ) {\n this.$emit('multiClose');\n }\n\n this.$emit('update:modelValue', \n this.tempValue = false);\n },\n\n pause()\n {\n this.prevent = true;\n },\n\n unpause()\n {\n this.prevent = false;\n },\n\n onCloseEvent(uid)\n {\n if ( this.multiClose && this.tempValue && this._.uid !== uid ) {\n this.close('multi');\n }\n },\n\n refreshVisible()\n {\n Dom.find(this.$el).css(null);\n\n if ( ! this.tempValue ) {\n return this.stopRefreshInterval();\n }\n\n this.startRefreshInterval();\n\n delete this.passedOffset;\n },\n\n startRefreshInterval()\n {\n this.refresh = setInterval(this.updatePosition, \n 1000 / this.framerate);\n\n let onReady = () => {\n\n if ( this.listen ) {\n Dom.find(this.target).addClass('n-open');\n }\n\n Dom.find(this.$el).addClass('n-ready');\n\n if ( this.NPopover ) {\n this.NPopover.pause();\n }\n\n Event.fire('NPopover:close', this._.uid);\n }\n\n Any.delay(onReady, 100);\n },\n\n stopRefreshInterval()\n {\n clearInterval(this.refresh);\n\n if ( this.NPopover ) {\n this.NPopover.unpause();\n }\n\n if ( this.listen ) {\n Dom.find(this.target).removeClass('n-open');\n }\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n isSameOffset(offset)\n {\n if ( ! this.passedOffset ) {\n return false;\n }\n\n let rainbow = Arr.each(['x', 'y'], (key) => {\n return offset[key] === this.passedOffset[key];\n });\n\n return ! Arr.has(rainbow, false);\n },\n\n isSameSize(size)\n {\n if ( ! this.passedSize ) {\n return false;\n }\n\n let rainbow = Arr.each(['width', 'height'], (key) => {\n return size[key] === this.passedSize[key];\n });\n\n return ! Arr.has(rainbow, false);\n },\n\n getTargetHorizontal(position, fallback = null)\n {\n let targetRect = this.target.getBoundingClientRect();\n\n if ( this.trigger === 'context' ) {\n targetRect = {\n top: this.clientY, left: this.clientX, width: 2, height: 2\n };\n }\n\n let windowRect = this.$el.getBoundingClientRect();\n\n if ( this.width === -1 ) {\n windowRect.width = targetRect.width;\n }\n\n let posY = {\n\n // Set above the tagret element\n start: targetRect.top - windowRect.height,\n \n // Set at bottom of target element\n end: targetRect.top + targetRect.height,\n\n };\n\n let posX = {\n\n // Set on the left of target element\n start: targetRect.left,\n\n // Set into the center of the target element\n center: targetRect.left + (targetRect.width * 0.5) - \n (windowRect.width * 0.5),\n\n // Set on the right of the target element\n end: targetRect.left + targetRect.width - \n windowRect.width,\n\n };\n\n let offset = { x: 0, y: 0 };\n\n if ( position === 'top-start' ) {\n offset = { x: posX.start, y: posY.start };\n }\n\n if ( position === 'top-center' ) {\n offset = { x: posX.center, y: posY.start };\n }\n\n if ( position === 'top-end' ) {\n offset = { x: posX.end, y: posY.start };\n }\n\n if ( position === 'bottom-start' ) {\n offset = { x: posX.start, y: posY.end };\n }\n\n if ( position === 'bottom-center' ) {\n offset = { x: posX.center, y: posY.end };\n }\n\n if ( position === 'bottom-end' ) {\n offset = { x: posX.end, y: posY.end };\n }\n\n let inverse = this.position;\n\n if ( position.match(/^(top)\\-/) ) {\n inverse = inverse.replace(/^(top)\\-/, 'bottom-');\n }\n\n if ( position.match(/^(bottom)\\-/) ) {\n inverse = inverse.replace(/^(bottom)\\-/, 'top-');\n }\n\n let broken = offset.y + windowRect.height > \n window.innerHeight || offset.y < 0;\n\n if ( this.scrollClose && broken && ! fallback ) {\n return this.getTargetHorizontal(inverse, offset);\n }\n\n if ( fallback && broken ) {\n offset = fallback;\n }\n\n if ( offset.y < 0 ) {\n offset.y = 0;\n }\n \n if ( offset.y + windowRect.height > window.innerHeight ) {\n offset.y = window.innerHeight - windowRect.height;\n }\n\n if ( offset.x < 0 ) {\n offset.x = 0;\n }\n \n if ( offset.x + windowRect.width > window.innerWidth ) {\n offset.x = window.innerWidth - windowRect.width -\n (window.innerWidth - document.body.clientWidth);\n }\n\n return offset;\n },\n\n getTargetVertical(position, fallback = null)\n {\n let targetRect = this.target.getBoundingClientRect();\n\n if ( this.trigger === 'context' ) {\n targetRect = {\n top: this.clientY, left: this.clientX, width: 2, height: 2\n };\n }\n\n let windowRect = this.$el.getBoundingClientRect();\n\n if ( this.width === -1 ) {\n windowRect.width = targetRect.width;\n }\n \n let posY = {\n\n // Set at top edge of the target element\n start: targetRect.top,\n\n // Set at the middle of the target element\n center: targetRect.top + (targetRect.height * 0.5) - \n (windowRect.height * 0.5),\n\n // Ste at the bottom of the target elemnent\n end: targetRect.top + targetRect.height - \n windowRect.height,\n\n };\n\n let posX = {\n\n // Set to the left of the target element\n start: targetRect.left - windowRect.width,\n\n // Set to the right of the target element\n end: targetRect.left + targetRect.width,\n\n };\n\n let offset = { x: 0, y: 0 };\n\n if ( position === 'left-start' ) {\n offset = { x: posX.start, y: posY.start };\n }\n\n if ( position === 'left-center' ) {\n offset = { x: posX.start, y: posY.center };\n }\n\n if ( position === 'left-end' ) {\n offset = { x: posX.start, y: posY.end };\n }\n\n if ( position === 'right-start' ) {\n offset = { x: posX.end, y: posY.start };\n }\n\n if ( position === 'right-center' ) {\n offset = { x: posX.end, y: posY.center };\n }\n\n if ( position === 'right-end' ) {\n offset = { x: posX.end, y: posY.end };\n }\n\n let inverse = this.position;\n\n if ( position.match(/^(left)\\-/) ) {\n inverse = inverse.replace(/^(left)\\-/, 'right-');\n }\n\n if ( position.match(/^(right)\\-/) ) {\n inverse = inverse.replace(/^(right)\\-/, 'left-');\n }\n\n let broken = offset.x + windowRect.width > \n window.innerWidth || offset.x < 0;\n\n if ( this.scrollClose && broken && ! fallback ) {\n return this.getTargetVertical(inverse, offset);\n }\n\n if ( fallback && broken ) {\n offset = fallback;\n }\n\n if ( offset.y < 0 ) {\n offset.y = 0;\n }\n \n if ( offset.y + windowRect.height > window.innerHeight ) {\n offset.y = window.innerHeight - windowRect.height;\n }\n\n if ( offset.x < 0 ) {\n offset.x = 0;\n }\n \n if ( offset.x + windowRect.width > window.innerWidth ) {\n offset.x = window.innerWidth - windowRect.width -\n (window.innerWidth - document.body.clientWidth);\n }\n\n return offset;\n },\n\n getTargetOffset()\n {\n let position = this.position;\n\n if ( position.match(/^(top|bottom)\\-/) ) {\n return this.getTargetHorizontal(position);\n }\n\n if ( position.match(/^(left|right)\\-/) ) {\n return this.getTargetVertical(position);\n }\n\n return targetRect;\n },\n\n updatePosition()\n {\n let size = this.$el.getBoundingClientRect(),\n rect = this.target.getBoundingClientRect();\n\n let isSameSize = this.isSameSize(size);\n\n if ( isSameSize && this.isSameOffset(rect) ) {\n return;\n }\n\n if ( ! this.timer ) {\n this.timer = Date.now();\n }\n\n this.passedSize = size;\n\n if ( this.width ) {\n Dom.find(this.$el).css({ width: this.width + 'px' });\n }\n\n let offset = this.getTargetOffset();\n\n let scroll = Dom.find(document.body)\n .scroll();\n\n let style = {\n 'z-index': window.zIndex++,\n 'top': Math.round(offset.y + scroll.top) + 'px', \n 'left': Math.round(offset.x + scroll.left) + 'px', \n };\n\n if ( this.width === -1 ) {\n style.width = rect.width + 'px';\n }\n\n Dom.find(this.$el).css(style);\n\n let isScrollClose = this.passedOffset && isSameSize &&\n (Date.now() - this.timer) > 500;\n\n if ( this.scrollClose && isScrollClose ) {\n this.close('scroll');\n }\n\n this.passedOffset = rect;\n },\n\n onHover(event, el)\n {\n if ( this.disabled ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n let result = (!! target || !! source);\n\n if ( this.tempValue === result ) {\n return;\n }\n\n if ( ! result ) {\n return this.$nextTick(this.close);\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onClick(event, el)\n {\n let keyCode = event.which === 1 ||\n event.which === 0;\n\n if ( this.disabled || this.tempValue || ! keyCode ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n let result = (!! target || !! source);\n\n if ( this.tempValue === result ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onContext(event, el)\n {\n let keyCode = event.which === 3;\n\n if ( this.disabled || this.tempValue || ! keyCode ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target),\n source = Dom.find(el).closest(this.$el);\n\n this.clientX = event.clientX;\n this.clientY = event.clientY;\n\n let result = (!! target || !! source);\n\n if ( result ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if ( this.tempValue === result ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = result);\n },\n\n onExit(event, el)\n {\n if ( this.disabled || ! this.tempValue ) {\n return;\n }\n\n if ( !! Dom.find(el).closest(this.$el) ) {\n return;\n }\n\n let target = Dom.find(el).closest(this.target);\n\n if ( this.trigger !== 'context' && !! target ) {\n return;\n }\n\n this.close();\n }\n\n },\n\n renderBody()\n {\n if ( this.$slots.raw ) {\n return this.$slots.raw();\n }\n\n return (\n <div class=\"n-popover__frame\">\n { this.$slots.header &&\n <div class=\"n-popover__header\">\n { this.$slots.header() }\n </div>\n }\n <div class=\"n-popover__body\">\n { this.$slots.default() }\n </div>\n { this.$slots.footer &&\n <div class=\"n-popover__footer\">\n { this.$slots.footer() }\n </div>\n }\n </div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-popover',\n 'n-popover--' + this.type,\n 'n-popover--' + this.size,\n 'n-popover--' + this.position,\n ];\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let viewBody = this.modelValue;\n\n if ( Any.isNull(this.modelValue) ) {\n viewBody = this.tempValue;\n }\n\n return (\n <div class={classList}>\n { viewBody && this.ctor('renderBody')() }\n </div>\n );\n }\n\n}\n","export default {\n\n name: 'NPopoverGroup',\n\n inject: {\n NPopover: {\n default: undefined\n }\n },\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n\n },\n\n computed: {\n\n tempSize()\n {\n if ( this.NPopover ) {\n return this.NPopover.size;\n }\n\n return this.size;\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-popover-group',\n 'n-popover-group--' + this.tempSize,\n ];\n\n return (\n <label class={classList}>\n <span>{ this.$slots.default() }</span>\n </label>\n );\n }\n\n}\n","import { Obj, Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPopoverOption',\n\n inject: {\n NPopover: {\n default: undefined\n }\n },\n\n props: {\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n focus: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n active: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n iconPosition: {\n default()\n {\n return 'after';\n },\n type: [String]\n },\n\n image: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n imagePosition: {\n default()\n {\n return 'before';\n },\n type: [String]\n },\n\n clickClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n\n },\n\n computed: {\n\n tempSize()\n {\n if ( this.NPopover ) {\n return this.NPopover.size;\n }\n\n return this.size;\n }\n\n },\n\n methods: {\n\n onClick(event)\n {\n if ( this.NPopover && this.clickClose ) {\n this.NPopover.close();\n }\n\n this.$emit('fakeclick', event);\n }\n\n },\n\n renderImage()\n {\n if ( ! this.image ) {\n return null;\n }\n\n let classList = [\n 'n-image',\n 'n-image--' + this.imagePosition,\n ];\n\n return (<img class={classList} src={this.image} />);\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n let classList = [\n 'n-icon', \n 'n-icon--' + this.iconPosition,\n ];\n\n classList.push(this.icon);\n\n return (<i class={classList}></i>);\n },\n\n renderContent()\n {\n if ( this.$slots.raw ) {\n return this.$slots.raw();\n }\n\n return (\n <span>{ this.$slots.default() }</span>\n );\n },\n\n render()\n {\n let classList = [\n 'n-popover-option',\n 'n-popover-option--' + this.type,\n 'n-popover-option--' + this.tempSize,\n ];\n\n if ( this.active ) {\n classList.push('n-active');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onClick = this.onClick;\n }\n\n if ( this.disabled ) {\n props.disabled = true;\n }\n\n return (\n <a class={classList} href=\"javascript:void(0)\" {...props}>\n { this.ctor('renderImage')() }\n { this.ctor('renderContent')() }\n { this.ctor('renderIcon')() }\n </a>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NModal',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return '50%';\n },\n type: [String]\n },\n\n height: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n title: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'center-center';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n tempValue()\n {\n this.startRefreshTimeout();\n }\n\n },\n\n provide()\n {\n return {\n NModal: this\n };\n },\n\n data()\n {\n return {\n target: null, tempValue: false\n };\n },\n\n mounted()\n {\n this.target = Dom.find(this.selector || this.$el)\n .previous().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showModal = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Any.delay(showModal, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeModal(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-modal',\n window.zIndex);\n\n Dom.find(this.$el).css({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeModal(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-modal');\n };\n\n let indexes = Dom.find('.n-modal:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-modal');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeModal(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeModal(false, 'escape')\n };\n\n return (\n <div class=\"n-modal__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__header\">\n { [this.$slots.header && this.$slots.header({ closeModal: this.closeModal }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__footer\">\n { this.$slots.footer({ closeModal: this.closeModal }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-modal__wrap\">\n { this.$slots.default && this.$slots.default({ closeModal: this.closeModal }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeModal: this.closeModal });\n }\n\n return (\n <div class=\"n-modal__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width, height: this.height\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-modal__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n return (\n <div ref=\"backdrop\" class=\"n-modal__backdrop\"></div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-modal',\n 'n-modal--' + this.size,\n 'n-modal--' + this.type,\n 'n-modal--' + this.position\n ];\n\n if ( this.tempValue ) {\n this.queueRefreshTimeout();\n }\n\n if ( this.renderClose ) {\n classList.push('n-closable');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let innerHtml = null;\n\n if ( this.tempValue ) {\n innerHtml = this.ctor('renderFrame')();\n }\n\n return (\n <div class={classList}>\n { [innerHtml, this.ctor('renderBackdrop')()] }\n </div>\n );\n }\n\n}\n","import { Obj } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NButton',\n\n props: {\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n link: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n glass: {\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.square ) {\n classList.push('n-button--square');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = {\n class: classList\n };\n\n if ( this.disabled ) {\n props.disabled = true;\n }\n\n let innerHtml = [];\n\n if ( this.iconPosition === 'before' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n if ( this.$slots.default && ! this.square ) {\n innerHtml.push(<span>{ this.$slots.default && this.$slots.default() }</span>);\n }\n\n if ( this.iconPosition === 'after' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n return h(this.nativeType, props, innerHtml);\n }\n\n}\n","export default {\n\n name: 'NButtonGroup',\n\n props: {\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-button-group',\n 'n-button-group--' + this.size\n ]\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { h } from \"vue\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInput',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n inheritAttrs: false,\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n iconPosition: {\n default()\n {\n return 'after';\n },\n type: [String]\n },\n\n iconDisabled: {\n default()\n {\n return null;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n nativeType: {\n default()\n {\n return 'text';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue || ''\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n onIconClick(event)\n {\n if ( event.clientX || event.clientY ) {\n this.$emit('icon-click', event);\n }\n },\n\n onInput(event)\n {\n this.$emit('update:modelValue',\n this.tempValue = event.target.value);\n },\n\n onKeydown(event)\n {\n this.$emit('keydown', event);\n\n if ( event.which !== 13 ) {\n return;\n }\n\n event.preventDefault();\n\n if ( ! this.NForm ) {\n return;\n }\n\n this.NForm.onSubmit(event);\n },\n\n onFocus(event)\n {\n this.focus = true;\n this.$emit('focus', event);\n },\n\n onBlur(event)\n {\n this.focus = false;\n this.$emit('blur', event);\n }\n\n },\n\n renderIcon()\n {\n if ( !this.icon ) {\n return null;\n }\n\n let disabled = this.deepDisabled;\n\n if ( this.iconDisabled !== null ) {\n disabled = this.iconDisabled;\n }\n\n let props = {\n type: 'input',\n icon: this.icon,\n size: this.size,\n square: true,\n disabled: disabled,\n };\n\n if ( !disabled ) {\n props.onClick = this.onIconClick;\n }\n\n return (<NButton {...props} />);\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs, [\n 'class', 'style'\n ]);\n\n Obj.assign(props, {\n value: this.tempValue,\n type: this.nativeType,\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onInput: this.onInput,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeydown: this.onKeydown\n });\n\n return h('input', props);\n },\n\n render()\n {\n let classList = [\n 'n-input',\n 'n-input--' + this.size,\n 'n-input--' + this.type,\n ];\n\n if ( this.icon ) {\n classList.push('n-input--icon');\n classList.push('n-input--icon-' + this.iconPosition);\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n let props = Obj.only(this.$attrs, ['style'], {\n class: this.cmer(classList)\n });\n\n let innerHtml = [];\n\n if ( this.iconPosition === 'before' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n innerHtml.push(this.ctor('renderInput')());\n\n if ( this.iconPosition === 'after' ) {\n innerHtml.push(this.ctor('renderIcon')());\n }\n\n return h('div', props, innerHtml);\n }\n\n}\n","import { Arr, Obj, Num, Now, Any, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NInputNumber',\n\n inheritAttrs: false,\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n \n },\n\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return Number.MAX_VALUE;\n },\n type: [Number]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n stepSize: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n precision: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n format: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n decimals: {\n default()\n {\n return Locale.trans('.');\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = this.getValue(value);\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.getValue(),\n }\n },\n\n methods: {\n\n clear()\n {\n this.$emit('update:modelValue', this.tempValue = this.clearValue);\n },\n\n getValue(value = null)\n {\n if ( Any.isNull(value) ) {\n value = this.modelValue;\n }\n\n if ( Any.isEmpty(value) ) {\n return this.min;\n }\n\n return Num.float(value);\n },\n\n getDisplayValue()\n {\n\n if ( Any.isEmpty(this.modelValue) ) {\n return null;\n }\n\n let value = Num.format(this.tempValue,\n this.decimals, ' ', this.precision);\n\n return Locale.trans(this.format, { count: value });\n },\n\n nextStep()\n {\n if ( isNaN(this.tempValue) ) {\n this.tempValue = 0;\n }\n\n let value = this.tempValue + this.stepSize;\n\n if ( this.max < value ) {\n return;\n }\n\n value = Num.float(value).toFixed(this.precision);\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n },\n\n onNextDown()\n {\n this.nextStep();\n\n this.nextTimeout = setTimeout(() => {\n this.nextInterval = setInterval(this.nextStep, 100);\n }, 400);\n\n Dom.find(document).on('mouseup', this.onNextUp,\n this._.uid);\n },\n\n onNextUp()\n {\n clearTimeout(this.nextTimeout);\n clearInterval(this.nextInterval);\n\n Dom.find(document).off('mouseup', null,\n this._.uid);\n },\n\n prevStep()\n {\n if ( isNaN(this.tempValue) ) {\n this.tempValue = 0;\n }\n\n let value = this.tempValue - this.stepSize;\n\n if ( this.min > value ) {\n return;\n }\n\n value = Num.float(value).toFixed(this.precision);\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n },\n\n onPrevDown()\n {\n this.prevStep();\n\n this.prevTimeout = setTimeout(() => {\n this.prevInterval = setInterval(this.prevStep, 100);\n }, 400);\n\n Dom.find(document).on('mouseup', this.onPrevUp,\n this._.uid);\n },\n\n onPrevUp()\n {\n clearTimeout(this.prevTimeout);\n clearInterval(this.prevInterval);\n\n Dom.find(document).off('mouseup', null,\n this._.uid);\n },\n\n onKeydown(event)\n {\n if ( event.which === 13 ) {\n this.onInput(event);\n }\n },\n\n onFocus(event)\n {\n this.focus = true;\n },\n\n onBlur(event)\n {\n this.onInput(event);\n\n this.focus = false;\n },\n\n onInput(event)\n {\n let value = event.target.value;\n\n if ( value.match(/^[0-9]+((.|,)[0-9]+)?$/) ) {\n value = this.format.replace(':count', value);\n }\n\n let format = this.format.replace(':count',\n `([0-9\\\\,\\\\.\\\\-\\\\s]+)`);\n\n let regex = new RegExp(`^${format}$`);\n\n let match = value.match(regex);\n\n if ( !match ) {\n return event.target.value = this.getDisplayValue();\n }\n\n value = match[1].replace(',', '.')\n .replace(/\\s/, '');\n\n value = Num.float(value).toFixed(this.precision);\n\n if ( value < this.min ) {\n value = this.min;\n }\n\n if ( value > this.max ) {\n value = this.max;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n\n event.target.value = this.getDisplayValue();\n }\n\n },\n\n renderPrev()\n {\n let disabled = this.deepDisabled ||\n this.tempValue <= this.min;\n\n let props = {\n type: 'input-number',\n size: this.size,\n icon: 'fa fa-minus',\n square: true,\n disabled: disabled,\n onMousedown: this.onPrevDown,\n };\n\n return (<NButton {...props} />);\n },\n\n renderNext()\n {\n let disabled = this.deepDisabled ||\n this.tempValue >= this.max;\n\n let props = {\n type: 'input-number',\n size: this.size,\n icon: 'fa fa-plus',\n square: true,\n disabled: disabled,\n onMousedown: this.onNextDown,\n };\n\n return (<NButton {...props} />);\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs,\n ['class', 'style']);\n\n Obj.assign(props, {\n value: this.getDisplayValue(),\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onKeydown: this.onKeydown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n });\n\n return h('input', props);\n },\n\n renderClear()\n {\n if ( !this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-input-number__clear\" {...props}>\n <i class={nano.Icons.times}></i>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-input-number',\n 'n-input-number--' + this.type,\n 'n-input-number--' + this.size,\n ];\n\n if ( Any.isEmpty(this.modelValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n {this.ctor('renderPrev')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderClear')()}\n {this.ctor('renderNext')()}\n </div>\n );\n }\n\n}","import { h } from \"vue\";\nimport {Obj, Any, UUID} from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTextarea',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n autoRows: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n maxRows: {\n default()\n {\n return 12;\n },\n type: [Number]\n },\n\n minRows: {\n default()\n {\n return 4;\n },\n type: [Number]\n },\n\n maxLength: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n eventInput(event)\n {\n this.$emit('update:modelValue', \n this.tempValue = event.target.value);\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue || ''\n };\n },\n\n renderInput()\n {\n let props = Obj.except(this.$attrs, ['class', 'style']);\n\n Obj.assign(props, {\n value: this.tempValue,\n rows: this.minRows,\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.eventInput,\n });\n\n if ( this.maxLength !== 0 ) {\n props.maxLength = this.maxLength;\n }\n\n let currentRows = (this.tempValue.match(/\\n/g) || []).length + 1;\n\n if ( this.autoRows && props.rows < currentRows ) {\n props.rows = currentRows <= this.maxRows ? currentRows : this.maxRows;\n }\n\n return h('textarea', props);\n },\n\n render()\n {\n let classList = [\n 'n-textarea',\n 'n-textarea--' + this.size,\n 'n-textarea--' + this.type,\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.only(this.$attrs, ['style'], {\n class: this.cmer(classList)\n });\n\n return h('div', props, [this.ctor('renderInput')()]);\n }\n\n}\n","import { Str, Arr, Obj, Any, Locale, Dom, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelect',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n },\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n lazy: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-center';\n },\n type: [String]\n },\n\n multiple: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n collapse: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Please select');\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return 'No items';\n },\n type: [String]\n },\n\n undefinedText: {\n default()\n {\n return 'Undefined item';\n },\n type: [String]\n },\n\n collapseText: {\n default()\n {\n return '+:count item|+:count items';\n },\n type: [String]\n },\n\n allowCreate: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array, Object]\n },\n\n optionsValue: {\n default()\n {\n return '$index';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsDisabled: {\n default()\n {\n return 'null';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n deepDisabled()\n {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n },\n\n empty()\n {\n return Any.isEmpty(this.tempValue);\n },\n\n custom()\n {\n let result = Arr.filter(this.elements, (element) => {\n\n if ( Any.isArray(this.tempValue) ) {\n return Arr.has(this.tempValue, element.value);\n }\n\n return element.value === this.tempValue;\n });\n\n return result.length === 0;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempClear: this.clearValue,\n focus: false,\n search: '',\n index: - 1,\n elements: [],\n searched: []\n };\n },\n\n\n beforeMount()\n {\n if ( this.lazy ) {\n this.generateOptions();\n }\n\n if ( this.multiple && !Any.isArray(this.tempValue) ) {\n this.tempValue = [];\n }\n\n if ( this.multiple && !Any.isArray(this.clearValue) ) {\n this.tempClear = [];\n }\n\n this.searchOptions();\n },\n\n provide()\n {\n return {\n NSelect: this\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( !this.multiple && Any.isArray(value) ) {\n value = null;\n }\n\n if ( this.multiple && !Any.isArray(value) ) {\n value = [];\n }\n\n this.tempValue = value;\n },\n\n search()\n {\n this.searchOptions();\n },\n\n focus()\n {\n this.$nextTick(this.scrollToClosest);\n },\n\n },\n\n methods: {\n\n clear(event = null)\n {\n if ( event ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.focusInput();\n\n this.$emit('update:modelValue',\n this.tempValue = Arr.clone(this.tempClear));\n },\n\n generateOptions()\n {\n this.elements = Arr.each(this.options, (value, index) => {\n\n let data = {\n $value: value, $index: index\n };\n\n let option = {\n label: Obj.get(data, this.optionsLabel),\n value: Obj.get(data, this.optionsValue)\n };\n\n return Obj.assign(option, {\n tempLabel: option.label, tempValue: option.value\n });\n });\n },\n\n addOption(option)\n {\n Arr.add(this.elements, option,\n { tempValue: option.tempValue });\n },\n\n removeOption(option)\n {\n Arr.remove(this.elements,\n { tempValue: option.tempValue });\n },\n\n resetInput()\n {\n this.index = - 1;\n this.search = '';\n },\n\n focusInput(event = null)\n {\n if ( event ) {\n event.preventDefault();\n }\n\n this.$refs.input.focus();\n },\n\n onFocusInput()\n {\n if ( !this.focus ) {\n this.$refs.popover.open();\n }\n\n clearInterval(this.refresh);\n },\n\n onInputInput(event)\n {\n this.search = event.target.value;\n },\n\n onKeydownInput(event)\n {\n if ( !this.focus ) {\n return this.onFocusInput();\n }\n\n if ( event.which === 13 ) {\n this.createOrToggle();\n }\n\n if ( event.which === 38 ) {\n this.selectPrev();\n }\n\n if ( event.which === 40 ) {\n this.selectNext();\n }\n },\n\n searchOptions()\n {\n this.index = - 1;\n\n if ( Any.isEmpty(this.search) ) {\n return this.searched = this.elements;\n }\n\n let searchRegex = new RegExp(this.search, 'i');\n\n let searched = Arr.filter(this.elements, (option) => {\n return Any.isString(option.label) && option.label.match(searchRegex);\n });\n\n this.searched = searched;\n },\n\n toggleOption(value, event = null)\n {\n if ( Any.isEmpty(value) ) {\n return;\n }\n\n if ( event && event.which !== 1 ) {\n return;\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n let tempValue = this.tempValue;\n\n if ( this.multiple ) {\n this.focusInput();\n }\n\n if ( !this.multiple ) {\n tempValue = value;\n }\n\n if ( this.multiple ) {\n Arr.toggle(tempValue, value);\n }\n\n this.$refs.popover.close();\n\n let denyUpdate = this.tempValue === tempValue;\n\n if ( this.multiple && !Any.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( !this.multiple && Any.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( denyUpdate ) {\n return;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = tempValue);\n },\n\n getOptionLabel(value)\n {\n let option = Arr.find(this.elements,\n { tempValue: value });\n\n if ( !option && this.allowCreate ) {\n return value;\n }\n\n if ( !option && !this.allowCreate ) {\n return this.trans(this.undefinedText);\n }\n\n return option.tempLabel;\n },\n\n selectPrev()\n {\n let newIndex = this.index - 1;\n\n if ( newIndex < 0 ) {\n newIndex = this.searched.length - 1;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n selectNext()\n {\n let newIndex = this.index + 1;\n\n if ( newIndex > this.searched.length - 1 ) {\n newIndex = 0;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n createOrToggle()\n {\n if ( this.allowCreate && this.search ) {\n return this.createOption();\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( this.searched.length === 1 ) {\n selected = Arr.first(this.searched);\n }\n\n if ( !selected || selected.disabled ) {\n return;\n }\n\n this.toggleOption(selected.tempValue);\n },\n\n createOption()\n {\n this.toggleOption(this.search);\n\n this.search = '';\n },\n\n scrollToCurrent()\n {\n if ( !this.focus ) {\n return;\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( !selected ) {\n return;\n }\n\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollIntoView(`[data-option=\"${selected._.uid}\"]`);\n }\n\n if ( this.$refs.virtualbar ) {\n this.$refs.virtualbar.scrollToIndex(this.index);\n }\n },\n\n scrollToClosest()\n {\n if ( !this.focus ) {\n return;\n }\n\n let value = this.tempValue;\n\n if ( Any.isArray(this.tempValue) ) {\n value = Arr.first(this.tempValue);\n }\n\n if ( !value ) {\n return;\n }\n\n let index = Arr.findIndex(this.elements, {\n tempValue: value\n });\n\n if ( !index ) {\n return;\n }\n\n if ( this.$refs.virtualbar ) {\n this.$refs.virtualbar.scrollToIndex(index, 250);\n }\n\n let select = `[data-option=\"${Obj.get(this.elements[index], '_.uid', 0)}\"]`;\n\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollIntoView(select, 250);\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( !this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-select__clear\" {...props}>\n <i class={nano.Icons.times}></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-select__angle\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n },\n\n renderLabelItem(value)\n {\n let classList = [\n 'n-select__item'\n ];\n\n let props = {\n class: nano.Icons.times,\n };\n\n if ( !this.deepDisabled ) {\n props.onMousedown = (event) => this.toggleOption(value, event);\n }\n\n let labelHtml = (\n <span>{this.getOptionLabel(value)}</span>\n );\n\n return (\n <div class={classList}>\n {[labelHtml, <i {...props}></i>]}\n </div>\n );\n },\n\n renderLabelCollapse()\n {\n let first = Arr.first(this.tempValue);\n\n if ( !first ) {\n return null;\n }\n\n let firstHtml = this.ctor('renderLabelItem')(first);\n\n if ( this.tempValue.length === 1 ) {\n return firstHtml;\n }\n\n let count = this.tempValue.length - 1;\n\n let collapseHtml = (\n <div class=\"n-select__item\">\n <span>{this.choice(this.collapseText, count)}</span>\n </div>\n );\n\n return [\n firstHtml, collapseHtml\n ];\n },\n\n renderLabelItems()\n {\n if ( !Any.isArray(this.tempValue) ) {\n return null;\n }\n\n if ( this.collapse ) {\n return this.ctor('renderLabelCollapse')();\n }\n\n return Arr.each(this.tempValue, (value) => {\n return this.ctor('renderLabelItem')(value);\n });\n },\n\n renderMultiple()\n {\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.focus ) {\n props.value = null;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = null;\n }\n\n let inputHtml = (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n );\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__items\">\n {[this.ctor('renderLabelItems')(), inputHtml]}\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderSingle()\n {\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n let modelLabel = this.getOptionLabel(\n this.tempValue);\n\n if ( isEmptyValue ) {\n modelLabel = null;\n }\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.search && this.custom ) {\n props.value = this.tempValue;\n }\n\n if ( !this.focus ) {\n props.value = modelLabel;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = modelLabel;\n }\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-select__display'\n ];\n\n if ( this.multiple ) {\n classList.push('n-multiple');\n }\n\n let displayHtml = this.ctor('renderSingle');\n\n if ( this.multiple ) {\n displayHtml = this.ctor('renderMultiple');\n }\n\n return (\n <div class={classList}>{displayHtml()}</div>\n );\n },\n\n renderItems()\n {\n let emptyHtml = (\n <div class=\"n-select__empty\">\n <NEmptyIcon inline={true}>{this.trans(this.emptyText)}</NEmptyIcon>\n </div>\n );\n\n if ( !this.searched.length ) {\n return emptyHtml;\n }\n\n if ( this.lazy ) {\n return this.ctor('renderLazyItems')();\n }\n\n let options = Obj.each(this.searched, (option, index) => {\n return option.ctor('renderOption')(index);\n });\n\n let props = {\n relative: true, size: this.size\n }\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-select__body\" {...props}>\n {Obj.values(options)}\n </NScrollbar>\n );\n },\n\n renderLazyOption(value, index)\n {\n let classList = [];\n\n let isMultipleActive = this.multiple &&\n Arr.has(this.tempValue, value.value);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.multiple &&\n this.tempValue === value.value;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.index === Num.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'type': this.type,\n 'clickClose': ! this.multiple,\n };\n\n props['onMousedown'] = (e) => {\n this.toggleOption(value.value, e);\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n {value.label}\n </NPopoverOption>\n );\n },\n\n renderLazyItems()\n {\n let props = {\n items: this.searched\n };\n\n props.renderNode = ({ value, index }) => {\n return this.ctor('renderLazyOption')(value, index);\n };\n\n return (\n <NVirtualscroller ref=\"virtualbar\" class=\"n-select__body n-virtual\" {...props} />\n );\n },\n\n renderPopover()\n {\n let classList = [\n 'n-popover--select'\n ];\n\n if ( this.lazy ) {\n classList.push('n-virtual');\n }\n\n let props = {\n class: classList,\n trigger: 'click',\n width: - 1,\n listen: true,\n size: this.size,\n scrollClose: true,\n disabled: this.deepDisabled,\n onClose: this.resetInput\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n {{ raw: this.ctor('renderItems') }}\n </NPopover>\n );\n },\n\n renderOptions()\n {\n if ( this.lazy ) {\n return null;\n }\n\n if ( Any.isEmpty(this.options) ) {\n return this.$slots.default && this.$slots.default();\n }\n\n let optionRender = ($value, $index) => {\n\n let props = {\n label: Obj.get({ $value, $index }, this.optionsLabel, null),\n value: Obj.get({ $value, $index }, this.optionsValue, null),\n };\n\n return (<NSelectOption {...props}></NSelectOption>);\n };\n\n return Obj.values(Obj.each(this.options, optionRender));\n },\n\n render()\n {\n let classList = [\n 'n-select',\n 'n-select--' + this.type,\n 'n-select--' + this.size,\n ];\n\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n if ( isEmptyValue ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList} onClick={this.focusInput}>\n {this.ctor('renderDisplay')()}\n {this.ctor('renderPopover')()}\n {this.ctor('renderOptions')()}\n </div>\n );\n }\n\n}\n","import { Num, Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelectOption',\n\n inheritAttrs: false,\n\n inject: {\n\n NSelect: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return '';\n }\n },\n\n label: {\n default()\n {\n return null;\n }\n },\n\n valueProp: {\n default()\n {\n return null;\n }\n },\n\n labelProp: {\n default()\n {\n return null;\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n tempValue()\n {\n if ( Any.isEmpty(this.valueProp) ) {\n return this.value;\n }\n\n return Obj.get(this.value, this.valueProp);\n },\n\n tempLabel()\n {\n if ( Any.isEmpty(this.labelProp) ) {\n return this.label;\n }\n\n return Obj.get(this.value, this.labelProp);\n }\n\n },\n\n mounted()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.addOption(this);\n }\n },\n\n beforeUnmount()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.removeOption(this);\n }\n },\n\n methods: {\n\n toggleItem(event) \n {\n event.preventDefault();\n\n if ( event.which !== 1 ) {\n return;\n }\n\n if ( this.disabled ) {\n return;\n }\n\n this.NSelect.toggleOption(this.tempValue, \n event);\n },\n\n },\n\n renderOption(index)\n {\n\n let classList = [];\n\n let isMultipleActive = this.NSelect.multiple && \n Arr.has(this.NSelect.tempValue, this.tempValue);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.NSelect.multiple && \n this.NSelect.tempValue === this.tempValue;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.NSelect.index === Num.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'disabled': this.disabled,\n 'onMousedown': this.toggleItem,\n 'type': this.NSelect.type,\n 'clickClose': ! this.NSelect.multiple,\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n // Required for scrolldown\n props['data-option'] = this._.uid;\n\n return (\n <NPopoverOption class={classList} {...props}>\n { this.$slots.default && this.$slots.default() || this.tempLabel }\n </NPopoverOption>\n );\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Arr, Obj, Any, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckbox',\n\n inject: {\n\n NCheckboxGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n value: {\n default()\n {\n return null;\n }\n },\n\n allowUncheck: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n intermediate: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n global: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n tempComputed()\n {\n return ! this.global ? this.tempChecked :\n this.NCheckboxGroup.globalChecked;\n },\n\n tempIntermediate()\n {\n return ! this.global ? this.intermediate :\n this.NCheckboxGroup.globalIntermediate;\n },\n\n tempDisabled()\n {\n return ! this.global ? this.disabled :\n this.NCheckboxGroup.globalDisabled;\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(), tempChecked: this.modelValue\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempChecked ) {\n this.tempChecked = value;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NCheckboxGroup ) {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( ! this.NCheckboxGroup || this.global ) {\n return;\n }\n\n this.$watch('NCheckboxGroup.tempValue', () => {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n });\n\n this.NCheckboxGroup.addCheckbox(this);\n },\n\n beforeUnmount()\n {\n if ( this.NCheckboxGroup && ! this.global ) {\n this.NCheckboxGroup.removeCheckbox(this);\n }\n },\n\n methods: {\n\n toggle()\n {\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n check()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.checkCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n uncheck()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.uncheckCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = false);\n },\n\n eventShiftClick()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.shiftCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n eventLocalClick(event)\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n event.preventDefault();\n\n if ( event.shiftKey ) {\n return this.eventShiftClick();\n }\n \n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.toggleCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n eventGlobalClick()\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n this.NCheckboxGroup.toggleAll();\n },\n\n updateFromGroup()\n {\n let checked = this.NCheckboxGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderCheckbox()\n {\n let interHtml = this.$slots.intermediate &&\n this.$slots.intermediate();\n\n if ( ! interHtml ) {\n interHtml = (<i class={nano.Icons.intermediate}></i>);\n }\n\n let checkHtml = this.$slots.checked &&\n this.$slots.checked();\n\n if ( ! checkHtml ) {\n checkHtml = (<i class={nano.Icons.checked}></i>);\n }\n\n return (\n <div class=\"n-checkbox__checkbox\">\n { this.tempIntermediate ? interHtml : checkHtml }\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.cslo('default') && ! this.cslo('label') ) {\n return null;\n }\n\n return (\n <div class=\"n-checkbox__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NCheckboxGroup ) {\n size = this.NCheckboxGroup.size;\n }\n\n let classList = [\n 'n-checkbox',\n 'n-checkbox--' + size,\n 'n-checkbox--' + this.type,\n ];\n\n if ( this.allowUncheck ) {\n classList.push('n-uncheck');\n }\n\n if ( this.tempComputed ) {\n classList.push('n-checked');\n }\n\n if ( this.tempIntermediate ) {\n classList.push('n-intermediate');\n }\n\n if ( this.tempDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.tempComputed && this.allowUncheck ) {\n Arr.remove(classList, 'n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( this.global ) {\n props.onMousedown = this.eventGlobalClick;\n }\n\n if ( ! this.global ) {\n props.onMousedown = this.eventLocalClick;\n }\n\n return (\n <div class={classList} {...props}>\n { [this.ctor('renderCheckbox')(), this.ctor('renderLabel')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckboxGroup',\n\n provide()\n {\n return {\n NCheckboxGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n globalChecked()\n {\n let checked = Arr.filter(this.elements, (checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length === this.elements.length &&\n this.elements.length !== 0;\n },\n\n globalIntermediate()\n {\n let checked = this.elements.filter((checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length !== this.elements.length &&\n checked.length !== 0 ;\n },\n\n globalDisabled()\n {\n return this.elements.length === 0;\n },\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n index: -1,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.tempValue = this.modelValue ) {\n this.tempValue = this.modelValue;\n }\n \n },\n\n },\n\n methods: {\n\n addCheckbox(checkbox)\n {\n this.index = -1;\n\n Arr.add(this.elements, checkbox, {\n uid: checkbox.uid\n });\n\n this.elements = Arr.sort(this.elements, 'sort');\n },\n\n removeCheckbox(checkbox)\n {\n this.index = -1;\n \n Arr.remove(this.elements, {\n uid: checkbox.uid\n });\n },\n\n toggleCheckbox(checkbox, emit = true)\n {\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n if ( ! checkbox.tempChecked ) {\n this.index = index;\n }\n\n Arr.toggle(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n checkCheckbox(checkbox, emit = true)\n {\n Arr.add(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckCheckbox(checkbox, emit = true)\n {\n Arr.remove(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n shiftCheckbox(checkbox)\n {\n if ( this.index === -1 ) {\n return this.toggleCheckbox(checkbox, false);\n }\n\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n let checkboxes = this.elements.slice(this.index, index + 1);\n\n if ( index < this.index ) {\n checkboxes = this.elements.slice(index, this.index + 1);\n }\n\n this.index = -1;\n\n Arr.each(checkboxes, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(checkboxes, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n toggleAll()\n {\n this.globalChecked ? this.uncheckAll() : this.checkAll();\n },\n\n checkAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.uncheckCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return Arr.has(this.tempValue, value);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-checkbox-group',\n 'n-checkbox-group--' + this.size,\n 'n-checkbox-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n {this.$slots.default()}\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadio',\n\n model: {\n prop: 'checked'\n },\n\n inject: {\n\n NRadioGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return null;\n }\n },\n\n checked: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n uid()\n {\n return this._.uid;\n }\n\n },\n\n data()\n {\n return {\n tempChecked: this.checked\n };\n },\n\n watch: {\n\n checked()\n {\n if ( this.checked !== this.tempChecked ) {\n this.tempChecked = this.checked;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NRadioGroup ) {\n this.tempChecked = this.NRadioGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.addRadio(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.removeRadio(this);\n }\n },\n\n methods: {\n\n check()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.checkRadio(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n updateFromGroup()\n {\n let checked = this.NRadioGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderRadio()\n {\n return (\n <div class=\"n-radio__radio\">\n <span></span>\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default && ! this.$slots.label ) {\n return null;\n }\n\n return (\n <div class=\"n-radio__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-radio',\n 'n-radio--' + this.size,\n 'n-radio--' + this.type,\n ];\n\n if ( this.tempChecked ) {\n classList.push('n-checked');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onMousedown = this.check;\n }\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderRadio')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadioGroup',\n\n provide()\n {\n return {\n NRadioGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n },\n\n },\n\n methods: {\n\n addRadio(radio)\n {\n Arr.add(this.elements, radio, {\n uid: radio.uid\n });\n },\n\n removeRadio(radio)\n {\n Arr.remove(this.elements, {\n uid: radio.uid\n });\n },\n\n checkRadio(radio)\n {\n this.tempValue = radio.value;\n \n Arr.each(this.elements, (radio) => {\n radio.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return this.tempValue === value;\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-radio-group',\n 'n-radio-group--' + this.size,\n 'n-radio-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Obj, Arr, Any, Num, Dom, Event } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSlider',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n steps: {\n default()\n {\n return 1;\n }\n },\n\n labels: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n index: 0, width: null, tempValue: [null, null]\n };\n },\n\n computed: {\n\n selector()\n {\n return `[data-index=\"${this.index}\"]`;\n },\n\n fixmin()\n {\n return Any.isArray(this.steps) ? Arr.first(this.steps) : this.min;\n },\n\n fixmax()\n {\n return Any.isArray(this.steps) ? Arr.last(this.steps) : this.max;\n },\n\n minmax()\n {\n return this.fixmax - this.fixmin;\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n },\n\n watch: {\n\n modelValue()\n {\n this.getPseudoValue();\n }\n\n },\n\n mounted()\n {\n Dom.find(window).on('resize',\n Any.debounce(this.onResize, 500), this._.uid);\n\n this.onResize();\n this.getPseudoValue();\n },\n\n unmounted()\n {\n Dom.find(window).off('resize',\n null, this._.uid);\n },\n\n methods: {\n\n onResize()\n {\n this.width = Dom.find(this.$el).width();\n },\n\n getPseudoValue()\n {\n let value = this.modelValue;\n\n if ( Any.isNull(value) ) {\n value = this.fixmax;\n }\n if ( ! Any.isArray(value) ) {\n value = [this.fixmin, value];\n }\n\n return this.tempValue = value;\n },\n\n setModelValue()\n {\n let value = this.tempValue;\n\n if ( ! this.range ) {\n value = this.tempValue[1];\n }\n\n this.$emit('update:modelValue', value);\n },\n\n getValPos(value)\n {\n return Num.fixed(this.width / this.minmax * (value - this.fixmin), 2) + 'px';\n },\n\n getValStyle(value)\n {\n return 'transform: translateX(' + this.getValPos(value) + ');';\n },\n\n getBarPos()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[0] - this.fixmin), 2) + 'px';\n },\n\n getBarWidth()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[1] - this.tempValue[0]), 2) + 'px';\n },\n\n getBarStyle()\n {\n return 'max-width: ' + this.getBarWidth() + '; ' +\n 'transform: translateX(' + this.getBarPos() + ');';\n },\n\n getClosestValue(width)\n {\n if ( Any.isNumber(this.steps) ) {\n return Num.round(width / this.steps) * this.steps;\n }\n\n let range = Arr.last(this.steps) -\n Arr.first(this.steps);\n\n let diff = Arr.each(this.steps, (step) => {\n return Math.abs((range / 100 * width) - step + this.fixmin);\n });\n\n let index = Arr.findIndex(diff, Math.min(...diff));\n\n return this.steps[index];\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onMousedown(event)\n {\n if ( this.disabled ) {\n return;\n }\n\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(this.$el).find(this.selector).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onMousemove, 60), this._.uid);\n },\n\n onMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let relativeWidth = (this.clientX - offsetX) / this.width * 100;\n\n let closestValue = this.getClosestValue(relativeWidth);\n\n if ( closestValue < this.fixmin ) {\n closestValue = this.fixmin;\n }\n\n if ( closestValue > this.fixmax ) {\n closestValue = this.fixmax;\n }\n\n let stepMin = this.tempValue[0] + this.steps;\n\n if ( this.index === 1 && closestValue < stepMin ) {\n closestValue = stepMin;\n }\n\n let stepMax = this.tempValue[1] - this.steps;\n\n if ( this.index === 0 && closestValue > stepMax ) {\n closestValue = stepMax;\n }\n\n this.tempValue[this.index] = closestValue;\n },\n\n onMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n Dom.find(this.$el).find(this.selector).removeClass('n-move');\n Dom.find(document.body).removeClass('n-move');\n\n this.setModelValue();\n },\n\n },\n\n renderHandle(value, index)\n {\n let handleProps = {\n 'data-value': value,\n 'data-index': index,\n style: this.getValStyle(value)\n };\n\n handleProps['onMousedown'] = (event) => {\n this.onMousedown(event, this.index = index);\n };\n\n let key = Arr.findIndex(this.steps, value);\n\n return (\n <div class=\"n-slider__handle\" {...handleProps}>\n <span>{ Obj.get(this.labels, key, value) }</span>\n </div>\n );\n },\n\n renderHandles()\n {\n let values = Arr.clone(this.tempValue);\n\n if ( ! this.range ) {\n delete values[0];\n }\n\n return Arr.each(values, (value, index) => {\n return this.ctor('renderHandle')(value, index);\n });\n },\n\n renderBar()\n {\n let barProps = {\n style: this.getBarStyle()\n };\n\n return (\n <div class=\"n-slider__bar\">\n <div class=\"n-slider__range\" {...barProps}></div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-slider',\n 'n-slider--' + this.type,\n 'n-slider--' + this.size\n ];\n\n if ( this.range ) {\n classList.push('n-range');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderBar')() }\n { this.ctor('renderHandles')() }\n </div>\n );\n }\n\n}\n","import { Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSwitch',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n }\n },\n\n onValue: {\n default()\n {\n return true;\n }\n },\n\n offValue: {\n default()\n {\n return false;\n }\n },\n\n onType: {\n default()\n {\n return 'primary';\n }\n },\n\n offType: {\n default()\n {\n return 'default';\n }\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n eventClick()\n {\n let tempValue = this.onValue;\n\n if ( this.tempValue === this.onValue ) {\n tempValue = this.offValue;\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n }\n\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n }\n\n },\n\n renderSwitch()\n {\n let classList = [\n 'n-switch__switch'\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n <span></span>\n </div>\n )\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default ) {\n return null;\n }\n\n let classList = [\n 'n-switch__label',\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n { this.$slots.default() }\n </div>\n )\n },\n\n render()\n {\n let classList = [\n 'n-switch',\n 'n-switch--' + this.size\n ];\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-switch--' + this.onType);\n }\n\n if ( this.tempValue === this.offValue) {\n classList.push('n-switch--' + this.offType);\n }\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-on');\n }\n\n if ( this.tempValue === this.offValue ) {\n classList.push('n-off');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderSwitch')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Obj, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NConfirm',\n\n props: {\n\n visible: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n width: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'center-center';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n confirmText: {\n default()\n {\n return Locale.trans('Confirm');\n },\n type: [String]\n },\n\n abortText: {\n default()\n {\n return Locale.trans('Abort');\n },\n type: [String]\n },\n\n buttonSize: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n },\n\n watch: {\n\n visible()\n {\n if ( this.visible !== this.tempVisible ) {\n this.tempVisible = this.visible;\n }\n }\n\n },\n\n data()\n {\n return {\n tempVisible: this.visible\n };\n },\n\n methods: {\n\n abort(event)\n {\n this.$refs.modal.closeModal(true, 'self');\n this.$emit('abort');\n },\n\n confirm(event)\n {\n this.$refs.modal.closeModal(true, 'self');\n this.$emit('confirm');\n },\n\n eventInput(value, source)\n {\n if ( ! value && source !== 'self' ) {\n this.$emit('abort');\n }\n\n this.$emit('update:visible', this.tempVisible = value);\n }\n\n },\n\n renderIcon()\n {\n return (\n <div class=\"n-confirm__icon\">\n <span class={nano.Icons[this.type]}></span>\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-confirm__body\">\n { this.$slots.default && this.$slots.default() || this.trans('Are you sure?') }\n </div>\n );\n },\n\n renderAction()\n {\n let classList = [\n 'n-confirm__action'\n ];\n\n if ( window.WIN ) {\n classList.push('n-reverse');\n }\n\n return (\n <div class={classList}>\n <NButton size={this.buttonSize} type={this.type} link={true} onClick={this.abort}>\n { this.abortText }\n </NButton>\n <NButton size={this.buttonSize} type={this.type} link={false} onClick={this.confirm}>\n { this.confirmText }\n </NButton>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-confirm',\n 'n-confirm--' + this.type,\n 'n-confirm--' + this.size\n ];\n\n let props = {\n type: 'default',\n selector: this.selector,\n listen: this.listen,\n update: this.update,\n width: this.width,\n position: this.position,\n closable: this.closable,\n modelValue: this.tempVisible,\n };\n\n // Override input listener\n props['onUpdate:modelValue'] = this.eventInput;\n\n let innerHtml = {\n raw: () => (\n <div class={classList}>\n { this.ctor('renderIcon')() }\n { this.ctor('renderBody')() }\n { this.ctor('renderAction')() }\n </div>\n )\n };\n\n return (\n <NModal ref=\"modal\" {...props}>\n { innerHtml }\n </NModal>\n );\n }\n\n}\n","import { Arr, Obj, Any, Str } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascaderPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n hover: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n valueProp: {\n default()\n {\n return 'value';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n disabledProp: {\n default()\n {\n return 'disabled';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempHover: this.hover,\n };\n },\n\n watch: {\n\n modelValue(value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n hover(value) {\n if ( value !== this.tempHover ) {\n this.tempHover = value;\n }\n }\n\n },\n\n methods: {\n\n clearCascader()\n {\n this.$emit('update:modelValue', this.tempHover = \n this.tempValue = this.clearValue);\n },\n\n onHover(cascade)\n {\n return (event) => this.hoverItem(cascade, event)\n },\n\n onSelect(cascade)\n {\n return (event) => this.selectItem(cascade, event)\n },\n\n hoverItem(cascade, event = null)\n {\n // Hover intend emulation\n clearTimeout(this.delay);\n\n let updateHover = () => {\n this.$emit('update:hover', \n this.tempHover = cascade);\n };\n\n this.delay = setTimeout(updateHover, 130);\n },\n\n selectItem(cascade, event = null)\n {\n clearTimeout(this.clickTimer);\n\n if ( ! this.lastclick ) {\n this.lastclick = 0;\n }\n\n this.lastclick++;\n\n let trigger = this.touch ? 'click' : \n this.trigger ;\n \n this.clickTimer = setTimeout(() => \n this.lastclick = 0, 240);\n\n this.hoverTimer = setTimeout(() => \n this.hoverItem(cascade), 240);\n\n if ( this.lastclick === 1 && trigger === 'click' ) {\n return this.hoverItem(cascade, event);\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n this.clickTimer = setTimeout(() => \n this.fireSelectItem(cascade), 50);\n },\n\n fireSelectItem(cascade)\n {\n clearTimeout(this.hoverTimer);\n\n this.lastclick = 0;\n\n this.$emit('update:modelValue', \n this.tempValue = cascade);\n }\n\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabel')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n )\n },\n\n renderOption(item, cascade = [])\n {\n let value = Obj.get(item, this.valueProp);\n\n let classList = [\n 'n-popover-option'\n ];\n\n if ( Arr.has(this.tempValue, item[this.valueProp]) ) {\n classList.push('n-active');\n }\n\n let disabled = Obj.get(item, this.disabledProp, false);\n\n if ( disabled ) {\n classList.push('n-disabled');\n }\n\n let props = {\n size: this.size,\n type: this.type,\n clickClose: false\n };\n\n if ( Arr.last(this.tempValue) === value ) {\n props.icon = nano.Icons.checked;\n }\n\n let tempCascade = Arr.merge(Arr.clone(cascade), [value]);\n\n if ( this.trigger === 'hover' ) {\n props.onMousemove = Any.framerate(this.onHover(tempCascade), 30);\n }\n\n if ( ! disabled ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onSelect(tempCascade);\n }\n\n let children = Obj.get(item, this.childProp);\n\n if ( ! props.icon && ! Any.isEmpty(children) ) {\n props.icon = nano.Icons.angleRight;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n { Obj.get(item, this.labelProp) }\n </NPopoverOption>\n );\n },\n\n renderOptions(items, cascade = [])\n {\n if ( Any.isEmpty(items) ) {\n return null;\n }\n\n return (\n <div class=\"n-cascader-panel__items\">\n <NScrollbar relative={true}>\n {\n Arr.each(items, (item) => {\n return this.ctor('renderOption')(item, cascade);\n })\n }\n </NScrollbar>\n </div>\n )\n },\n\n renderCascade()\n {\n let renderList = [\n this.ctor('renderOptions')(this.options)\n ];\n\n let items = this.options, cascade = [];\n\n Arr.each(this.tempHover, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n cascade.push(value);\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let options = this.ctor('renderOptions')\n (items, cascade);\n\n renderList.push(options);\n });\n\n return renderList;\n },\n\n render()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>{ this.ctor('renderCascade')() }</div>\n );\n }\n\n}","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascader',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Please select';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n valueProp: {\n default()\n {\n return 'value';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n disabledProp: {\n default()\n {\n return 'disabled';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempHover: this.modelValue,\n focus: false,\n };\n },\n\n methods: {\n\n clearCascader()\n {\n this.focus = true;\n\n this.$emit('update:modelValue', \n this.tempValue = this.tempHover = this.clearValue);\n },\n\n onCascaderInput(value)\n {\n this.focus = false;\n\n this.$emit('update:modelValue', \n this.tempValue = value);\n },\n\n onCascaderHover(value)\n {\n this.$emit('update:hover', \n this.tempHover = value);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n },\n\n watch: {\n\n modelValue(value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearCascader;\n }\n\n return (\n <div class=\"n-cascader__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-cascader__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderLabelItems()\n {\n let items = this.options, renderList = [];\n\n if ( Any.isEmpty(this.tempValue) ) {\n return (\n <div class=\"n-cascader__placeholder\">\n { this.trans(this.placeholder) }\n </div>\n );\n }\n\n Arr.each(this.tempValue, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let itemLabel = (\n <div class=\"n-cascader__item\">\n <span>{ Obj.get(item, this.labelProp) }</span>\n </div>\n );\n\n renderList.push(itemLabel);\n });\n\n return (\n <div class=\"n-cascader__items\">\n { renderList }\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabelItems')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n let props = Obj.except(this.$props, ['modelValue'], {\n hover: this.tempHover,\n modelValue: this.tempValue,\n });\n\n props['onUpdate:hover'] = this.onCascaderHover;\n props['onUpdate:modelValue'] = this.onCascaderInput;\n\n return (\n <NCascaderPanel class=\"n-cascader__body\" {...props}></NCascaderPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled,\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderItems') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-cascader',\n 'n-cascader--' + this.type,\n 'n-cascader--' + this.size,\n ];\n\n if ( Any.isEmpty(this.tempValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Arr, Str, Now, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su',\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', \n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n yearsGrid()\n {\n return this.tempCache.getYears();\n },\n\n monthsGrid()\n {\n return this.tempCache.getMonths();\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n tempView: 'date',\n tempRanger: null,\n cacheArrive: null,\n cacheDepart: null,\n tempValue: Now.make(this.modelValue, this.format),\n tempCache: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive),\n tempDepart: Now.make(this.depart),\n }\n },\n\n methods: {\n\n gotoDate()\n {\n this.tempView = 'date';\n },\n\n gotoMonth()\n {\n this.tempView = 'month';\n },\n\n gotoYear()\n {\n this.tempView = 'year';\n },\n\n patchDate(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n if ( Any.isEmpty(this.modelValue) ) {\n now.resetTime();\n } else {\n now.applyTime(this.tempValue);\n }\n\n // Copy now to cache\n this.tempCache = now.clone();\n\n // Copy now to value\n this.tempValue = now.clone();\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n patchMonth(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoDate();\n },\n\n printRange(now)\n {\n this.tempRanger = now.clone();\n },\n\n patchYear(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoMonth();\n },\n\n patchRange(now)\n {\n if ( this.cacheArrive && ! this.cacheDepart ) {\n this.cacheDepart = now.clone();\n }\n\n if ( ! this.cacheArrive && ! this.cacheDepart ) {\n this.cacheArrive = now.clone();\n }\n\n if ( ! this.cacheArrive || ! this.cacheDepart ) {\n return;\n }\n\n this.tempArrive = this.cacheArrive.clone();\n this.tempDepart = this.cacheDepart.clone();\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n\n this.cacheArrive = null;\n this.cacheDepart = null;\n\n this.$emit('rangeSelected', [\n this.tempArrive.format(this.format),\n this.tempDepart.format(this.format)\n ]);\n },\n\n },\n\n renderToolbarPrev(closure)\n {\n let props = {\n type: this.type,\n link: true,\n icon: nano.Icons.angleLeft,\n onClick: closure\n };\n\n return (<NButton {...props}></NButton>);\n },\n\n renderToolbarNext(closure)\n {\n let props = {\n type: this.type,\n link: true,\n icon: nano.Icons.angleRight,\n onClick: closure\n };\n\n return (<NButton {...props}></NButton>);\n },\n\n renderToolbarMonth()\n {\n let props = {\n onClick: this.gotoMonth\n };\n\n let monthsHtml = [\n this.months[this.tempCache.month()]\n ];\n\n let month = this.tempCache.clone()\n .addMonths(this.monthPanels - 1);\n\n if ( month.month() !== this.tempCache.month() ) {\n monthsHtml.push(this.months[month.month()]);\n }\n\n return (\n <span class=\"n-datepicker-panel__month\" {...props}>\n { monthsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbarYear()\n {\n let props = {\n onClick: this.gotoYear\n };\n\n let yearsHtml = [\n this.tempCache.year()\n ];\n\n let month = this.tempCache.clone()\n .addMonths(this.monthPanels - 1);\n\n if ( month.year() !== this.tempCache.year() ) {\n yearsHtml.push(month.year());\n }\n\n return (\n <span class=\"n-datepicker-panel__year\" {...props}>\n { yearsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbar({ prev, next })\n {\n return (\n <div class=\"n-datepicker-panel__toolbar\">\n <div class=\"n-datepicker-panel__display\">\n { this.ctor('renderToolbarMonth')() }\n { this.ctor('renderToolbarYear')() }\n </div>\n <div class=\"n-datepicker-panel__prev\">\n { this.ctor('renderToolbarPrev')(prev) }\n </div>\n <div class=\"n-datepicker-panel__next\">\n { this.ctor('renderToolbarNext')(next) }\n </div>\n </div>\n );\n },\n\n renderDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate() ) {\n classList.push('n-today');\n }\n\n let isSelected = this.tempValue.valid() && \n now.equalDate(this.tempValue);\n\n if ( isSelected ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchDate(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderRangeDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate('now') ) {\n classList.push('n-today');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let viewMode = 0;\n\n if ( !! this.cacheArrive ) {\n viewMode++;\n }\n\n if ( !! this.cacheDepart ) {\n viewMode++;\n }\n\n let isTempValid = this.tempArrive.valid() && \n this.tempDepart.valid();\n\n if ( viewMode === 0 && isTempValid ) {\n\n if ( now.between(this.tempArrive, this.tempDepart) ) {\n classList.push('n-between');\n classList.push('n-selected');\n }\n\n let arriveFirst = this.tempArrive.before(this.tempDepart);\n\n if ( now.equalDate(this.tempArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n classList.push('n-selected');\n }\n\n if ( now.equalDate(this.tempDepart) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n classList.push('n-selected');\n }\n\n }\n\n if ( viewMode === 1 && this.cacheArrive ) {\n\n if ( now.between(this.cacheArrive, this.tempRanger) ) {\n classList.push('n-between');\n }\n\n let arriveFirst = this.cacheArrive.before(this.tempRanger);\n\n if ( now.equalDate(this.cacheArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n }\n\n if ( now.equalDate(this.tempRanger) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n }\n\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {\n onMouseenter: () => this.printRange(now)\n };\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchRange(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderDate()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevMonth();\n };\n let next = () => {\n this.tempCache = this.tempCache.nextMonth();\n };\n\n let legendHtml = (\n Arr.each(this.weekdays, (day) => {\n return (\n <div class=\"n-datepicker-panel__day\">\n <span>{ this.trans(day) }</span>\n </div>\n );\n })\n );\n\n let renderItem = this.ctor('renderDateItem');\n\n if ( this.range ) {\n renderItem = this.ctor('renderRangeDateItem');\n }\n\n let bodyHtml = (month) => (\n Arr.each(Arr.chunk(month.getDatesGrid(), 7), (chunks) => {\n return (\n <div class=\"n-datepicker-panel__week\">\n { Arr.each(chunks, (chunk) => renderItem(chunk, month)) }\n </div>\n );\n })\n );\n\n let panelHtml = (\n Arr.each(Arr.make(this.monthPanels), (offset) => {\n\n let month = this.tempCache.clone()\n .addMonths(offset - 1);\n\n return (\n <div class=\"n-datepicker-panel__panel\">\n <div class=\"n-datepicker-panel__legend\">\n { legendHtml }\n </div>\n <div class=\"n-datepicker-panel__body\">\n { bodyHtml(month) }\n </div>\n </div>\n );\n })\n );\n\n return (\n <div class=\"n-datepicker-panel__dateview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__panels\">\n { panelHtml }\n </div>\n </div>\n );\n },\n\n renderMonthItem(now)\n {\n let classList = [\n 'n-datepicker-panel__month'\n ];\n\n if ( now.equal(this.tempCache, 'YYYYMM') ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === Now.make('now').month() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchMonth(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ this.trans(this.months[now.month()]) }</span>\n </div>\n )\n },\n\n renderMonth()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevYear();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextYear();\n };\n\n return (\n <div class=\"n-datepicker-panel__monthview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__year\">\n { Arr.each(this.monthsGrid, this.ctor('renderMonthItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n renderYearItem(now)\n {\n let classList = [\n 'n-datepicker-panel__year'\n ];\n\n if ( now.equal(this.tempCache, 'YYYY') ) {\n classList.push('n-selected');\n }\n\n if ( now.year() === Now.make('now').year() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchYear(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ now.year() }</span>\n </div>\n )\n },\n\n renderYear()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevDecade();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextDecade();\n };\n\n return (\n <div class=\"n-datepicker-panel__yearview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__decade\">\n { Arr.each(this.yearsGrid, this.ctor('renderYearItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-datepicker-panel',\n 'n-datepicker-panel--' + this.size,\n 'n-datepicker-panel--' + this.type\n ]\n\n return (\n <div class={classList}>\n { this.ctor('render' + Str.ucfirst(this.tempView))() }\n </div>\n );\n }\n\n}","import { Obj, Now, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select date');\n },\n type: [String]\n },\n\n placeholderArrive: {\n default()\n {\n return Locale.trans('Start date');\n },\n type: [String]\n },\n\n placeholderDepart: {\n default()\n {\n return Locale.trans('End date');\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n rangeSeparator: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive, this.format),\n tempDepart: Now.make(this.depart, this.format),\n };\n },\n\n methods: {\n\n clearDatepicker()\n {\n this.range ? this.clearRangeDatepicker() :\n this.clearSingleDatepicker();\n },\n\n clearSingleDatepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n\n clearRangeDatepicker()\n {\n this.tempArrive = Now.make(this.clearArrive, \n this.format);\n\n this.$emit('update:arrive', this.clearValue);\n\n this.tempDepart = Now.make(this.clearDepart, \n this.format);\n\n this.$emit('update:depart', this.clearDepart);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onArriveInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempArrive = Now.make(moment);\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n },\n\n onDepartInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempDepart = Now.make(moment);\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.focus = false;\n\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onDatepickerDepart(value)\n {\n this.focus = false;\n\n this.tempDepart = Now.make(value, \n this.format);\n\n this.$emit('update:depart', value);\n },\n\n onDatepickerArrive(value)\n {\n this.focus = false;\n\n this.tempArrive = Now.make(value, \n this.format);\n\n this.$emit('update:arrive', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempArrive.initialDate &&\n ! this.tempDepart.initialDate;\n\n if ( ! this.range ) {\n isEmpty = ! this.tempValue.initialDate;\n }\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDatepicker;\n }\n\n return (\n <div class=\"n-datepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-datepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderRange()\n {\n let arriveProps = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholderArrive,\n onInput: this.onArriveInput,\n };\n\n if ( this.tempArrive.valid() ) {\n arriveProps.value = this.tempArrive.format(\n this.displayFormat, true);\n }\n\n let departProps = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholderDepart,\n onInput: this.onDepartInput,\n };\n\n if ( this.tempDepart.valid() ) {\n departProps.value = this.tempDepart.format(\n this.displayFormat, true);\n }\n\n return [\n (\n <div class=\"n-datepicker__input\">\n <input {...arriveProps}/>\n </div>\n ),\n (\n <div class=\"n-datepicker__seperator\">\n <span>{ this.rangeSeparator }</span>\n </div>\n ),\n (\n <div class=\"n-datepicker__input\">\n <input {...departProps}/>\n </div>\n )\n ];\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-datepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-datepicker__display'\n ];\n\n if ( this.range ) {\n classList.push('n-range');\n }\n\n let displayHtml = this.ctor('renderSingle');\n\n if ( this.range ) {\n displayHtml = this.ctor('renderRange');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { displayHtml() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n \n let props = Obj.except(this.$props, ['modelValue'], {\n arrive: this.tempArrive.format(this.format) || null,\n depart: this.tempDepart.format(this.format) || null,\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:arrive'] = this.onDatepickerArrive;\n props['onUpdate:depart'] = this.onDatepickerDepart;\n props['onUpdate:modelValue'] = this.onDatepickerInput;\n\n return (\n <NDatepickerPanel class=\"n-datepicker__body\" {...props}></NDatepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderItems') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-datepicker',\n 'n-datepicker--' + this.type,\n 'n-datepicker--' + this.size,\n ];\n\n let isEmpty = ! this.tempArrive.initialDate &&\n ! this.tempDepart.initialDate;\n\n if ( ! this.range ) {\n isEmpty = ! this.tempValue.initialDate;\n }\n\n if ( isEmpty ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Arr, Obj, Now, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return 'HH:mm:ss';\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHours(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutes(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSeconds(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n let modelValue = Now.make(this.modelValue);\n\n if ( Any.isEmpty(this.modelValue) ) {\n modelValue = modelValue.resetTime();\n }\n\n return {\n tempValue: modelValue,\n }\n },\n\n mounted()\n {\n this.scrollTo();\n },\n\n methods: {\n\n eventSelect(now)\n {\n this.$emit('update:modelValue',\n (this.tempValue = now.clone()).format(this.format));\n },\n\n scrollTo()\n {\n let scrollbars = Obj.only(this.$refs, [\n 'hour', 'minute', 'second'\n ]);\n\n Arr.each(scrollbars, (ref, key) => {\n ref.scrollIntoView(`[data-index=\"${this.tempValue[key]()}\"]`);\n });\n }\n\n },\n\n renderToolbar()\n {\n return (\n <div class=\"n-timepicker-panel__toolbar\">\n <div class=\"n-timepicker-panel__display\">\n <span class=\"n-timepicker-panel__time\">\n {this.tempValue.format(this.displayFormat) || this.placeholder}\n </span>\n </div>\n </div>\n )\n },\n\n renderHourItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.hour() === this.tempValue.hour() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.hour()}>\n <span>{now.format('HH')}</span>\n </div>\n );\n },\n\n renderHourPanel()\n {\n if ( !this.displayFormat.match('HH') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"hour\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.hoursGrid, this.ctor('renderHourItem'))}\n </NScrollbar>\n );\n },\n\n renderMinuteItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.minute() === this.tempValue.minute() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.minute()}>\n <span>{now.format('mm')}</span>\n </div>\n );\n },\n\n renderMinutePanel()\n {\n if ( !this.displayFormat.match('mm') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"minute\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.minutesGrid, this.ctor('renderMinuteItem'))}\n </NScrollbar>\n );\n },\n\n renderSecondItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.second() === this.tempValue.second() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.second()}>\n <span>{now.format('ss')}</span>\n </div>\n );\n },\n\n renderSecondPanel()\n {\n if ( !this.displayFormat.match('ss') ) {\n return null;\n }\n\n return (\n <NScrollbar ref=\"second\" class=\"n-timepicker-panel__panel\" wrapClass=\"n-timepicker-panel__wrap\">\n {Arr.each(this.secondsGrid, this.ctor('renderSecondItem'))}\n </NScrollbar>\n );\n },\n\n render()\n {\n let classList = [\n 'n-timepicker-panel',\n 'n-timepicker-panel--' + this.size,\n 'n-timepicker-panel--' + this.type,\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-timepicker-panel__header\">\n {this.ctor('renderToolbar')()}\n </div>\n <div class=\"n-timepicker-panel__body\">\n {this.ctor('renderHourPanel')()}\n {this.ctor('renderMinutePanel')()}\n {this.ctor('renderSecondPanel')()}\n </div>\n </div>\n );\n }\n\n}","import { Arr, Obj, Now, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('HH:mm:ss');\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHours(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutes(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSeconds(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue),\n }\n },\n\n methods: {\n\n clearTimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n hour: value.moment.hour(), \n minute: value.moment.minute(), \n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue.valid() ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearTimepicker;\n }\n\n return (\n <div class=\"n-timepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-timepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.disabled,\n placeholder: this.trans(this.placeholder),\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-timepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-timepicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderSingle')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderPanel()\n {\n \n let props = Obj.except(this.$props, ['modelValue'], {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onTimepickerInput;\n\n return (\n <NTimepickerPanel class=\"n-timepicker__body\" {...props}></NTimepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props}>\n { { raw: this.ctor('renderPanel') } }\n </NPopover>\n );\n },\n\n render()\n {\n let classList = [\n 'n-timepicker',\n 'n-timepicker--' + this.type,\n 'n-timepicker--' + this.size,\n ];\n\n if ( ! this.tempValue.valid() ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Obj, Now, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatetimepicker',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select datetime');\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm:ss');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: Now.make(this.modelValue, this.format),\n };\n },\n\n methods: {\n\n clearDatetimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n hour: value.moment.hour(),\n minute: value.moment.minute(),\n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value,\n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempValue.initialDate;\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.clearDatetimepicker;\n }\n\n return (\n <div class=\"n-datetimepicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-datetimepicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderSingle()\n {\n let props = {\n value: '',\n disabled: this.deepDisabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n };\n\n if ( this.tempValue.valid() ) {\n props.value = this.tempValue.format(\n this.displayFormat, true);\n }\n\n return (\n <div class=\"n-datetimepicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-datetimepicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderSingle')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderPanels()\n {\n return (\n <div class=\"n-datetimepicker__body\">\n {[this.ctor('renderDatePanel')(), this.ctor('renderTimePanel')()]}\n </div>\n );\n },\n\n renderDatePanel()\n {\n let props = Obj.only(this.$props, [\n 'minDate', 'maxDate', 'size', 'type', 'format', 'monthPanels', 'disabled', 'weekdays', 'months'\n ]);\n\n props = Obj.assign(props, {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onDatepickerInput;\n\n return (\n <NDatepickerPanel class=\"n-datetimepicker__date-panel\" {...props}></NDatepickerPanel>\n );\n },\n\n renderTimePanel()\n {\n let props = Obj.only(this.$props, [\n 'size', 'type', 'format', 'disabled', 'hoursInterval', 'minutesInterval', 'secondsInterval'\n ]);\n\n props = Obj.assign(props, {\n modelValue: this.tempValue.format(this.format) || null,\n });\n\n props['onUpdate:modelValue'] = this.onTimepickerInput;\n\n return (\n <NTimepickerPanel class=\"n-datetimepicker__time-panel\" {...props}></NTimepickerPanel>\n );\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: 0,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.deepDisabled\n };\n\n let slots = {\n raw: this.ctor('renderPanels')\n };\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props} v-slots={slots} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-datetimepicker',\n 'n-datetimepicker--' + this.type,\n 'n-datetimepicker--' + this.size,\n ];\n\n let isEmpty = ! this.tempValue.initialDate;\n\n if ( isEmpty ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Any, Obj, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDurationpicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n options: {\n default()\n {\n return [\n 60 * 5,\n 60 * 10,\n 60 * 15,\n 60 * 30,\n 60 * 45,\n 60 * 60,\n 60 * 90,\n 60 * 120,\n 60 * 150,\n 60 * 60 * 3,\n 60 * 60 * 4,\n 60 * 60 * 5,\n 60 * 60 * 6,\n 60 * 60 * 12,\n 60 * 60 * 24,\n 60 * 60 * 24 * 2,\n 60 * 60 * 24 * 3,\n 60 * 60 * 24 * 4,\n 60 * 60 * 24 * 5,\n 60 * 60 * 24 * 6,\n 60 * 60 * 24 * 7,\n ];\n },\n type: [Array]\n },\n\n minDuration: {\n default()\n {\n return null;\n }\n },\n\n maxDuration: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select duration');\n },\n type: [String]\n },\n\n negativeText: {\n default()\n {\n return Locale.trans('Negative duration');\n },\n type: [String]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n days: {\n default()\n {\n return Locale.trans(':count Day|:count Days');\n },\n type: [String]\n },\n\n hours: {\n default()\n {\n return Locale.trans(':count Hour|:count Hours');\n },\n type: [String]\n },\n\n minutes: {\n default()\n {\n return Locale.trans(':count Minute|:count Minutes');\n },\n type: [String]\n },\n\n seconds: {\n default()\n {\n return Locale.trans(':count Second|:count Seconds');\n },\n type: [String]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue, editValue: null\n };\n },\n\n methods: {\n\n findPattern(text, pattern)\n {\n pattern = pattern.replaceAll(':count', '([0-9\\.\\,]+)')\n .replaceAll(' ', '\\\\s*');\n\n return text.match(new RegExp(pattern, 'i'));\n },\n\n humanizeValue(value)\n {\n if ( Any.isEmpty(value) ) {\n return '';\n }\n\n if ( value < 0 ) {\n return this.negativeText;\n }\n\n let seconds = value;\n\n // Extract minutes\n let minutes = Math.floor(seconds/60);\n seconds -= minutes * 60;\n\n // Extract hours\n let hours = Math.floor(minutes/60);\n minutes -= hours * 60;\n\n\n // Extract days\n let days = Math.floor(hours/24);\n hours -= days * 24;\n\n let text = [];\n\n if ( days ) {\n text.push(Locale.choice(this.days, days));\n }\n\n if ( hours ) {\n text.push(Locale.choice(this.hours, hours));\n }\n\n if ( minutes ) {\n text.push(Locale.choice(this.minutes, minutes));\n }\n\n if ( seconds ) {\n text.push(Locale.choice(this.seconds, seconds));\n }\n\n return text.join(' ');\n },\n\n digitizeValue(text)\n {\n if ( Any.isEmpty(text) ) {\n return this.clearValue;\n }\n\n let value = 0;\n\n let dmatch = this.findPattern(text, this.days);\n\n if ( dmatch && dmatch.length === 3 ) {\n value += Any.float(dmatch[1].replace(',', '.')) * 24 * 60 * 60;\n }\n\n let hmatch = this.findPattern(text, this.hours);\n\n if ( hmatch && hmatch.length === 3 ) {\n value += Any.float(hmatch[1].replace(',', '.')) * 60 * 60;\n }\n\n let mmatch = this.findPattern(text, this.minutes);\n\n if ( mmatch && mmatch.length === 3 ) {\n value += Any.float(mmatch[1].replace(',', '.')) * 60;\n }\n\n let smatch = this.findPattern(text, this.seconds);\n\n if ( smatch && smatch.length === 3 ) {\n value += Any.float(smatch[1].replace(',', '.'));\n }\n\n return value;\n },\n\n clearDurationpicker()\n {\n this.$emit('update:modelValue', this.tempValue = this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(e)\n {\n let value = this.digitizeValue(e.target.value);\n\n if ( value === this.tempValue ) {\n return;\n }\n\n this.editValue = value;\n },\n\n onValueChange(e)\n {\n let value = this.editValue;\n\n // Clear edit value\n this.editValue = null;\n\n if ( ! value || value === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n onDurationpickerInput(value)\n {\n this.focus = false;\n\n // Clear edit value\n this.editValue = null;\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDurationpicker;\n }\n\n return (\n <div class=\"n-durationpicker__clear\" {...props}>\n <i class={ nano.Icons.times }></i>\n </div>\n );\n },\n\n renderLabelAngle()\n {\n return (\n <div class=\"n-durationpicker__angle\">\n <i class={ nano.Icons.angleDown }></i>\n </div>\n );\n },\n\n renderInput()\n {\n let props = {\n value: this.humanizeValue(this.tempValue),\n disabled: this.disabled,\n placeholder: this.placeholder,\n onInput: this.onValueInput,\n onBlur: this.onValueChange,\n onChange: this.onValueChange,\n };\n\n return (\n <div class=\"n-durationpicker__input\">\n <input {...props}/>\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-durationpicker__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderInput')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n return Arr.each(this.options, (value) => {\n\n let text = this.humanizeValue(value);\n\n let optionProps = {\n //\n };\n\n optionProps['onClick'] = () => {\n this.onDurationpickerInput(value);\n }\n\n return (<NPopoverOption {...optionProps}>{text}</NPopoverOption>)\n });\n },\n\n renderPopover()\n {\n let props = {\n trigger: 'click',\n width: -1,\n size: this.size,\n position: this.position,\n scrollClose: true,\n disabled: this.disabled\n };\n\n let slots = {};\n\n slots.raw = () => {\n\n let scrollProps = {\n relative: true, size: this.size\n }\n\n return (\n <NScrollbar ref=\"scrollbar\" class=\"n-durationpicker__body\" {...scrollProps}>\n {this.ctor('renderItems')()}\n </NScrollbar>\n )\n }\n\n return (\n <NPopover ref=\"popover\" vModel={this.focus} {...props} v-slots={slots} />\n );\n },\n\n render()\n {\n let classList = [\n 'n-durationpicker',\n 'n-durationpicker--' + this.type,\n 'n-durationpicker--' + this.size,\n ];\n\n if ( ! this.tempValue ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n { this.ctor('renderPopover')() }\n </div>\n );\n }\n\n}","import { Str, Arr, Obj, Any, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTransfer',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sourceLabel: {\n default()\n {\n return 'Source';\n },\n type: [String]\n },\n\n targetLabel: {\n default()\n {\n return 'Target';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n sourceChecked()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length === this.tempSource.length;\n },\n\n sourceIntermediate()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length !== this.tempSource.length;\n },\n\n targetChecked()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length === this.tempTarget.length;\n },\n\n targetIntermediate()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length !== this.tempTarget.length;\n },\n\n tempSource()\n {\n let source = Arr.filter(this.options, (item) => {\n return ! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Any.isEmpty(this.sourceSearch) ) {\n return Arr.clone(source);\n }\n\n let searchPattern = new RegExp(this.sourceSearch, 'i');\n\n source = Arr.filter(source, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(source);\n },\n\n tempTarget()\n {\n let target = Arr.filter(this.options, (item) => {\n return !! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Any.isEmpty(this.targetSearch) ) {\n return Arr.clone(target);\n }\n\n let searchPattern = new RegExp(this.targetSearch, 'i');\n\n target = Arr.filter(target, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(target);\n }\n\n },\n data()\n {\n return {\n uid: UUID(),\n tempValue: this.modelValue,\n sourceSearch: '',\n targetSearch: '',\n selectedSource: [],\n selectedTarget: []\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n moveItemsTarget(options)\n {\n Arr.each(options, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveItemsSource(options)\n {\n Arr.each(options, (source) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveRowTarget(node)\n {\n // Get node unique\n let target = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedTarget, target);\n\n this.tempValue = Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveRowSource(node)\n {\n // Get node unique\n let source = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedSource, source);\n\n Arr.add(this.tempValue, node.item, source, {\n [this.uniqueProp]: source\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToSource()\n {\n Arr.each(this.selectedTarget, (target) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n });\n\n this.selectedTarget = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToTarget()\n {\n Arr.each(this.selectedSource, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.selectedSource = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n updateSelectedSource(selected)\n {\n this.selectedSource = selected;\n },\n\n updateSelectedTarget(selected)\n {\n this.selectedTarget = selected;\n }\n\n },\n\n renderSourceSelect()\n {\n let props = {\n modelValue: this.sourceChecked,\n size: this.size,\n type: this.type,\n intermediate: this.sourceIntermediate,\n disabled: ! this.tempSource.length\n };\n\n props['onUpdate:modelValue'] = () => {\n this.$refs.source.selectAll();\n };\n\n return (\n <div class=\"n-transfer__select\">\n <NCheckbox {...props} />\n </div>\n );\n },\n\n renderSourceTitle()\n {\n let labelHtml = (\n <span class=\"n-transfer__item-title\">\n { this.sourceLabel }\n </span>\n );\n\n let counterHtml = (\n <span class=\"n-transfer__item-count\">\n { this.tempSource.length }\n </span>\n );\n\n return (\n <div class=\"n-transfer__title\">\n { [labelHtml, counterHtml] }\n </div>\n );\n },\n\n renderSourceHeader()\n {\n return (\n <div class=\"n-transfer__header\">\n { this.ctor('renderSourceSelect')() }\n { this.ctor('renderSourceTitle')() }\n </div>\n );\n },\n\n renderSourceSearch()\n {\n let props = {\n placeholder: this.trans('Search item'),\n size: this.size,\n type: this.type,\n icon: nano.Icons.times,\n iconDisabled: ! this.sourceSearch\n };\n\n props['onIconClick'] = () => {\n this.sourceSearch = '';\n };\n\n props['onUpdate:modelValue'] = () => {\n this.selectedSource = [];\n };\n\n return (\n <div class=\"n-transfer__search\">\n <NInput vModel={this.sourceSearch} {...props} />\n </div>\n )\n },\n\n renderSourceBody()\n {\n let props = {\n group: [this.uid + 'source'],\n allowGroups: [this.uid + 'target'],\n items: this.tempSource,\n size: this.size,\n type: this.type,\n renderSelect: true,\n selected: this.selectedSource,\n safezone: () => -10,\n disableMove: true,\n renderNode: this.ctor('renderNode'),\n onMove: this.moveItemsSource,\n 'onRowDblclick': this.moveRowSource,\n 'onUpdate:selected': this.updateSelectedSource\n };\n\n return (\n <NDraglist ref=\"source\" class=\"n-transfer__body\" {...props} />\n );\n },\n\n renderTargetSelect()\n {\n let props = {\n modelValue: this.targetChecked,\n size: this.size,\n type: this.type,\n intermediate: this.targetIntermediate,\n disabled: ! this.tempTarget.length\n };\n\n props['onUpdate:modelValue'] = () => {\n this.$refs.target.selectAll();\n };\n\n return (\n <div class=\"n-transfer__select\">\n <NCheckbox {...props} />\n </div>\n );\n },\n\n renderTargetTitle()\n {\n let labelHtml = (\n <span class=\"n-transfer__item-title\">\n { this.targetLabel }\n </span>\n );\n\n let counterHtml = (\n <span class=\"n-transfer__item-count\">\n { this.tempTarget.length }\n </span>\n );\n\n return (\n <div class=\"n-transfer__title\">\n { [labelHtml, counterHtml] }\n </div>\n );\n },\n\n renderTargetHeader()\n {\n return (\n <div class=\"n-transfer__header\">\n { this.ctor('renderTargetSelect')() }\n { this.ctor('renderTargetTitle')() }\n </div>\n );\n },\n\n renderTargetSearch()\n {\n let props = {\n placeholder: this.trans('Search item'),\n size: this.size,\n type: this.type,\n icon: nano.Icons.times,\n iconDisabled: ! this.targetSearch\n };\n\n props['onIconClick'] = () => {\n this.targetSearch = '';\n };\n\n props['onUpdate:modelValue'] = () => {\n this.selectedTarget = [];\n };\n\n return (\n <div class=\"n-transfer__search\">\n <NInput vModel={this.targetSearch} {...props} />\n </div>\n )\n },\n\n renderTargetBody()\n {\n let props = {\n group: [this.uid + 'target'],\n allowGroups: [this.uid + 'source'],\n items: this.tempTarget,\n size: this.size,\n type: this.type,\n renderSelect: true,\n selected: this.selectedTarget,\n safezone: () => -1,\n disableMove: true,\n renderNode: this.ctor('renderNode'),\n onMove: this.moveItemsTarget,\n 'onRowDblclick': this.moveRowTarget,\n 'onUpdate:selected': this.updateSelectedTarget\n };\n\n return (\n <NDraglist ref=\"target\" class=\"n-transfer__body\" {...props} />\n );\n },\n\n renderNode(props)\n {\n if ( this.$slots.default ) {\n return this.$slots.default(props);\n }\n\n return (\n <div class=\"n-transfer__item\">\n { Obj.get(props.item, this.labelProp) }\n </div>\n );\n },\n\n renderMoveSource()\n {\n let props = {\n disabled: ! this.selectedSource.length,\n size: this.size,\n type: this.type,\n square: true, \n icon: nano.Icons.angleRight,\n onClick: this.moveToTarget\n };\n\n return (\n <NButton {...props} />\n );\n },\n\n renderMoveTarget()\n {\n let props = {\n disabled: ! this.selectedTarget.length,\n size: this.size,\n type: this.type,\n square: true, \n icon: nano.Icons.angleLeft,\n onClick: this.moveToSource\n };\n return (\n <NButton {...props} />\n );\n },\n\n render($render)\n {\n let classList = [\n 'n-transfer',\n 'n-transfer--' + this.size,\n 'n-transfer--' + this.type,\n ]\n\n return (\n <div class={classList}>\n <div class=\"n-transfer__panel\">\n { this.ctor('renderSourceHeader')() }\n { this.ctor('renderSourceSearch')() }\n { this.ctor('renderSourceBody')() }\n </div>\n <div class=\"n-transfer__controls\">\n { this.ctor('renderMoveSource')() }\n { this.ctor('renderMoveTarget')() }\n </div>\n <div class=\"n-transfer__panel\">\n { this.ctor('renderTargetHeader')() }\n { this.ctor('renderTargetSearch')() }\n { this.ctor('renderTargetBody')() }\n </div>\n </div>\n );\n }\n\n}","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NForm',\n\n inheritAttrs: false,\n\n model: {\n prop: 'form'\n },\n\n props: {\n\n dom: {\n default()\n {\n return 'div';\n },\n type: [String]\n },\n\n form: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n errors: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return 'classic';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'vertical';\n },\n type: [String]\n },\n\n prevent: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n ignore: {\n default()\n {\n return ['modified', 'dragid'];\n },\n type: [Array]\n },\n\n forceChange: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n forceErrors: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n classList()\n {\n if ( ! this.$attrs.class ) {\n return [];\n }\n\n return Any.isArray(this.$attrs) ? this.$attrs.class :\n [this.$attrs.class];\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(), elements: [], groups: {}, blocked: true,\n };\n },\n\n provide()\n {\n return {\n NForm: this\n };\n },\n\n mounted()\n {\n Any.delay(this.ctor('ready'), 500);\n },\n\n ready()\n {\n this.$watch('form', this.emitChange,\n { deep: true });\n\n this.resetChange();\n },\n\n methods: {\n\n 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 addItem(item)\n {\n Arr.add(this.elements, item, {\n uid: item.uid\n });\n },\n\n removeItem(item)\n {\n Arr.remove(this.elements,{\n uid: item.uid\n });\n },\n\n resetChange(timeout = 500)\n {\n clearTimeout(this.timeout);\n\n this.timeout = setTimeout(() => {\n this.blocked = false;\n }, timeout);\n\n this.blocked = true;\n\n let value = Obj.except(this.form,\n this.ignore);\n\n this.prevState = JSON.stringify(value);\n },\n\n emitChange()\n {\n if ( this.blocked ) {\n return;\n }\n\n let value = Obj.except(this.form,\n this.ignore);\n\n let nextState = JSON.stringify(value);\n\n if ( this.prevState == nextState ) {\n return;\n }\n\n this.prevState = nextState;\n\n this.$emit('change');\n },\n\n },\n\n render()\n {\n let classList = [\n 'n-form',\n 'n-form--' + this.align,\n ];\n\n let attrs = Obj.except(this.$attrs, ['class', 'onChange', 'onSubmit'], {\n class: this.cmer(classList)\n });\n\n attrs['onSubmit'] = (e) => {\n return false;\n }\n\n return h(this.dom, { ...attrs }, [\n this.$slots.default && this.$slots.default()\n ]);\n }\n\n}\n","import { Arr, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormGroup',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormFrame: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n key: {\n default()\n {\n return UUID();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n }\n },\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'vertical';\n },\n type: [String]\n },\n\n collapse: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltipPosition: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n uid: 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__legend\" onClick={this.toggleGroup}>\n { this.ctor('renderCollapse')() }\n { this.ctor('renderText')() }\n { this.ctor('renderAction')() }\n </div>\n );\n },\n\n renderTooltip()\n {\n if ( ! this.tooltip ) {\n return null;\n }\n\n return (\n <NPopover type=\"tooltip\" size=\"sm\" position={this.tooltipPosition}>\n {this.tooltip}\n </NPopover>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-form-group__body\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NForm ) {\n size = size || this.NForm.size;\n }\n\n let kind = this.kind;\n\n if ( this.NFormFrame ) {\n kind = kind || this.NFormFrame.kind;\n }\n\n if ( this.NForm ) {\n kind = kind || this.NForm.kind;\n }\n\n let classList = [\n 'n-form-group', \n 'n-form-group--' + size,\n 'n-form-group--' + kind,\n 'n-form-group--' + this.type,\n 'n-form-group--' + this.align,\n ];\n\n if ( this.collapse ) {\n classList.push('n-form-group--collapse');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n if ( this.$slots.action ) {\n classList.push('n-action');\n }\n\n return (\n <fieldset id={this.key} class={classList} data-group-key={this.key}>\n { this.ctor('renderLabel')() }\n { this.ctor('renderTooltip')() }\n { this.ctor('renderBody')() }\n </fieldset>\n );\n }\n}\n","import { Arr, Obj, Any, Dom, UUID, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormItem',\n\n inject: {\n\n NTabs: {\n default: undefined\n },\n\n NForm: {\n default: undefined\n },\n\n NFormGroup: {\n default: undefined\n },\n\n NTabsItem: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return { NFormItem: this };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n prop: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltipPosition: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n tooltipWindow: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n conditional: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n conditionOn: {\n default()\n {\n return Locale.trans('Enable field');\n },\n type: [String]\n },\n\n conditionOff: {\n default()\n {\n return Locale.trans('Disable field');\n },\n type: [String]\n }\n\n },\n\n methods: {\n\n enabled(component = false)\n {\n return (! this.conditional || this.modelValue) && ! component;\n },\n\n disabled(component)\n {\n return (this.conditional && ! this.modelValue) || component;\n },\n\n toggleCondition()\n {\n this.$emit('update:modelValue', !this.modelValue);\n },\n\n focusInput()\n {\n let $input = Dom.find(this.$el).find('input');\n\n if ( !$input.empty() ) {\n return $input.get(0).focus();\n }\n\n $input = Dom.find(this.$refs.input).childs();\n\n if ( !$input.empty() ) {\n return $input.get(0).click();\n }\n\n console.log('I dont belong here :o');\n },\n\n gotoInput()\n {\n let errors = this.NForm.errors;\n\n if ( Any.isEmpty(errors) ) {\n return;\n }\n\n if ( !this.NTabs || !this.NTabsItem ) {\n return;\n }\n\n let keys = Any.keys(errors);\n\n if ( Arr.first(keys) !== this.prop ) {\n return;\n }\n\n this.NTabs.changeTab(this.NTabsItem.name);\n }\n\n },\n\n data()\n {\n return {\n uid: UUID()\n };\n },\n\n beforeMount()\n {\n if ( this.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.NFormGroup ) {\n this.NFormGroup.removeItem(this);\n }\n },\n\n renderTooltip()\n {\n if ( !this.tooltip && !this.$slots.tooltip ) {\n return null;\n }\n\n let props = {\n size: 'sm',\n position: this.tooltipPosition,\n };\n\n return (\n <NPopover type=\"tooltip\" {...props}>\n {this.$slots.tooltip && this.$slots.tooltip() || this.tooltip}\n </NPopover>\n );\n },\n\n renderCondition()\n {\n if ( ! this.conditional ) {\n return null;\n }\n\n return (\n <div class=\"n-form-item__condition\" onClick={this.toggleCondition}>\n <span>{ this.modelValue ? this.conditionOff : this.conditionOn }</span>\n </div>\n );\n },\n\n renderLabel()\n {\n if ( !this.label && !this.$slots.label ) {\n return null;\n }\n\n let labelHtml = (\n <div class=\"n-form-item__label\">\n <label onClick={this.focusInput}>\n {this.$slots.label && this.$slots.label() || this.label}\n </label>\n </div>\n );\n\n return [\n labelHtml, this.ctor('renderTooltip')()\n ]\n },\n\n renderError()\n {\n if ( !this.NForm || !Obj.has(this.NForm.errors, this.prop) ) {\n return null;\n }\n\n return (\n <div class=\"n-form-item__error\">\n {Obj.get(this.NForm.errors, this.prop)}\n </div>\n );\n },\n\n renderInput()\n {\n return (\n <div ref=\"input\" class=\"n-form-item__input\">\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n render()\n {\n let size = this.size || Obj.get(this.NForm, 'size', 'md');\n\n\n let classList = [\n 'n-form-item',\n 'n-form-item--' + size,\n ];\n\n if ( this.disabled() ) {\n classList.push('is-disabled');\n }\n\n return <div class={classList}>\n {this.ctor('renderCondition')()}\n {this.ctor('renderLabel')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderError')()}\n </div>;\n }\n}\n","import { Arr, Any, Dom, Str, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormFrame',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n },\n\n provide()\n {\n return { NFormFrame: this };\n },\n\n props: {\n\n showSearch: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n searchPlaceholder: {\n default()\n {\n return Locale.trans('Search ...');\n },\n type: [String]\n },\n\n searchIcon: {\n default()\n {\n return 'fa fa-times';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n multiple: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n data()\n {\n return { search: '', star: '', block: false };\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 this.block = block;\n\n if ( ! Any.isEmpty(this.timeout) ) {\n clearTimeout(this.timeout);\n }\n\n if ( block ) {\n this.star = id;\n }\n\n this.timeout = setTimeout(() => {\n this.star = id; this.block = false;\n }, 500);\n },\n\n onMoveEvent()\n {\n Dom.find(window).on('mousemove', Any.debounce(e => {\n\n let el = Dom.find(e.target).closest('[data-group-key]');\n\n if ( Any.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).removeClass(['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 .removeClass('on-search');\n\n if ( Any.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 ( ! Any.isEmpty(event) ) {\n event.preventDefault();\n }\n\n let selector = `[data-group-key=\"${item.key}\"]`\n\n if ( item.collapse ) {\n item.openGroup();\n }\n\n if ( 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 ( ! Any.isEmpty(this.search) ) {\n searchProps.icon = this.searchIcon;\n }\n\n searchProps['onIconClick'] = () => {\n this.search = '';\n }\n\n return (\n <div class=\"n-form-frame__search\">\n <NInput vModel={this.search} {...searchProps}></NInput>\n </div>\n )\n },\n\n renderMenu(item)\n {\n let labelHtml = (\n <span>{item.label}</span>\n );\n\n let iconHtml = null;\n\n if ( item.icon ) {\n iconHtml = (<i class={item.icon} />);\n }\n\n let buttonProps = {\n href: '#' + item.key\n }\n\n buttonProps['onClick'] = (e) => {\n this.onClickEvent(item, e)\n };\n\n let classList = [\n 'n-form-frame__menu',\n 'n-form-frame__menu--' + item.type\n ];\n\n if ( this.star === item.key ) {\n classList.push('is-star');\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 ( ! Any.isEmpty(this.search) ) {\n classList.push('n-form-frame--search')\n }\n\n return (\n <div class={classList}>\n {[this.$slots.frame && this.$slots.frame(), this.ctor('renderMenus')(), this.ctor('renderBody')()]}\n </div>\n );\n }\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTabs',\n\n provide()\n {\n return {\n NTabs: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n float: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n data()\n {\n return {\n init: false,\n elements: [], \n width: 0, \n offset: 0, \n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTab(tab)\n {\n Arr.add(this.elements, tab, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTab(tab)\n {\n Arr.remove(this.elements, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n getTab(updateEvent = true)\n {\n let currentTab = Arr.find(this.elements, {\n name: this.modelValue\n });\n\n let sorted = Arr.sort(this.elements, 'sort');\n\n if ( ! currentTab ) {\n currentTab = Arr.first(sorted);\n }\n\n let repeatNext = () => this.getTab(updateEvent);\n\n if ( ! currentTab ) {\n return Any.delay(repeatNext, 250);\n }\n\n if ( currentTab.name === this.tempValue || ! updateEvent ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = currentTab.name);\n },\n\n changeTab(value)\n {\n if ( this.tempValue === value ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = value);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n this.getTab(false);\n },\n\n updated()\n {\n let width = Dom.find(this.$el).find('.n-active')\n .width();\n\n this.width = width < 0 ? 0 : width;\n\n let offset = Dom.find(this.$el).find('.n-active')\n .offset('left', this.$el);\n\n this.offset = offset < 0 ? 0 : offset;\n },\n\n renderHeaderIndicator()\n {\n let transform = `scaleX(${this.width / 100}) ` + \n `translateX(${this.offset / (this.width / 100)}px)`;\n\n return (\n <div class=\"n-tabs__indicator\" style={{ transform }}>\n { /* Indicator bar */ }\n </div>\n );\n },\n\n renderHeader()\n {\n if ( this.elements.length <= 1 ) {\n return null;\n }\n\n // FIXME: As soon vue doesnt bug\n let sorted = Arr.sort(this.elements, 'sort');\n \n let tabs = Arr.each(Arr.make(sorted.length), (tab, index) => {\n return sorted[index].ctor('renderHeader')();\n });\n\n return (\n <div class=\"n-tabs__header\">\n {[tabs, this.ctor('renderHeaderIndicator')()]}\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-tabs__body\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-tabs', \n 'n-tabs--' + this.size, \n 'n-tabs--' + this.type\n ];\n\n if ( this.float ) {\n classList.push('n-float');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderHeader')() }\n { this.ctor('renderBody')() }\n </div>\n );\n }\n}\n","import { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTabsItem',\n\n inject: {\n\n NTabs: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NTabsItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n preload: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keep: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n\n },\n\n methods: {\n\n changeTab()\n {\n this.NTabs.changeTab(this.name);\n }\n\n },\n\n data()\n {\n return {\n _key: null, init: false\n }\n },\n\n beforeMount()\n {\n this.NTabs.addTab(this);\n },\n\n beforeUnmount()\n {\n this.NTabs.removeTab(this);\n },\n\n renderHeaderIcon()\n {\n if ( ! this.$slots.icon && ! this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-tabs__tab-icon\">\n { this.$slots.icon && this.$slots.icon() || <i class={this.icon}></i> }\n </div>\n );\n },\n\n renderHeaderLabel()\n {\n return (\n <div class=\"n-tabs__tab-label\">\n { this.$slots.label && this.$slots.label () || <span>{this.label}</span> }\n </div>\n );\n },\n\n renderHeader()\n {\n let classList = [\n 'n-tabs__tab'\n ];\n\n if ( this.NTabs.tempValue === this.name ) {\n classList.push('n-active');\n }\n\n let props = {\n onClick: () => this.changeTab(this.name)\n };\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHeaderIcon')() }\n { this.ctor('renderHeaderLabel')() }\n </div>\n );\n },\n\n render()\n {\n let renderBody = this.NTabs.tempValue === this.name;\n\n if ( this.NTabs.tempValue !== this.name && this.keep ) {\n renderBody = this.init;\n }\n\n if ( this.NTabs.tempValue !== this.name && this.preload ) {\n renderBody = true;\n }\n\n if ( ! renderBody ) {\n return null;\n }\n\n this.init = true;\n\n let classList = [\n 'n-tabs-item'\n ];\n\n let style = {};\n\n if ( this.NTabs.tempValue !== this.name ) {\n style.display = 'none';\n }\n\n if ( this.$slots.raw ) {\n return this.$slots.raw({ style });\n }\n\n let element = 'div';\n\n if ( ! this.relative && ! this.NTabs.relative ) {\n element = resolveComponent('NScrollbar');\n }\n\n return h(element, { class: classList, style }, this.$slots);\n }\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTags',\n\n provide()\n {\n return {\n NTags: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n tags: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTag(tab)\n {\n Arr.add(this.elements, tab,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTag(tab)\n {\n Arr.remove(this.elements,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n },\n\n render()\n {\n let classList = [\n 'n-tags',\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTagsItem',\n\n inject: {\n\n NTags: {\n default: undefined\n }\n\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return -1;\n },\n type: [String, Number]\n },\n\n color: {\n default()\n {\n return 0;\n },\n type: [String, Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n },\n\n beforeMount()\n {\n if ( this.NTags ) {\n this.NTags.addTag(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NTags ) {\n this.NTags.removeTag(this);\n }\n },\n\n renderIcon()\n {\n if ( Any.isEmpty(this.icon) ) {\n return null;\n }\n\n return (\n <i class={this.icon}></i>\n );\n },\n\n renderLabel()\n {\n return (\n <span>{this.$slots.default ? this.$slots.default() : this.label}</span>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NTags ) {\n size = this.NTags.size;\n }\n\n let classList = [\n 'n-tags-item',\n 'n-tags-item--' + size,\n ,\n ];\n\n if ( this.type === -1 ) {\n classList.push('n-tags-item--color-' + this.color);\n }\n\n if ( this.type !== -1 ) {\n classList.push('n-tags-item--color-' + this.type);\n }\n\n return (\n <div class={classList}>\n {[this.ctor('renderIcon')(), this.ctor('renderLabel')()]}\n </div>\n );\n }\n\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCollapse',\n\n provide()\n {\n return {\n NCollapse: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTab(tab)\n {\n Arr.add(this.elements, tab,\n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTab(tab)\n {\n Arr.remove(this.elements,\n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n showTab(value)\n {\n if ( Arr.has(this.tempValue, value) ) {\n return;\n }\n\n Arr.add(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n hideTab(value)\n {\n if ( ! Arr.has(this.tempValue, value) ) {\n return;\n }\n\n Arr.remove(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n toggleTab(value)\n {\n Arr.toggle(this.tempValue, value);\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n },\n\n render()\n {\n let classList = [\n 'n-collapse',\n 'n-collapse--' + this.size,\n 'n-collapse--' + this.type\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { Arr, Any, Dom } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NCollapseItem',\n\n inject: {\n\n NCollapse: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NCollapseItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n preload: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keep: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n methods: {\n\n showTab()\n {\n this.NCollapse.showTab(this.name);\n },\n\n hideTab()\n {\n this.NCollapse.hideTab(this.name);\n },\n\n toggleTab()\n {\n this.NCollapse.toggleTab(this.name);\n }\n\n },\n\n data()\n {\n return {\n _key: null, init: false, dragger: 0\n }\n },\n\n beforeMount()\n {\n this.NCollapse.addTab(this);\n },\n\n beforeUnmount()\n {\n this.NCollapse.removeTab(this);\n },\n\n renderHeaderIcon()\n {\n if ( !this.$slots.icon && !this.icon ) {\n return null;\n }\n\n return (\n <div class=\"n-collapse__header-icon\">\n {this.$slots.icon && this.$slots.icon() || <i class={this.icon}></i>}\n </div>\n );\n },\n\n renderHeaderLabel()\n {\n return (\n <div class=\"n-collapse__header-label\">\n {this.$slots.label && this.$slots.label() || <span>{this.label}</span>}\n </div>\n );\n },\n\n renderHeaderAngle()\n {\n return (\n <div class=\"n-collapse__header-angle\">\n {this.$slots.angle && this.$slots.angle() || <i class={nano.Icons.angleRight}></i>}\n </div>\n );\n },\n\n renderHeader()\n {\n if ( !this.label && !this.$slots.label ) {\n return null;\n }\n\n let classList = [\n 'n-collapse__header'\n ];\n\n if ( Arr.has(this.NCollapse.tempValue, this.name) ) {\n classList.push('n-active');\n }\n\n let props = {\n onClick: () => this.toggleTab(this.name)\n };\n\n props['onDragenter'] = (event) => {\n\n this.dragger ++;\n\n if ( this.dragger !== 1 ) {\n return;\n }\n\n this.showDelay = setTimeout(() => {\n this.showTab(this.name);\n }, 350);\n };\n\n props['onDragleave'] = (event) => {\n\n this.dragger --;\n\n if ( this.dragger !== 0 ) {\n return;\n }\n\n clearTimeout(this.showDelay);\n };\n\n props.style = {\n order: this.sort + 1,\n };\n\n return (\n <div ref=\"header\" class={classList} {...props}>\n {this.ctor('renderHeaderIcon')()}\n {this.ctor('renderHeaderLabel')()}\n {this.ctor('renderHeaderAngle')()}\n </div>\n );\n },\n\n renderBody()\n {\n let classList = [\n 'n-collapse__body'\n ];\n\n let tempValue = Arr.clone(this.NCollapse.tempValue);\n\n if ( !this.label && !this.$slots.label ) {\n tempValue.push(this.name);\n }\n\n let renderBody = Arr.has(tempValue, this.name);\n\n if ( !Arr.has(tempValue, this.name) && this.keep ) {\n renderBody = this.init;\n }\n\n if ( !Arr.has(tempValue, this.name) && this.preload ) {\n renderBody = true;\n }\n\n if ( !renderBody && this.label ) {\n return null;\n }\n\n this.init = true;\n\n let style = {\n order: this.sort + 2\n };\n\n if ( !Arr.has(tempValue, this.name) ) {\n style.display = 'none';\n }\n\n let element = 'div';\n\n if ( !this.relative && !this.NCollapse.relative ) {\n element = resolveComponent('NScrollbar');\n }\n\n return h(element, { class: classList, style, }, this.$slots);\n },\n\n render()\n {\n return [\n this.ctor('renderHeader')(), this.ctor('renderBody')()\n ];\n }\n}\n","import { Any, Arr, Obj, Dom, Event, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTable',\n\n provide()\n {\n return {\n NTable: this\n };\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n expanded: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n filter: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sortProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n sortDir: {\n default()\n {\n return 'desc';\n },\n type: [String]\n },\n\n closeFilterOnEnter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.51;\n }\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 38;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderSelect: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderExpand: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return () => true;\n }\n },\n\n removeNode: {\n default()\n {\n return () => true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n keyEvents: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n highlightTimeout: {\n default()\n {\n return 7000;\n },\n type: [Number]\n },\n\n },\n\n computed: {\n\n checked()\n {\n return !!this.tempSelected.length &&\n this.tempSelected.length === this.items.length;\n },\n\n intermediate()\n {\n return !!this.tempSelected.length &&\n this.tempSelected.length !== this.items.length\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(),\n elements: [],\n tempVisible: this.visible,\n tempVisibleProps: [],\n tempSelected: this.selected,\n tempSortProp: this.sortProp,\n tempSortDir: this.sortDir,\n tempFilter: this.filter,\n tempFilterProps: [],\n }\n },\n\n mounted()\n {\n this.$watch('tempVisible',\n this.makeVisibleProps, { deep: true });\n\n if ( !this.tempVisible.length ) {\n Arr.each(this.elements, this.detectVisible);\n }\n },\n\n watch: {\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n },\n\n methods: {\n\n addColumn(column)\n {\n Arr.add(this.elements, column,\n { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n getColumnIndex(column)\n {\n if ( !Any.isString(column) ) {\n column = column['prop'];\n }\n\n return Arr.findIndex(this.tempVisibleProps,\n column);\n },\n\n getColumnVisiblity(column)\n {\n if ( !Any.isString(column) ) {\n column = column.prop;\n }\n\n return Arr.has(this.tempVisible, column);\n },\n\n getColumnSorted(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n if ( this.tempSortProp !== prop ) {\n return null;\n }\n\n return this.tempSortDir;\n },\n\n getColumnFilter(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.find(this.tempFilter, {\n property: prop\n });\n },\n\n getColumnFiltered(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.has(this.tempFilterProps, prop);\n },\n\n detectVisible(column)\n {\n if ( column.detectVisibity() ) {\n Arr.add(this.tempVisible, column.prop);\n }\n },\n\n makeVisibleProps()\n {\n this.tempVisibleProps = Arr.intersect(\n Arr.extract(this.elements, 'prop'), this.tempVisible);\n\n this.$nextTick(this.$refs.scrollbar.onResize);\n },\n\n sortByColumn(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n\n let dir = this.tempSortDir;\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'desc' ) {\n dir = 'asc';\n }\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'asc' ) {\n dir = 'desc';\n }\n\n if ( this.tempSortDir !== dir ) {\n this.$emit('update:sortDir', this.tempSortDir = dir);\n }\n\n if ( this.tempSortProp !== prop ) {\n this.$emit('update:sortProp', this.tempSortProp = prop);\n }\n\n this.$emit('sort', this.tempSortProp, this.tempSortDir);\n },\n\n replaceFilter(filter, search)\n {\n Arr.replace(this.tempFilter, filter, search);\n\n let filters = Arr.filter(this.tempFilter, (filter) => {\n return Arr.has(this.tempFilterProps, filter.property);\n });\n\n this.$emit('update:filter', filters);\n\n this.$emit('filter', filters, this.tempFilterProps);\n },\n\n resetFilter()\n {\n this.tempFilter = this.tempFilterProps = [];\n\n Event.fire('NTable:reset', this.uid);\n\n this.$emit('update:filter', this.tempFilter);\n\n this.$emit('filter', this.tempFilter, this.tempFilterProps);\n },\n\n selectAll()\n {\n this.$refs.draggable.selectAll();\n },\n\n highlightNode(value, key = null)\n {\n this.$refs.draggable.highlightNode(value, key);\n },\n\n syncCurrent()\n {\n return this.$refs.draggable.syncCurrent();\n },\n\n refreshCurrent()\n {\n this.$refs.draggable.refreshCurrent();\n },\n\n },\n\n renderHandle()\n {\n if ( !this.renderHandle ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__handle\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderExpand()\n {\n if ( !this.renderExpand ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__expand\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderSelect()\n {\n if ( !this.renderSelect ) {\n return null;\n }\n\n let props = {\n modelValue: this.checked,\n intermediate: this.intermediate,\n disabled: !this.items.length,\n onClick: this.selectAll\n };\n\n return (\n <div class=\"n-draglist-item__select\">\n <NCheckbox {...props}></NCheckbox>\n </div>\n );\n },\n\n renderBody(props)\n {\n let columns = Obj.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderBody')(props);\n });\n\n return Obj.values(columns);\n },\n\n renderContext()\n {\n let columns = Obj.each(this.elements, (column) => {\n\n if ( column.disabled ) {\n return null;\n }\n\n return (\n <NCheckbox class=\"n-table__checkbox\" value={column.prop}>\n {column.label}\n </NCheckbox>\n );\n });\n\n return (\n <NPopover trigger=\"context\" width={220}>\n <NCheckboxGroup vModel={this.tempVisible} align=\"vertical\">\n {Obj.values(columns)}\n </NCheckboxGroup>\n </NPopover>\n );\n },\n\n renderHead()\n {\n let defaultRender = [\n this.ctor('renderHandle')(),\n this.ctor('renderExpand')(),\n this.ctor('renderSelect')(),\n this.ctor('renderContext')()\n ];\n\n let columns = Obj.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderHead')();\n });\n\n return (\n <div class=\"n-table__header\">\n {defaultRender} {Obj.values(columns)}\n </div>\n );\n },\n\n render()\n {\n let except = [\n 'visible', 'filter', 'sortProp',\n 'sortDir', 'closeFilterOnEnter'\n ];\n\n let props = Obj.except(this.$props, except, {\n items: this.items,\n selected: this.tempSelected,\n overflowX: false,\n useKeys: this.useKeys,\n // renderNode: this.ctor('renderBody')\n });\n\n props['onRowClick'] = (...args) => {\n this.$emit('row-click', ...args);\n }\n\n props['onRowDblclick'] = (...args) => {\n this.$emit('row-dblclick', ...args);\n }\n\n props['onUpdate:items'] = (value) => {\n this.$emit('update:items', value);\n }\n\n props['onUpdate:current'] = (value) => {\n this.$emit('update:current', value);\n }\n\n props['onUpdate:expanded'] = (value) => {\n this.$emit('update:expanded', value);\n }\n\n props['onUpdate:selected'] = (value) => {\n this.$emit('update:selected', this.tempSelected = value);\n }\n\n let draggableHtml = (\n <div class=\"n-table__body\">\n <NDraglist ref=\"draggable\" {...props} offsetX={25}>\n {{ default: this.ctor('renderBody') }}\n </NDraglist>\n </div>\n );\n\n return (\n <div class=\"n-table\">\n <NScrollbar ref=\"scrollbar\" class=\"n-table__wrap\" fixture={true} overflowY={false}>\n <div class=\"n-table__inner\">\n {[this.ctor('renderHead')(), draggableHtml]}\n </div>\n </NScrollbar>\n {this.$slots.default && this.$slots.default()}\n </div>\n );\n },\n\n}","import { Any, Arr, Obj, Str, Dom, UUID, Num, Locale } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTableColumn',\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return UUID();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'left';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n filter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n matrixDisabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n breakpoint: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n matrix: {\n default()\n {\n return - 1;\n },\n type: [Number, String]\n },\n\n matrixProp: {\n default()\n {\n return 'matrix';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n sortProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n filterProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n fluid: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n fixedWidth: {\n default()\n {\n return 0;\n }\n },\n\n width: {\n default()\n {\n return 0;\n }\n },\n\n minWidth: {\n default()\n {\n return 120;\n }\n },\n\n maxWidth: {\n default()\n {\n return 0;\n }\n },\n\n emptyText: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n undefinedText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n },\n\n allowUncheck: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n matrixValues()\n {\n if ( this.type !== 'matrix' ) {\n return;\n }\n\n let values = {};\n\n if ( Any.isEmpty(this.modelValue) ) {\n return values;\n }\n\n Arr.each(this.modelValue, (item) => {\n Obj.set(values, item[this.NTable.uniqueProp],\n Num.matrix(item[this.matrixProp]));\n });\n\n return values;\n }\n\n },\n\n provide()\n {\n return {\n NTableColumn: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(), tempWidth: 0\n };\n },\n\n methods: {\n\n detectVisibity()\n {\n let visible = this.visible;\n\n if ( this.breakpoint ) {\n visible &= Dom.find(this.NTable.$el).width() > this.breakpoint;\n }\n\n return visible;\n },\n\n sortByColumn(event)\n {\n if ( !Arr.has([0, 1], event.which) ) {\n return;\n }\n\n if ( !Dom.find(event.target).closest('.n-table-column__filter') ) {\n this.NTable.sortByColumn(this);\n }\n },\n\n },\n\n beforeMount()\n {\n this.changedStates = {};\n this.NTable.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NTable.removeColumn(this);\n },\n\n renderHead()\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let classList = [\n 'n-table-column',\n 'n-table-column--' + this.align,\n 'n-table-column--' + this.type,\n ];\n\n let sortDirection = this.NTable.getColumnSorted(this);\n\n if ( sortDirection ) {\n classList.push('n-sorted', 'n-' + sortDirection);\n }\n\n if ( this.fluid || !this.width ) {\n classList.push('n-fluid');\n }\n\n if ( this.fixedWidth ) {\n classList.push('n-fixed');\n }\n\n if ( this.NTable.getColumnFiltered(this) ) {\n classList.push('n-filtered');\n }\n\n let style = {};\n\n if ( this.fixedWidth ) {\n style.width = this.fixedWidth + 'px';\n }\n\n if ( this.width ) {\n style.flexBasis = this.width + 'px';\n }\n\n let props = {\n modelValue: this.tempWidth,\n width: this.width,\n minWidth: this.minWidth,\n maxWidth: this.maxWidth,\n disabled: !!this.fixedWidth,\n group: ['n-table', this.NTable.uid],\n };\n\n props['onUpdate:modelValue'] = (value) => {\n this.tempWidth = value;\n }\n\n if ( this.sort ) {\n props.onMousedown = this.sortByColumn;\n }\n\n return (\n <NResizer ref=\"column\" class={classList} style={style} {...props}>\n {this.ctor('renderHeadSort')()}\n {this.ctor('renderHeadLabel')()}\n {this.ctor('renderHeadFilter')()}\n </NResizer>\n );\n },\n\n renderHeadLabel()\n {\n let classList = [\n 'n-table-column__label'\n ];\n\n let labelHtml = (\n <div class={classList}>\n <span>{this.label}</span>\n </div>\n );\n\n if ( Any.isEmpty(this.tooltip) ) {\n return labelHtml;\n }\n\n let tooltipHtml = (\n <NPopover type=\"tooltip\">{this.tooltip}</NPopover>\n );\n\n return [labelHtml, tooltipHtml];\n },\n\n renderHeadSort()\n {\n if ( !this.sort ) {\n return null;\n }\n\n return (\n <div class=\"n-table-column__sort\">\n <i>{ /* Sorting angles */}</i>\n </div>\n )\n },\n\n renderHeadFilter()\n {\n if ( !this.filter ) {\n return null;\n }\n\n let angleHtml = (\n <div class=\"n-table-column__filter\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n\n let component = resolveComponent('NTableFilter' +\n Str.ucfirst(this.type));\n\n return [\n angleHtml, h(component, { column: this })\n ];\n },\n\n renderBody(props)\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let uid = props.value[this.NTable.uniqueProp]\n + this.uid;\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.align,\n 'n-table-cell--' + this.type,\n ];\n\n if ( this.fluid ) {\n classList.push('n-fluid');\n }\n\n if ( this.tempWidth ) {\n classList.push('n-fixed');\n }\n\n let index = this.NTable.getColumnIndex(this);\n\n let offset = 0;\n\n if ( index === 0 ) {\n offset = props.value.depth * this.NTable.itemOffset;\n }\n\n let style = {\n width: (this.tempWidth - offset) + 'px'\n };\n\n if ( this.minWidth ) {\n style.minWidth = (this.minWidth - offset) + 'px';\n }\n\n if ( this.maxWidth ) {\n style.maxWidth = (this.maxWidth - offset) + 'px';\n }\n\n let passed = Obj.except(this.$attrs, [], {\n ...props, uid: uid, class: classList, style: style, column: this\n });\n\n let component = resolveComponent('NTableCell' +\n Str.ucfirst(this.type));\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n },\n\n NDraggableItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n uid: {\n required: true\n },\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n value: {\n required: true\n },\n\n copy: {\n required: true\n },\n\n remove: {\n required: true\n },\n\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n data()\n {\n return { init: false };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => this.init = true, 20);\n },\n\n beforeUnmount()\n {\n clearTimeout(this.timer);\n },\n\n methods: {\n\n setFirstState(state)\n {\n Obj.set(this.column.changedStates,\n this.uid, this.firstState = state);\n }\n\n },\n\n render()\n {\n if ( this.column.$slots.default ) {\n return this.column.$slots.default(this);\n }\n \n return (\n <div>{ this.input }</div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellString',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertString(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellBoolean',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Any.convertBoolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellDatetime',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Any.convertDatetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellOption',\n\n extends: TableCell,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Any.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let prop = this.column.optionsValue;\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let input = ! Any.isObject(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellImage',\n\n extends: TableCell,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.column.type\n ];\n\n let props = {\n fit: 'contain',\n }\n\n return (\n <div class={classList}>\n <NPreview file={this.preview || this.input} thumb={this.input} {...props} />\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Any, Obj, Arr, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellMatrix',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleMatrix()\n {\n if ( this.column.matrix === -1 ) {\n return this.toggleSelect();\n }\n\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let item = Arr.find(itemList, {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp]\n });\n\n if ( ! item ) {\n item = Obj.assign({}, this.item, { [this.column.matrixProp]: 0 });\n }\n\n let currentMatrix = Num.int(item[this.column.matrixProp]);\n\n let matrix = Arr.toggle(Num.matrix(currentMatrix),\n Num.int(this.column.matrix));\n\n item[this.column.matrixProp] = Num.combine(matrix);\n\n Arr.replace(itemList, item, {\n [this.NTable.uniqueProp]: item[this.NTable.uniqueProp]\n });\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n toggleSelect()\n {\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let fallback = Obj.assign({}, this.item, {\n [this.column.matrixProp]: this.column.matrix\n });\n\n let finder = {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp],\n };\n\n let item = Arr.find(itemList, finder);\n\n if ( ! item ) {\n Arr.add(itemList, fallback);\n } else {\n Arr.remove(itemList, finder);\n }\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n isChecked()\n {\n let matrix = Obj.get(this.column.matrixValues,\n this.item[this.NTable.uniqueProp]);\n\n if ( ! matrix ) {\n return false;\n }\n\n let value = Num.int(this.column.matrix);\n\n if ( value === -1 ) {\n return true;\n }\n\n return Arr.has(matrix, value);\n },\n\n isDisabled()\n {\n if ( ! Any.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled;\n }\n\n return this.column.matrixDisabled(this);\n }\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleMatrix;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Any, Obj, Arr } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellSelect',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleSelect()\n {\n let item = null;\n\n if ( ! this.isChecked() ) {\n item = Obj.assign({}, this.item);\n }\n\n this.column.$emit('update:modelValue', item);\n },\n\n isChecked()\n {\n if ( Any.isEmpty(this.column.modelValue) ) {\n return false;\n }\n\n return Obj.get(this.column.modelValue, this.NTable.uniqueProp) ===\n this.value[this.NTable.uniqueProp];\n },\n\n isDisabled()\n {\n if ( ! Any.isEmpty(this.column.modelValue) ) {\n return true;\n }\n\n if ( Any.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled(this);\n }\n\n if ( ! Any.isFunction(this.column.disabled) ) {\n return this.column.disabled;\n }\n\n return this.column.disabled(this);\n },\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleSelect;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import {Arr, Obj, Any, Dom, Event, UUID} from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n }\n\n },\n\n computed: {\n\n tempFilter()\n {\n return this.NTable.getColumnFilter(this.column);\n },\n\n canReset()\n {\n return ! this.NTable.getColumnFiltered(this.column);\n },\n\n canApply()\n {\n return ! Any.isEmpty(this.filter.value);\n }\n\n },\n\n data()\n {\n return {\n filter: this.getFilterClone(), visible: false\n };\n },\n\n beforeMount()\n {\n this.mountFilter();\n },\n\n mounted()\n {\n Event.bind('NTable:reset', \n this.resetFilter, this._.uid);\n\n Dom.find(document).on('keydown', \n this.onKeydown, this._.uid);\n },\n\n beforeUnmount()\n {\n Event.unbind('NTable:reset', \n this._.uid);\n\n Dom.find(document).off('keydown', \n null, this._.uid);\n },\n\n methods: {\n\n getFilterClone()\n {\n let tempFilter = this.NTable.getColumnFilter(this.column);\n\n if ( Any.isEmpty(tempFilter) ) {\n return null;\n }\n\n return Obj.clone(tempFilter);\n },\n\n getFilterProp()\n {\n return this.column.filterProp || \n this.column.prop;\n },\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null,\n property: this.getFilterProp(), \n };\n },\n\n mountFilter()\n {\n if ( this.filter ) {\n return this.applyFilter();\n }\n\n this.filter = this.getDefaultFilter();\n\n if ( ! this.canApply ) {\n return;\n }\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n resetFilter(uid)\n {\n if ( this.NTable.uid !== uid ) {\n return;\n }\n\n this.filter = this.getDefaultFilter();\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n onKeydown(event)\n {\n if ( ! this.visible ) {\n return;\n }\n\n if ( event.which === 13 && this.canApply ) {\n this.applyFilter();\n }\n\n if ( event.which === 13 && ! this.canApply ) {\n this.clearFilter();\n }\n\n let closeAnyway = event.which === 13 &&\n this.NTable.closeFilterOnEnter;\n\n if ( closeAnyway || event.which === 27 ) {\n this.$refs.popover.close();\n }\n },\n\n applyFilter()\n {\n let filter = Obj.clone(this.filter);\n\n Arr.add(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n },\n\n clearFilter()\n {\n let filter = this.getDefaultFilter();\n\n Arr.remove(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n\n this.filter = filter;\n }\n\n },\n\n renderForm()\n {\n return null;\n },\n\n renderApply()\n {\n let props = {\n type: 'primary',\n link: true,\n size: 'xs',\n disabled: ! this.canApply\n };\n\n return (\n <NButton {...props} onClick={this.applyFilter}>\n { this.trans('Apply') }\n </NButton>\n );\n },\n\n renderReset()\n {\n let props = {\n type: 'danger',\n link: true,\n size: 'xs',\n disabled: this.canReset,\n };\n\n return (\n <NButton {...props} onClick={this.clearFilter}>\n { this.trans('Reset') }\n </NButton>\n );\n },\n\n renderFooter()\n {\n return (\n <div class=\"n-table-filter__footer\">\n { this.ctor('renderReset')() }\n { this.ctor('renderApply')() }\n </div>\n )\n },\n\n render()\n {\n let props = {\n class: 'n-table-filter__popover',\n trigger: 'click',\n size: 'sm',\n width: 220,\n }\n\n return (\n <NPopover ref=\"popover\" vModel={this.visible} {...props}>\n {\n { default: this.ctor('renderForm'), footer: this.ctor('renderFooter') }\n }\n </NPopover>\n );\n }\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Dom, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterString',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'li',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n li: this.trans('Includes value'),\n nl: this.trans('Excludes value'),\n eq: this.trans('Equal value'),\n ne: this.trans('Except value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NInput size=\"sm\" vModel={this.filter.value} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterBoolean',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'in',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n 1: this.trans(this.column.trueText),\n 0: this.trans(this.column.falseText),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.value} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\n\nexport default {\n\n name: 'NTableFilterDatetime',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'eq',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n eq: this.trans('Exact date'),\n lt: this.trans('Before date'),\n gt: this.trans('After date'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NDatepicker size=\"sm\" vModel={this.filter.value} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Arr, Obj, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterOption',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type,\n value: [],\n operator: 'in',\n property: this.getFilterProp(),\n };\n }\n\n },\n\n renderOption(value)\n {\n let props = {\n value: Obj.get(value, this.column.optionsValue)\n };\n\n return (\n <NCheckbox {...props}>{ Obj.get(value, this.column.optionsLabel) }</NCheckbox>\n );\n },\n\n renderForm()\n {\n let items = this.column.options;\n\n if ( Any.isFunction(items) ) {\n items = this.column.options(this);\n }\n\n items = Arr.each(items, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let options = {\n in: this.trans('Includes value'),\n ni: this.trans('Excludes value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NCheckboxGroup size=\"sm\" align=\"vertical\" vModel={this.filter.value}>\n { Arr.each(items, this.ctor('renderOption')) }\n </NCheckboxGroup>\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import { Str, Num, Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPaginator',\n\n props: {\n\n page: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n limit: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n limitOptions: {\n default()\n {\n return [25, 50, 100, 500, 1000, 2500];\n },\n },\n\n total: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n maxPages: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n layout: {\n default()\n {\n return [\n 'limit', 'count', 'spacer', 'goto', 'pages'\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n pages()\n {\n return Num.ceil(this.total / this.tempLimit);\n },\n\n pageOptions()\n {\n return Arr.make(this.pages || 1);\n }\n\n },\n\n data()\n {\n return {\n tempPage: this.page, tempLimit: this.limit,\n };\n },\n\n\n\n methods: {\n\n forcePage(page)\n {\n if ( page !== this.tempPage ) {\n this.tempPage = page;\n }\n },\n\n updatePaginate()\n {\n let paginate = {\n page: this.tempPage, limit: this.tempLimit\n };\n\n this.$emit('paginate', paginate);\n },\n\n onPrevPage()\n {\n this.onPageInput(this.tempPage - 1);\n },\n\n onNextPage()\n {\n this.onPageInput(this.tempPage + 1);\n },\n\n onFirstPage()\n {\n this.onPageInput(1);\n },\n\n onLastPage()\n {\n this.onPageInput(this.pages);\n },\n\n onPageInput(value)\n {\n this.$emit('update:page', this.tempPage = value);\n\n this.updatePaginate();\n },\n\n onLimitInput(value)\n {\n if ( this.tempLimit !== value ) {\n this.$emit('update:page', this.tempPage = 1);\n }\n\n this.$emit('update:limit', this.tempLimit = value);\n\n this.updatePaginate();\n },\n\n },\n\n watch: {\n\n page(value)\n {\n if ( value !== this.tempPage ) {\n this.tempPage = value;\n }\n },\n\n limit(value)\n {\n if ( value !== this.tempLimit ) {\n this.tempLimit = value;\n }\n }\n\n },\n\n renderLimit()\n {\n let props = {\n modelValue: this.tempLimit,\n size: this.size,\n type: this.type,\n optionsValue: '$value.value',\n optionsLabel: '$value.label',\n };\n\n props.options = Arr.each(this.limitOptions, (limit) => {\n return {\n value: limit, label: this.choice(':count items', limit)\n };\n });\n\n props['onUpdate:modelValue'] = this.onLimitInput;\n\n return (\n <div class=\"n-paginator__limit\">\n <NSelect {...props} />\n </div>\n );\n },\n\n renderCount()\n {\n return (\n <div class=\"n-paginator__count\">\n { this.choice('No items|Total :count item|Total :count items', this.total) }\n </div>\n );\n },\n\n renderSpacer()\n {\n return (\n <div class=\"n-paginator__spacer\">\n { /* Nothing :( */ }\n </div>\n );\n },\n\n renderGoto()\n {\n if ( this.pageOptions.length > 500 ) {\n return null;\n }\n\n let props = {\n modelValue: this.tempPage,\n size: this.size,\n type: this.type,\n undefinedText: '?',\n optionsValue: '$value.value',\n optionsLabel: '$value.label',\n };\n\n props.options = Arr.reduce(this.pageOptions, (merge, index) => {\n return Arr.push(merge, {\n value: index, label: index\n });\n }, []);\n\n props['onUpdate:modelValue'] = this.onPageInput;\n\n return (\n <div class=\"n-paginator__goto\">\n <NSelect {...props} />\n </div>\n );\n },\n\n renderPrev()\n {\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleLeft,\n onClick: this.onPrevPage\n };\n\n if ( this.tempPage - 1 < 1 ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderNext()\n {\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleRight,\n onClick: this.onNextPage\n };\n\n if ( this.tempPage + 1 > this.pages ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderFirst()\n {\n if ( this.pages < this.maxPages ) {\n return null;\n }\n\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleDoubleLeft,\n onClick: this.onFirstPage\n };\n\n if ( this.tempPage - 1 < 1 ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderLast()\n {\n if ( this.pages < this.maxPages ) {\n return null;\n }\n\n let props = {\n type: this.type,\n square: true,\n size: this.size,\n icon: nano.Icons.angleDoubleRight,\n onClick: this.onLastPage\n };\n\n if ( this.tempPage + 1 > this.pages ) {\n props.disabled = true;\n }\n\n return (\n <NButton {...props} />\n );\n },\n\n renderPage(index)\n {\n let page = this.tempPage;\n\n let pages = Math.abs(this.maxPages / 2);\n\n if ( page < pages ) {\n page = pages;\n }\n\n let global = Array(this.pages).length;\n\n if ( page > global - pages ) {\n page = global - pages;\n }\n\n let current = Num.int(index);\n\n if ( current < page - pages ) {\n return null;\n }\n\n if ( current > Math.max(1, page + pages) ) {\n return null;\n }\n\n let props = {\n type: this.type,\n size: this.size,\n };\n\n if ( current === this.tempPage ) {\n props.disabled = true;\n }\n\n props.onClick = () => {\n this.onPageInput(current);\n };\n\n return (\n <NButton {...props}>{ current }</NButton>\n );\n },\n\n renderPages()\n {\n let pages = Arr.each(this.pageOptions, (index) => {\n return this.ctor('renderPage')(index);\n });\n\n return (\n <div class=\"n-paginator__pages\">\n { this.ctor('renderFirst')() }\n { this.ctor('renderPrev')() }\n { ...pages }\n { this.ctor('renderNext')() }\n { this.ctor('renderLast')() }\n </div>\n );\n },\n\n renderSlot(view)\n {\n let renderFunction = this.ctor('render' + \n Str.ucfirst(view));\n\n if ( Any.isFunction(renderFunction) ) {\n return renderFunction();\n }\n\n return this.$slots[view] && this.$slots[view]();\n },\n\n render()\n {\n let className = [\n 'n-paginator',\n 'n-paginator--' + this.size,\n 'n-paginator--' + this.type\n ];\n\n return <div class={className}>\n {\n Arr.each(this.layout, (view) => {\n return this.ctor('renderSlot')(view);\n })\n }\n </div>;\n }\n}\n","import { Arr, Any, Obj, Event, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfo',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n syncEvent: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n uid: UUID(),\n elements: [],\n options: [],\n tempValue: this.item,\n };\n },\n\n watch: {\n\n item(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.bindSyncEvent();\n },\n\n beforeUnmount()\n {\n this.unbindSyncEvent();\n },\n\n updated()\n {\n Any.delay(() => {\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.adaptHeight();\n }\n }, 500);\n },\n\n methods: {\n\n bindSyncEvent()\n {\n if ( !this.syncEvent ) {\n return;\n }\n\n this.options = this.syncEvent;\n\n if ( Any.isFunction(this.options) ) {\n this.options = this.options(this);\n }\n\n let syncFunction = (value, uid = null) => {\n if ( uid === this.options[1] ) {\n this.setValue(value);\n }\n };\n\n Event.bind(this.options[0], syncFunction,\n this.uid);\n },\n\n unbindSyncEvent()\n {\n Event.unbind(this.options[0], this.uid);\n },\n\n setValue(value)\n {\n this.$emit('update:modelValue',\n this.tempValue = value);\n },\n\n addColumn(column)\n {\n Arr.add(this.elements,\n column, { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n },\n\n provide()\n {\n return {\n NInfo: this\n };\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={!this.showEmptyIcon} class=\"n-info__empty\">\n {this.$slots.empty && this.$slots.empty() || this.trans('No entry')}\n </NEmptyIcon>\n );\n },\n\n renderBody()\n {\n if ( Any.isEmpty(this.tempValue) ) {\n return this.ctor('renderEmpty')();\n }\n\n let elements = Obj.each(this.elements, (column) => {\n return (\n <div class=\"n-info__column\">\n {column.ctor('renderLabel')({ item: this.tempValue })}\n {column.ctor('renderBody')({ item: this.tempValue })}\n </div>\n );\n });\n\n return (\n <div class=\"n-info__body\">\n {Any.vals(elements)}\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-info',\n 'n-info--' + this.type,\n 'n-info--' + this.size,\n ];\n\n let infoHtml = (\n <NScrollbar ref=\"scrollbar\" relative={this.relative}>\n {this.ctor('renderBody')()}\n </NScrollbar>\n );\n\n return (\n <div class={classList}>\n {[infoHtml, this.$slots.default()]}\n </div>\n );\n }\n}\n","import { UUID, Obj, Locale, Str } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NInfoColumn',\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n uid: UUID()\n };\n },\n\n beforeMount()\n {\n this.NInfo.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NInfo.removeColumn(this);\n },\n\n renderLabel()\n {\n if ( this.$slots.label ) {\n return this.$slots.label();\n }\n \n return (\n <div class=\"n-info-column\">\n <span>{this.label}</span>\n </div>\n );\n },\n\n renderBody(props)\n {\n let passed = Obj.except(props, [], {\n column: this\n });\n\n let component = resolveComponent('NInfoField' + \n Str.ucfirst(this.type));\n\n if ( ! component ) {\n return null;\n }\n\n passed.class = [\n 'n-info-field',\n 'n-info-field--' + this.type\n ];\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n render()\n {\n return (\n <div>\n <span>{ this.input }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldString',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertString(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldBoolean',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertBoolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldDatetime',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertDatetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldOption',\n\n extends: InfoField,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Any.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n let prop = this.column.optionsValue;\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let input = ! Any.isObject(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import InfoField from \"../info-field.jsx\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfoFieldImage',\n\n extends: InfoField,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let props = {\n fit: 'contain',\n };\n\n return (\n <div>\n <NPreview file={this.preview || this.input} thumb={this.input} {...props} />\n </div>\n );\n }\n\n}\n","import { Obj, Arr, Any, Dom } from \"@kizmann/pico-js\";\n\nconst fileMap = {\n image: [\n 'jpg', 'jpeg', 'gif', 'svg', 'png'\n ],\n video: [\n 'mp4', 'webm', 'mov'\n ],\n font: [\n 'woff', 'ttf', 'otf'\n ],\n text: [\n 'csv', 'txt', 'html'\n ],\n application: [\n 'pdf', 'doc', 'xls'\n ]\n}\n\nexport default {\n\n name: 'NPreview',\n\n props: {\n\n file: {\n default()\n {\n return null;\n }\n },\n\n thumb: {\n default()\n {\n return null;\n }\n },\n\n fit: {\n default()\n {\n return 'cover';\n },\n type: [String]\n },\n\n mime: {\n default()\n {\n return null;\n },\n typre: [String]\n },\n\n preview: {\n default()\n {\n return true;\n },\n typre: [Boolean]\n },\n\n showSrc: {\n default()\n {\n return true;\n },\n typre: [Boolean]\n },\n\n map: {\n default()\n {\n return fileMap;\n },\n type: [Object]\n }\n\n },\n\n computed: {\n\n tempFile()\n {\n return this.file || this.thumb;\n },\n\n tempThumb()\n {\n return this.thumb || this.file;\n },\n\n fileMime()\n {\n return this.getFileMime();\n },\n\n thumbMime()\n {\n return this.getThumbMime();\n },\n\n },\n\n data()\n {\n return {\n lightbox: false, load: false\n };\n },\n\n methods: {\n\n getFileMime(fallback = null)\n {\n let file = Obj.get(this.tempFile, 'name',\n this.tempFile);\n\n if ( Any.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = file.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n Obj.each(this.map, (exts, key) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n if ( window.resolveVimeo(file) ) {\n fallback = 'video';\n }\n\n if ( window.resolveYoutube(file) ) {\n fallback = 'video';\n }\n\n if ( Any.isString(this.mime) ) {\n fallback = this.mime;\n }\n\n return fallback;\n },\n\n getThumbMime(fallback = null)\n {\n if ( Any.isString(this.mime) ) {\n return this.mime;\n }\n\n let file = Obj.get(this.tempThumb, 'name',\n this.tempThumb);\n\n if ( Any.isEmpty(file) ) {\n return fallback;\n }\n\n let extension = file.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n Obj.each(this.map, (exts, key) => {\n if ( Arr.has(exts, extension) ) fallback = key;\n });\n\n return fallback;\n },\n\n showLightbox()\n {\n this.lightbox = true;\n },\n\n },\n\n renderPreview()\n {\n if ( ! this.preview ) {\n return this.ctor('renderFull')();\n }\n\n if ( this.thumbMime === 'image' ) {\n return (<NPreviewImage src={this.tempThumb} />);\n }\n\n let props = {\n type: this.thumbMime,\n showSrc: false,\n }\n\n return (<NPreviewPlain src={this.tempThumb} {...props} />);\n },\n\n renderFull()\n {\n let isObject = Any.isObject(this.tempFile);\n\n if ( this.fileMime === 'image' ) {\n return (<NPreviewImage src={this.tempFile} />);\n }\n\n if ( this.fileMime === 'video' && ! isObject ) {\n return (<NPreviewVideo src={this.tempFile} />);\n }\n\n let props = {\n type: this.thumbMime,\n showSrc: this.showSrc,\n }\n\n return (<NPreviewPlain src={this.tempFile} {...props} />);\n },\n\n renderLightbox()\n {\n if ( ! this.lightbox || ! this.preview ) {\n return null;\n }\n\n let slots = {\n raw: this.ctor('renderFull')\n }\n\n let props = {\n type: 'preview',\n width: '80%',\n height: '90%',\n }\n\n return (<NModal vModel={this.lightbox} {...props} v-slots={slots} />);\n },\n\n render()\n {\n let classList = [\n 'n-preview',\n 'n-preview--' + this.fit\n ];\n\n if ( this.preview ) {\n classList.push('n-clickable');\n }\n\n if ( this.fileMime ) {\n classList.push('n-mime-' + this.fileMime);\n }\n\n let props = {};\n\n if ( this.preview ) {\n props.onClick = this.showLightbox;\n }\n\n let key = btoa(this.tempThumb);\n\n return (\n <div key={key} class={classList} {...props}>\n { [this.ctor('renderPreview')(), this.ctor('renderLightbox')()] }\n </div>\n );\n }\n\n}","import { Any, Obj, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewPlain',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return null;\n }\n },\n\n showSrc: {\n default()\n {\n return true;\n }\n }\n\n },\n\n computed: {\n\n tempSrc()\n {\n return Obj.get(this.src, 'name', this.src);\n },\n\n tempExt()\n {\n let regex = /^.*?\\.([^.?]+)(\\?.*?)?$/;\n\n if ( Any.isEmpty(this.tempSrc) ) {\n return null;\n }\n\n return this.tempSrc.replace(regex, '$1');\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-preview-plain'\n ];\n\n let slots = [];\n\n slots[0] = (\n <li>{ this.type || Locale.trans('plain') }/{ this.tempExt || Locale.trans('none') }</li>\n );\n\n if ( this.showSrc ) {\n slots[1] = (<li>{ this.tempSrc }</li>);\n }\n\n return (\n <div class={classList}>\n <ul>{ slots }</ul>\n </div>\n );\n }\n\n}","import { Obj, Arr, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewImage',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n load: false, tempSrc: null\n };\n },\n\n beforeMount()\n {\n if ( ! window.ImageCache ) {\n window.ImageCache = [];\n }\n\n\n if ( ! Arr.has(window.ImageCache, this.src) ) {\n this.tempSrc = this.src;\n }\n\n },\n\n mounted()\n {\n this.resolveLoad();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveLoad();\n }\n\n },\n\n methods: {\n\n resolveLoad()\n {\n if ( Arr.has(window.ImageCache, this.src) ) {\n return;\n }\n\n this.tempSrc = null;\n\n if ( Any.isObject(this.src) ) {\n return this.resolveData();\n }\n\n Dom.find(this.$refs.image).loaded(() => {\n\n /**\n * Add image to cache\n */\n Arr.add(window.ImageCache, this.src);\n\n /**\n * Mark image as loaded\n */\n Any.delay(() => this.load = false, 200);\n });\n\n this.laod = true;\n },\n\n resolveData()\n {\n let reader = new FileReader();\n\n reader.onload = () => {\n this.tempSrc = reader.result;\n };\n\n reader.readAsDataURL(this.src);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-preview-image'\n ];\n\n if ( Arr.has(window.ImageCache, this.src) ) {\n classList.push('n-cached');\n }\n\n if ( ! this.load ) {\n classList.push('n-ready');\n }\n\n return (\n <div class={classList}>\n <img ref=\"image\" src={this.tempSrc || this.src} />\n </div>\n );\n }\n\n}","import { Obj, Arr, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nwindow.resolveYoutube = function(url, fallback = null) {\n\n if ( ! Any.isString(url) ) {\n return fallback;\n }\n\n let host = url.match(/^https?:\\/\\/(www\\.)?(youtube\\.com|youtu\\.be)/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let id = url.match(/(\\?v=.*?)(?=&|$)/);\n\n if ( id && id.length === 2 ) {\n return id[0].replace(/^\\?v=/, '');\n }\n\n let path = url.match(/(\\.be\\/.*?)(?=\\?|$)/);\n\n if ( path && path.length === 2 ) {\n return path[0].replace(/^\\.be\\//, '');\n }\n\n let frame = url.match(/(\\/embed\\/)(.*?$)/);\n\n if ( frame && frame.length === 3 ) {\n return frame[0].replace(/^\\/embed\\//, '');\n }\n\n return fallback;\n}\n\nwindow.resolveVimeo = function(url, fallback = null) {\n\n if ( ! Any.isString(url) ) {\n return fallback;\n }\n\n let host = url.match(/^https?:\\/\\/(www\\.|player\\.)?vimeo\\.com/);\n\n if ( ! host ) {\n return fallback;\n }\n\n let path = url.match(/(\\/[0-9]+)(&|$)/);\n\n if ( path && path.length === 3 ) {\n return path[0].replace(/(^\\/|&$)/, '');\n }\n\n return fallback;\n}\n\nexport default {\n\n name: 'NPreviewVideo',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n provider: 'plain', unique: null, tempSrc: null\n };\n },\n\n mounted()\n {\n this.resolveType();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveType();\n }\n\n },\n\n methods: {\n\n resolveType()\n {\n this.tempSrc = null;\n\n if ( this.resolveYoutube() ) {\n return;\n }\n\n if ( this.resolveVimeo() ) {\n return;\n }\n\n if ( Any.isObject(this.src) ) {\n this.resolveData();\n }\n\n this.provider = 'plain';\n },\n\n resolveData()\n {\n console.log('Coming at some point (blob stream)....');\n },\n\n resolveYoutube()\n {\n let youtube = window.resolveYoutube(this.src);\n\n if ( ! youtube ) {\n return false;\n }\n\n this.provider = 'youtube';\n\n this.$emit('resolve:youtube', this.unique = youtube);\n\n return true;\n },\n\n resolveVimeo()\n {\n let vimeo = window.resolveVimeo(this.src);\n\n if ( ! vimeo ) {\n return false;\n }\n\n this.provider = 'vimeo';\n\n this.$emit('resolve:vimeo', this.unique = vimeo);\n\n return true;\n }\n\n },\n\n renderYoutube()\n {\n let props = {\n src: `https://www.youtube.com/embed/${this.unique}`\n };\n\n return (\n <iframe {...props}></iframe>\n );\n },\n\n renderVimeo()\n {\n let props = {\n src: `https://player.vimeo.com/video/${this.unique}`\n };\n\n return (\n <iframe {...props}></iframe>\n );\n },\n\n renderPlain()\n {\n let src = Obj.get(this.src, 'name', this.src);\n\n let extension = src.replace(/^.*?\\.([^.?]+)(\\?.*?)?$/,\n '$1');\n\n return (\n <video width=\"320\" height=\"240\" controls>\n <source src={this.tempSrc || this.src} type={`video/${extension}`} />\n </video>\n );\n },\n\n render()\n {\n let classList = [\n 'n-preview-video'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('render' + Str.ucfirst(this.provider))() }\n </div>\n );\n }\n\n}","import { Arr, Map, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMap',\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n zoom: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NMap: this\n };\n },\n\n data()\n {\n return { init: false, callbacks: [], tempMap: null };\n },\n\n watch: {\n\n lat()\n {\n Any.delay(() => this.tempMap.focusMarkers(), 100);\n },\n\n lng()\n {\n Any.delay(() => this.tempMap.focusMarkers(), 100);\n }\n\n },\n\n mounted()\n {\n this.tempMap = new Map(this.$el, {\n lat: this.lat, lng: this.lng, zoom: this.zoom\n });\n\n this.init = true;\n\n Arr.each(this.callbacks, (callback) => callback())\n },\n\n methods: {\n\n getMap()\n {\n return this.tempMap;\n },\n\n onMount(callback)\n {\n this.init ? callback() : this.callbacks.push(callback);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-map'\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { UUID, Obj, Num, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMapMarker',\n\n inject: {\n\n NMap: {\n default: undefined\n }\n\n },\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n drag: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n options: {\n default()\n {\n return { style: 'default' };\n },\n type: [Object]\n },\n\n },\n\n data()\n {\n return {\n id: UUID(), tempMarker: null\n };\n },\n\n methods: {\n\n importMarkerPosition()\n {\n this.tempMarker.marker.setPosition({\n lat: this.lat, lng: this.lng\n });\n },\n\n updateMarkerPosition()\n {\n this.$emit('update:lat', this.tempMarker.marker.getPosition().lat());\n this.$emit('update:lng', this.tempMarker.marker.getPosition().lng());\n },\n\n initializeMarker()\n {\n let options = Obj.assign({\n lat: Num.float(this.lat), lng: Num.float(this.lng), draggable: this.drag\n }, this.options);\n\n if ( ! Any.isEmpty(this.$slots.default) ) {\n options.html = this.$el.innerHTML;\n }\n\n this.tempMarker = this.NMap.getMap().createMarker(this.id, options);\n\n this.tempMarker.marker.addListener('position_changed',\n Any.debounce(this.updateMarkerPosition));\n\n this.tempMarker.marker.addListener('dragstart',\n () => this.$emit('dragstart', this.tempMarker));\n\n this.tempMarker.marker.addListener('dragend',\n () => this.$emit('dragend', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseover',\n () => this.$emit('mouseenter', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseout',\n () => this.$emit('mouseleave', this.tempMarker));\n },\n\n setMarkerByAddress(address)\n {\n let successClosure = () => {\n this.NMap.getMap().focusMarkers(null, this.NMap.zoom);\n };\n\n let errorClosure = () => {\n this.Notify(this.trans('Address not found.'), 'danger');\n };\n\n this.NMap.getMap().setMarkerByAddress(this.id, address)\n .then(successClosure, errorClosure);\n }\n\n },\n\n watch: {\n\n lat()\n {\n this.importMarkerPosition();\n },\n\n lng()\n {\n this.importMarkerPosition();\n }\n\n },\n\n beforeMount()\n {\n this.NMap.onMount(this.initializeMarker);\n },\n\n render()\n {\n return (\n <div style=\"display: none;\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFile',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n multiple: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n clearable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n clearableIcon: {\n default()\n {\n return nano.Icons.times;\n },\n type: [String]\n },\n\n buttonText: {\n default()\n {\n return Locale.trans('Select file');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n },\n\n tempValue()\n {\n if ( Any.isEmpty(this.tempValue) ) {\n this.$refs.input.value = null;\n }\n }\n\n },\n\n methods: {\n\n openContext()\n {\n this.$refs.input.click();\n },\n\n updateFile()\n {\n let tempValue = [\n ...this.$refs.input.files\n ];\n\n if ( ! this.multiple ) {\n tempValue = tempValue[0];\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n },\n\n clearFile()\n {\n this.$emit('update:modelValue', null);\n }\n\n },\n\n renderInput()\n {\n let props = {\n size: this.size,\n disabled: true,\n iconDisabled: false,\n };\n\n props['onIconClick'] = this.clearFile;\n\n if ( ! this.multiple ) {\n props.modelValue = Obj.get(this.tempValue, 'name');\n }\n\n if ( this.multiple ) {\n props.modelValue = Locale.choice(':count File|:count Files',\n this.tempValue.length);\n }\n\n if ( this.clearable && !Any.isEmpty(this.tempValue) ) {\n props.icon = this.clearableIcon;\n }\n\n return (\n <NInput {...props}>\n { /* Input field for text */ }\n </NInput>\n );\n },\n\n renderButton()\n {\n let props = {\n size: this.size,\n disabled: this.disabled,\n icon: this.icon,\n onClick: this.openContext\n };\n\n return (\n <NButton {...props}>{this.buttonText}</NButton>\n );\n },\n\n renderHidden()\n {\n let props = {\n 'onInput': this.updateFile\n };\n\n return (\n <div class=\"n-file__input\">\n <input ref=\"input\" type=\"file\" multiple={this.multiple} {...props}></input>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-file'\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderInput')() }\n { this.ctor('renderButton')() }\n { this.ctor('renderHidden')() }\n </div>\n )\n }\n\n}\n","import { Num, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRating',\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n steps: {\n default()\n {\n return 0.5;\n },\n type: [Number]\n },\n\n fixed: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n choice: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n virtualValue()\n {\n return Num.fixed(1 / this.max * this.modelValue * 5, this.fixed);\n },\n\n },\n\n renderStars()\n {\n let stars = [\n 1, 2, 3, 4, 5\n ];\n\n return Arr.each (stars, (rate) => {\n\n let className = 'is-null';\n\n if ( this.virtualValue >= rate - 0.5 ) {\n className = 'is-half';\n }\n\n if ( this.virtualValue >= rate ) {\n className = 'is-full';\n }\n\n return (\n <span class={className}></span>\n );\n });\n },\n\n renderValue()\n {\n let vars = {\n value: Num.format(this.modelValue, '.', '', this.fixed)\n };\n\n if ( this.$slots.default ) {\n return this.$slots.default(vars);\n }\n\n return Locale.choice(this.choice, this.modelValue, vars);\n },\n\n render()\n {\n let classList = [\n 'n-rating',\n 'n-rating--' + this.size,\n 'n-rating--' + this.type\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-rating__stars\">\n {this.ctor('renderStars')()}\n </div>\n <div class=\"n-rating__value\">\n {this.ctor('renderValue')()}\n </div>\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\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 type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n closable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n tempValue()\n {\n this.startRefreshTimeout();\n }\n\n },\n\n provide()\n {\n return {\n NDrawer: this\n };\n },\n\n data()\n {\n return {\n target: null, tempValue: false\n };\n },\n\n mounted()\n {\n this.target = Dom.find(this.selector || this.$el)\n .previous().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showDrawer = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Any.delay(showDrawer, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeDrawer(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-drawer',\n window.zIndex);\n\n Dom.find(this.$el).css({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeDrawer(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-drawer');\n };\n\n let indexes = Dom.find('.n-drawer:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-drawer');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeDrawer(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeDrawer(false, 'escape')\n };\n\n return (\n <div class=\"n-drawer__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__header\">\n { [this.$slots.header && this.$slots.header({ closeDrawer: this.closeDrawer }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__footer\">\n { this.$slots.footer({ closeDrawer: this.closeDrawer }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-drawer__wrap\">\n { this.$slots.default && this.$slots.default({ closeDrawer: this.closeDrawer }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeDrawer: this.closeDrawer });\n }\n\n return (\n <div class=\"n-drawer__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-drawer__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n 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.type,\n 'n-drawer--' + this.position\n ];\n\n if ( this.tempValue ) {\n this.queueRefreshTimeout();\n }\n\n if ( this.renderClose ) {\n classList.push('n-closable');\n }\n\n if ( ! this.tempValue ) {\n classList.push('n-hidden');\n }\n\n let innerHtml = null;\n\n if ( this.tempValue ) {\n innerHtml = this.ctor('renderFrame')();\n }\n\n return (\n <div class={classList}>\n { [innerHtml, this.ctor('renderBackdrop')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Dom, Locale } from \"@kizmann/pico-js\";\n\nimport CtorMixin from \"./mixins/src/ctor.js\";\nimport CmerMixin from \"./mixins/src/cmer.js\";\nimport CsloMixin from \"./mixins/src/cslo.js\";\n\nimport Alert from \"./alert/index.js\";\nimport Notification from \"./notification/index.js\";\nimport Empty from \"./empty/index.js\";\nimport Config from \"./config/index.js\";\nimport Scrollbar from \"./scrollbar/index.js\";\nimport Virtualscroller from \"./virtualscroller/index.js\";\nimport Draggable from \"./draggable/index.js\";\nimport Loader from \"./loader/index.js\";\nimport Resizer from \"./resizer/index.js\";\nimport Popover from \"./popover/index.js\";\nimport Modal from \"./modal/index.js\";\nimport Button from \"./button/index.js\";\nimport Input from \"./input/index.js\";\nimport InputNumber from \"./input-number/index.js\";\nimport Textarea from \"./textarea/index.js\";\nimport Select from \"./select/index.js\";\nimport Checkbox from \"./checkbox/index.js\";\nimport Radio from \"./radio/index.js\";\nimport Slider from \"./slider/index.js\";\nimport Switch from \"./switch/index.js\";\nimport Confirm from \"./confirm/index.js\";\nimport Cascader from \"./cascader/index.js\";\nimport Datepicker from \"./datepicker/index.js\";\nimport Timepicker from \"./timepicker/index.js\";\nimport Datetimepicker from \"./datetimepicker/index.js\";\nimport Durationpicker from \"./durationpicker/index.js\";\nimport Transfer from \"./transfer/index.js\";\nimport Form from \"./form/index.js\";\nimport Tabs from \"./tabs/index.js\";\nimport Tags from \"./tags/index.js\";\nimport Collapse from \"./collapse/index.js\";\nimport Table from \"./table/index.js\";\nimport Paginator from \"./paginator/index.js\";\nimport Info from \"./info/index.js\";\nimport Preview from \"./preview/index.js\";\nimport Map from \"./map/index.js\";\nimport File from \"./file/index.js\";\nimport Rating from \"./rating/index.js\";\nimport Drawer from \"./drawer/index.js\";\n\nconst NanoImports = [\n Alert,\n Notification,\n Empty,\n Config,\n Scrollbar,\n Virtualscroller,\n Draggable,\n Loader,\n Resizer,\n Popover,\n Modal,\n Button,\n Input,\n InputNumber,\n Textarea,\n Select,\n Checkbox,\n Radio,\n Slider,\n Switch,\n Confirm,\n Cascader,\n Datepicker,\n Timepicker,\n Datetimepicker,\n Durationpicker,\n Transfer,\n Form,\n Tabs,\n Tags,\n Collapse,\n Table,\n Paginator,\n Info,\n Preview,\n Map,\n File,\n Rating,\n Drawer\n];\n\nexport const Icons = {\n handle: 'fa fa-ellipsis-v',\n checked: 'fa fa-check',\n circle: 'fa fa-circle',\n intermediate: 'fa fa-minus',\n clock: 'fa fa-clock',\n calendar: 'fa fa-calendar',\n times: 'fa fa-times',\n primary: 'fa fa-info-circle',\n success: 'fa fa-check-circle',\n warning: 'fa fa-exclamation-circle',\n danger: 'fa fa-times-circle',\n info: 'fa fa-info-circle',\n angleUp: 'fa fa-angle-up',\n angleRight: 'fa fa-angle-right',\n angleDown: 'fa fa-angle-down',\n angleLeft: 'fa fa-angle-left',\n angleDoubleLeft: 'fa fa-angle-double-left',\n angleDoubleRight: 'fa fa-angle-double-right'\n};\n\nexport const Settings = {\n iconPosition: 'before',\n notifySize: 'md',\n notifyPosition: 'bottom-start'\n};\n\nexport function Install(App, Icons = {}, Settings = {})\n{\n /**\n * @const window.pi\n */\n\n if ( typeof window.pi === 'undefined' ) {\n return console.error('pico-js is not available.');\n }\n\n Obj.each(window.pi, (value, key) => {\n App.config.globalProperties[key] = value;\n });\n\n App.config.globalProperties.ctor = CtorMixin.ctor;\n App.config.globalProperties.cmer = CmerMixin.cmer;\n App.config.globalProperties.cslo = CsloMixin.cslo;\n\n App.config.globalProperties.trans = Locale.trans;\n App.config.globalProperties.choice = Locale.choice;\n\n window.nano.Icons = Obj.assign(window.nano.Icons, Icons);\n window.nano.Settings = Obj.assign(window.nano.Settings, Settings);\n\n Arr.each(NanoImports, (NanoModule) => {\n NanoModule(App);\n });\n\n // require('./chart/index.js'); // Ignore\n // require('./wysiwyg/index.js'); // Ignore\n}\n\nexport const Nano = {\n Icons: Icons, Settings: Settings, Install: Install\n};\n\nwindow.keyMods = [];\n\nDom.find(document).on('keydown', (event) => {\n Arr.add(window.keyMods, event.which);\n});\n\nDom.find(document).on('keyup', (event) => {\n Arr.remove(window.keyMods, event.which);\n});\n\nDom.find(document).on('dragstart', (event) => {\n Arr.add(window.keyMods, event.which);\n});\n\nDom.find(document).on('dragend', (event) => {\n window.keyMods = [];\n});\n\nif ( typeof window.nano === 'undefined' ) {\n window.nano = Nano;\n}\n\nexport default Nano;\n","export default function (App) {\n import(\"./src/alert/alert.js\").then(({ Alert }) => {\n App.config.globalProperties[Alert.alias] = window[Alert.alias] = Alert.handle;\n });\n}\n","export default function (App) {\n import(\"./src/notification/notification.js\").then(({ Notify }) => {\n App.config.globalProperties[Notify.alias] = window[Notify.alias] = Notify.handle;\n });\n}\n","import EmptyIcon from \"./src/empty-icon/empty-icon.jsx\";\n\nexport default function (App) {\n App.component(EmptyIcon.name, EmptyIcon);\n}\n","import NConfig from \"./src/config/config.jsx\";\nimport NConfigNext from \"./src/config/config-next.jsx\";\nimport NBuilder from \"./src/builder/builder.jsx\";\nimport NRefrencePanel from \"./src/reference-panel/reference-panel.jsx\";\nimport NRefrencePicker from \"./src/reference-picker/reference-picker.jsx\";\n\nexport default function(App) {\n App.component(NConfig.name, NConfig);\n App.component(NConfigNext.name, NConfigNext);\n App.component(NBuilder.name, NBuilder);\n App.component(NRefrencePanel.name, NRefrencePanel);\n App.component(NRefrencePicker.name, NRefrencePicker);\n}\n","import Scrollbar from \"./src/scrollbar/scrollbar.jsx\";\n\nexport default function (App) {\n App.component(Scrollbar.name, Scrollbar);\n}","import Virtualscroller from \"./src/virtualscroller/virtualscroller.jsx\";\n\nexport default function (App) {\n App.component(Virtualscroller.name, Virtualscroller);\n}","import Draglist from \"./src/draglist/draglist.jsx\";\nimport DraglistItem from \"./src/draglist-item/draglist-item.jsx\";\nimport Draggrid from \"./src/draggrid/draggrid.jsx\";\nimport DraggridItem from \"./src/draggrid-item/draggrid-item.jsx\";\nimport Dropzone from \"./src/dropzone/dropzone.jsx\";\n\nexport default function (App) {\n App.component(Draglist.name, Draglist);\n App.component(DraglistItem.name, DraglistItem);\n App.component(Draggrid.name, Draggrid);\n App.component(DraggridItem.name, DraggridItem);\n App.component(Dropzone.name, Dropzone);\n}","import Loader from \"./src/loader/loader.jsx\";\n\nexport default function (App) {\n App.component(Loader.name, Loader);\n}\n","import Resizer from \"./src/resizer/resizer.jsx\";\n\nexport default function (App) {\n App.component(Resizer.name, Resizer);\n}\n","import Popover from \"./src/popover/popover.jsx\";\nimport PopoverGroup from \"./src/popover-group/popover-group.jsx\";\nimport PopoverOption from \"./src/popover-option/popover-option.jsx\";\n\nexport default function (App) {\n App.component(Popover.name, Popover);\n App.component(PopoverGroup.name, PopoverGroup);\n App.component(PopoverOption.name, PopoverOption);\n}","import Modal from \"./src/modal/modal.jsx\";\n\nexport default function (App) {\n App.component(Modal.name, Modal);\n}\n","import Button from \"./src/button/button.jsx\";\nimport ButtonGroup from \"./src/button-group/button-group.jsx\";\n\nexport default function (App) {\n App.component(Button.name, Button);\n App.component(ButtonGroup.name, ButtonGroup);\n}\n","import Input from \"./src/input/input.jsx\";\n\nexport default function (App) {\n App.component(Input.name, Input);\n}\n","import InputNumber from \"./src/input-number/input-number.jsx\";\n\nexport default function (App) {\n App.component(InputNumber.name, InputNumber);\n}","import Textarea from \"./src/textarea/textarea.jsx\";\n\nexport default function (App) {\n App.component(Textarea.name, Textarea);\n}","import Select from \"./src/select/select.jsx\";\nimport SelectOption from \"./src/select-option/select-option.jsx\";\n\nexport default function (App) {\n App.component(Select.name, Select);\n App.component(SelectOption.name, SelectOption);\n}\n","import Checkbox from \"./src/checkbox/checkbox.jsx\";\nimport CheckboxGroup from \"./src/checkbox-group/checkbox-group.jsx\";\n\nexport default function (App) {\n App.component(Checkbox.name, Checkbox);\n App.component(CheckboxGroup.name, CheckboxGroup);\n}","import NRadio from \"./src/radio/radio.jsx\";\nimport NRadioGroup from \"./src/radio-group/radio-group.jsx\";\n\nexport default function (App) {\n App.component(NRadio.name, NRadio);\n App.component(NRadioGroup.name, NRadioGroup);\n}\n","import Slider from \"./src/slider/slider.jsx\";\n\nexport default function (App) {\n App.component(Slider.name, Slider);\n}","import Switch from \"./src/switch/switch.jsx\";\n\nexport default function (App) {\n App.component(Switch.name, Switch);\n}","import Confirm from \"./src/confirm/confirm.jsx\";\n\nexport default function (App) {\n App.component(Confirm.name, Confirm);\n}\n","import CascaderPanel from \"./src/cascader-panel/cascader-panel.jsx\";\nimport Cascader from \"./src/cascader/cascader.jsx\";\n\nexport default function (App) {\n App.component(CascaderPanel.name, CascaderPanel);\n App.component(Cascader.name, Cascader);\n}","import DatepickerPanel from \"./src/datepicker-panel/datepicker-panel.jsx\";\nimport Datepicker from \"./src/datepicker/datepicker.jsx\";\n\nexport default function (App) {\n App.component(DatepickerPanel.name, DatepickerPanel);\n App.component(Datepicker.name, Datepicker);\n}","import TimepickerPanel from \"./src/timepicker-panel/timepicker-panel.jsx\";\nimport Timepicker from \"./src/timepicker/timepicker.jsx\";\n\nexport default function (App) {\n App.component(TimepickerPanel.name, TimepickerPanel);\n App.component(Timepicker.name, Timepicker);\n}","import Datetimepicker from \"./src/datetimepicker/datetimepicker.jsx\";\n\nexport default function (App) {\n App.component(Datetimepicker.name, Datetimepicker);\n}","import Durationpicker from \"./src/durationpicker/durationpicker.jsx\";\n\nexport default function (App) {\n App.component(Durationpicker.name, Durationpicker);\n}","import Transfer from \"./src/transfer/transfer.jsx\";\n\nexport default function (App) {\n App.component(Transfer.name, Transfer);\n}","import Form from \"./src/form/form.jsx\";\nimport FormGroup from \"./src/form-group/form-group.jsx\";\nimport FormItem from \"./src/form-item/form-item.jsx\";\nimport FormFrame from \"./src/form-frame/form-frame.jsx\";\n\nexport default function (App) {\n App.component(Form.name, Form);\n App.component(FormGroup.name, FormGroup);\n App.component(FormItem.name, FormItem);\n App.component(FormFrame.name, FormFrame);\n}","import Tabs from \"./src/tabs/tabs.jsx\";\nimport TabsItem from \"./src/tabs-item/tabs-item.jsx\";\n\nexport default function (App) {\n App.component(Tabs.name, Tabs);\n App.component(TabsItem.name, TabsItem);\n}","import Tags from \"./src/tags/tags.jsx\";\nimport TagsItem from \"./src/tags-item/tags-item.jsx\";\n\nexport default function (App) {\n App.component(Tags.name, Tags);\n App.component(TagsItem.name, TagsItem);\n}","import Collapse from \"./src/collapse/collapse.jsx\";\nimport CollapseItem from \"./src/collapse-item/collapse-item.jsx\";\n\nexport default function (App) {\n App.component(Collapse.name, Collapse);\n App.component(CollapseItem.name, CollapseItem);\n}","import Table from \"./src/table/table.jsx\";\nimport TableColumn from \"./src/table-column/table-column.jsx\";\nimport TableCellString from \"./src/table-cell/types/table-cell-string.jsx\";\nimport TableCellBoolean from \"./src/table-cell/types/table-cell-boolean.jsx\";\nimport TableCellDatetime from \"./src/table-cell/types/table-cell-datetime.jsx\";\nimport TableCellOption from \"./src/table-cell/types/table-cell-option.jsx\";\nimport TableCellImage from \"./src/table-cell/types/table-cell-image.jsx\";\nimport TableCellMatrix from \"./src/table-cell/types/table-cell-matrix.jsx\";\nimport TableCellSelect from \"./src/table-cell/types/table-cell-select.jsx\";\nimport TableFilterString from \"./src/table-filter/types/table-filter-string.jsx\";\nimport TableFilterBoolean from \"./src/table-filter/types/table-filter-boolean.jsx\";\nimport TableFilterDatetime from \"./src/table-filter/types/table-filter-datetime.jsx\";\nimport TableFilterOption from \"./src/table-filter/types/table-filter-option.jsx\";\n\n\nexport default function (App) {\n App.component(Table.name, Table);\n App.component(TableColumn.name, TableColumn);\n App.component(TableCellString.name, TableCellString);\n App.component(TableCellBoolean.name, TableCellBoolean);\n App.component(TableCellDatetime.name, TableCellDatetime);\n App.component(TableCellOption.name, TableCellOption);\n App.component(TableCellImage.name, TableCellImage);\n App.component(TableCellMatrix.name, TableCellMatrix);\n App.component(TableCellSelect.name, TableCellSelect);\n App.component(TableFilterString.name, TableFilterString);\n App.component(TableFilterBoolean.name, TableFilterBoolean);\n App.component(TableFilterDatetime.name, TableFilterDatetime);\n App.component(TableFilterOption.name, TableFilterOption);\n}","import Paginator from \"./src/paginator/paginator.jsx\";\n\nexport default function (App) {\n App.component(Paginator.name, Paginator);\n}","import Info from \"./src/info/info.jsx\";\nimport InfoColumn from \"./src/info-column/info-column.jsx\";\nimport InfoFieldString from \"./src/info-field/types/info-field-string.jsx\";\nimport InfoFieldBoolean from \"./src/info-field/types/info-field-boolean.jsx\";\nimport InfoFieldDatetime from \"./src/info-field/types/info-field-datetime.jsx\";\nimport InfoFieldOption from \"./src/info-field/types/info-field-option.jsx\";\nimport InfoFieldImage from \"./src/info-field/types/info-field-image.jsx\";\n\nexport default function (App) {\n App.component(Info.name, Info);\n App.component(InfoColumn.name, InfoColumn);\n App.component(InfoFieldString.name, InfoFieldString);\n App.component(InfoFieldBoolean.name, InfoFieldBoolean);\n App.component(InfoFieldDatetime.name, InfoFieldDatetime);\n App.component(InfoFieldOption.name, InfoFieldOption);\n App.component(InfoFieldImage.name, InfoFieldImage);\n}","import Preview from \"./src/preview/preview.jsx\";\nimport PreviewPlain from \"./src/preview-plain/preview-plain.jsx\";\nimport PreviewImage from \"./src/preview-image/preview-image.jsx\";\nimport PreviewVideo from \"./src/preview-video/preview-video.jsx\";\n\nexport default function (App) {\n App.component(Preview.name, Preview);\n App.component(PreviewPlain.name, PreviewPlain);\n App.component(PreviewImage.name, PreviewImage);\n App.component(PreviewVideo.name, PreviewVideo);\n}\n\n","import Map from \"./src/map/map.jsx\";\nimport MapMarker from \"./src/map-marker/map-marker.jsx\";\n\nexport default function (App) {\n App.component(Map.name, Map);\n App.component(MapMarker.name, MapMarker);\n}\n\n","import File from \"./src/file/file.jsx\";\n\nexport default function (App) {\n App.component(File.name, File);\n}\n\n","import Rating from \"./src/rating/rating.jsx\";\n\nexport default function (App) {\n App.component(Rating.name, Rating);\n}\n","import Modal from \"./src/drawer/drawer.jsx\";\n\nexport default function (App) {\n App.component(Modal.name, Modal);\n}\n"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__55__","__WEBPACK_EXTERNAL_MODULE__122__","window","NanoBuilderTypes","Locale","trans","NanoBuilderIndexies","childs","props","modelValue","for","type","onValue","offValue","onType","options","NanoPrototypeTypes","offType","size","NanoPrototypeSizes","disabled","NanoPrototypeBools","default","clearValue","clearable","min","max","Number","MAX_VALUE","stepSize","precision","placeholder","format","decimals","Notification","_createClass","text","arguments","length","undefined","_classCallCheck","_defineProperty","duration","defaultIcons","iconPrimary","nano","Icons","info","iconSecondary","iconSuccess","success","iconWarning","warning","iconDanger","danger","iconInfo","this","Obj","assign","render","key","value","get","Str","ucfirst","_this","el","document","body","appendTo","setTimeout","addClass","remove","_this2","classList","Dom","make","join","onclick","icon","getIcon","html","Notify","_len","args","Array","_key","uid","create","apply","concat","wrapper","getWrapper","notifications","append","UUID","_len2","_key2","_construct","zIndex","style","position","find","empty","css","Settings","notifySize","notifyPosition","link","square","iconPosition","nativeType","click","label","iconDisabled","iconClick","AlertFrame","on","event","which","off","Alert","backdrop","onClick","frame","Any","isEmpty","alert","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","Object","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","ctor","fallback","$options","split","cmer","attrsList","isString","isArray","Arr","each","isPlain","$attrs","cslo","slot","$slots","findIndex","Comment","name","String","Boolean","inline","push","_createVNode","config","scope","data","tempValue","methods","solveAwait","match","has","$$scope","$$value","solveValue","isFunction","solveEvent","$configRefs","$refs","solveContent","_len3","_key3","$render","prepareValue","veModel","path","deepSet","inputClosure","closure","keys","val","shift","set","watch","renderLayer","source","setup","component","replace","vIf","vShow","vAwait","class","$on","$props","display","model","map","input","content","slots","resolved","resolveComponent","h","extraValue","sempValue","getString","final","propAwait","result","state","getState","propExists","exists","solveInput","sources","$scope","$model","$extra","$global","toPropKey","splits","lcfirst","toEventKey","cb","solveContext","_this3","console","error","getProp","getInput","isNull","setInput","renderSetup","alias","_this4","defaultsBind","binds","events","updateKey","renderSlot","callback","_this5","_this6","_isSlot","s","toString","_isVNode","NanoBuilderPropType","NanoBuilderPropCode","NanoBuilderProps","renderDemo","renderExport","init","demo","collapse","safevar","normalizeModel","mounted","exportJson","JSON","stringify","clone","matches","exportExecutable","Function","normalizeChild","order","vals","child","applyProps","_objectSpread","except","builder","buildProps","first","_typeof","getOriginalValue","safevalue","btoa","getSafeValue","string","getRealValue","realvalue","code","number","parse","atob","original","changeElement","update","newKey","unset","k","changeAlias","changeType","bindValue","e","only","sey","isObject","$nextTick","addProp","removeProp","collapseElement","toggle","addElement","removeElement","moveupElement","_ref","close","MIN_VALUE","sub","Math","replacement","movedownElement","_ref2","renderTools","rootProps","collapseProps","href","addProps","removeProps","moveupProps","movedownProps","_mergeProps","renderProp","group","$data","index","typeProps","keyProps","allowCreate","optionsLabel","codeProps","valueInputProps","valueHtml","_resolveComponent","$event","fallbackProps","minRows","autoRows","_createTextVNode","renderProps","_slot","_this7","elementProps","aliasProps","plainProps","renderElement","_this8","builderHtml","renderBuilder","_this9","items","sort","v","renderBody","renderHead","_slot2","_slot3","_this0","addHtml","demoProps","demoHtml","renderOutput","_slot4","_this1","renderFunction","_ref3","configProps","width","height","expanded","selected","modelTree","buildTree","scopeTree","ref","submitItem","$emit","selectItem","expandItem","renderLeaf","renderTree","childItems","childHtml","renderItem","renderModel","modelHtml","renderScope","scopeHtml","modal","updateValue","renderModal","modalProps","panelProps","renderInput","inputProps","provide","NScrollbar","relative","fixture","allowNative","overflowY","overflowX","offsetY","offsetX","framerate","wrapClass","computed","touch","navigator","msMaxTouchPoints","mousedown","mousemove","mouseup","native","beforeMount","adaptScrollBehavior","bindAdaptHeight","bindAdaptWidth","passive","_","Event","bind","onResize","onUpdate","onScroll","updated","passedHeight","passedWidth","$el","beforeUnmount","unbindAdaptHeight","unbindAdaptWidth","unbind","scrollTo","x","y","delay","onScrollTo","scrollTop","scrollLeft","scrollIntoView","selector","padding","onScrollIntoView","outerHeight","clientHeight","offsetTop","outerWidth","clientWidth","offsetLeft","$dom","offsetWidth","offsetHeight","adaptScrollHeight","innerHeight","scrollHeight","virtualHeight","barHeight","maxHeight","ceil","heightRatio","vbar","hasVtrack","removeClass","adaptScrollPosition","adaptScrollWidth","innerWidth","scrollWidth","virtualWidth","barWidth","maxWidth","widthRatio","hbar","hasHtrack","scroll","top","left","vbarTop","transform","hbarLeft","adaptHeight","cacheChildEl","cacheWindwoEl","windowCache","onSizechange","spacer","refreshHeight","setInterval","clearInterval","adaptWidth","resizeTimer","refreshWidth","clearTimeout","fire","$inner","actual","getTouchEvent","touches","changedTouches","onVbarMousedown","stopPropagation","onVbarMousemove","onVbarMouseup","clientY","offset","onHbarMousedown","onHbarMousemove","onHbarMouseup","clientX","WIN","vbarProps","hbarProps","DEBUG_NVSCROLL","inject","NDraggable","itemHeight","itemWidth","renderNode","deathzone","threshold","useKeys","start","end","grid","buffer","load","updateRender","bindAdaptScroll","unbindAdaptScroll","refreshScroll","onScrollupdate","isIndexRendered","scrollbar","scrollToIndex","onScrollToIndex","total","floor","targetTop","clearState","async","refreshDriver","inner","queue","timer","Date","now","to","bufferItems","round","isEqual","passed","topOffset","uniqueProp","renderRows","slice","renderGridRows","counter","chunk","renderGrid","chunks","renderItems","totalHeight","dragMods","NDragCounter","ready","count","choice","dataTransfer","setData","setDragImage","keyMods","attr","DragCounter","NDragIndicator","parent","safezone","strategy","rect","getBoundingClientRect","hasClass","show","hide","item","NDraghandler","rootNode","_this$bindDragstart","DragIndicator","DragCache","bindDragstart","_toConsumableArray","onDragenterRoot","onDragoverRoot","onDragleaveRoot","onDragendRoot","onDragdropRoot","bindDragend","bindDragdrop","preventDefault","target","closest","cacheNodes","frames","allowDrop","rainbow","node","moveNodes","cache","allowGroups","dragcount","dropNodes","tempSelected","removeNode","unlinkNodes","removeNodes","isSelected","id","virtuals","route","resolve","targetNode","isInSelf","cascade","childNodes","unbindNode","$handle","handle","onDragstartNode","onDragenterNode","onDragoverNode","onDragleaveNode","onDragendNode","onDragdropNode","moveNodesMany","moveNodesOne","insertNode","moveNodesRoot","transformDrop","moveNodesInto","moveNodesBefore","moveNodesAfter","eventName","filter","childProp","disableMove","targetRoute","children","splice","reduce","merge","reduceItem","Num","depth","cascades","unique","tempCascade","virtual","last","DEBUG_NDLIST","draggable","current","lazyload","showEmptyIcon","itemOffset","scrollTopOnChange","renderCurrent","renderHandle","renderSelect","renderExpand","allowSelect","allowDrag","keyEvents","highlightTimeout","modifier","visible","highlight","firstSelected","lastSelected","tempCurrent","tempExpanded","drag","watchModifierDown","watchModifierUp","virtualscroller","bindRoot","$watch","watchSelected","deep","refreshVirtuals","unbindRoot","filterVirtuals","add","updateNode","findVirtual","log","contains","getIndex","getCurrentIndex","isDraggable","canDrag","isHighlight","highlightNode","refresh","recursive","scrollToHighlight","isCurrent","setCurrent","setRawCurrent","setNextCurrent","setPrevCurrent","reset","syncCurrent","isDisabled","canSelect","hasChildren","getChildren","isExpanded","expandCurrent","isTotalSelected","isInterSelected","toggleSingleNode","toggleRangeNode","indexies","reversed","selectAll","row","unselectAll","bindKeydown","onKeydown","unbindKeydown","renderEmpty","onMouseenter","onMouseleave","NDraggableItem","required","bindNode","copy","copyNode","onDblclick","renderSpacer","angleRight","checked","NDropzone","NLoader","minimum","debounce","tempVisible","applyTimer","timing","startTimer","restartTimer","timeout","minWidth","resizerWidth","sizeFixed","updateWidth","bindSizechange","forceWidth","updateHandle","unmounted","unbindSizechange","flex","onLeftMousedown","onLeftMouseup","onLeftMousemove","scrollX","targetWidth","frameStyle","onRightMousedown","onRightMouseup","onRightMousemove","NPopover","listen","trigger","scrollClose","multiClose","prevent","refreshVisible","previous","onHover","onContext","onExit","onCloseEvent","active","open","pause","unpause","stopRefreshInterval","startRefreshInterval","passedOffset","updatePosition","isSameOffset","isSameSize","passedSize","getTargetHorizontal","targetRect","windowRect","posY","posX","center","inverse","broken","getTargetVertical","getTargetOffset","isScrollClose","keyCode","raw","header","footer","viewBody","tempSize","focus","image","imagePosition","clickClose","renderImage","renderIcon","renderContent","title","closable","renderClose","startRefreshTimeout","NModal","eventClick","eventKeydown","openModal","force","closeModal","stopRefreshTimeout","queueRefreshTimeout","indexes","times","renderHeader","renderFooter","bodyHtml","renderFrame","innerHtml","renderBackdrop","glass","NForm","NFormItem","inheritAttrs","deepDisabled","onIconClick","onInput","onSubmit","onFocus","onBlur","getValue","clear","getDisplayValue","nextStep","isNaN","toFixed","onNextDown","nextTimeout","nextInterval","onNextUp","prevStep","onPrevDown","prevTimeout","prevInterval","onPrevUp","regex","RegExp","renderPrev","onMousedown","renderNext","renderClear","maxRows","maxLength","eventInput","rows","currentRows","lazy","multiple","emptyText","undefinedText","collapseText","optionsValue","optionsDisabled","custom","elements","element","tempClear","search","searched","generateOptions","searchOptions","NSelect","scrollToClosest","focusInput","$value","$index","option","tempLabel","addOption","removeOption","resetInput","onFocusInput","popover","onInputInput","onKeydownInput","createOrToggle","selectPrev","selectNext","searchRegex","toggleOption","denyUpdate","getOptionLabel","newIndex","scrollToCurrent","createOption","virtualbar","select","renderLabelClear","renderLabelAngle","angleDown","renderLabelItem","labelHtml","renderLabelCollapse","firstHtml","renderLabelItems","renderMultiple","isEmptyValue","isNumber","inputHtml","renderSingle","modelLabel","renderDisplay","displayHtml","emptyHtml","values","renderLazyOption","isMultipleActive","isSingleActive","renderLazyItems","renderPopover","onClose","renderOptions","valueProp","labelProp","toggleItem","renderOption","NCheckboxGroup","allowUncheck","intermediate","global","tempComputed","globalChecked","tempChecked","tempIntermediate","globalIntermediate","tempDisabled","globalDisabled","isChecked","addCheckbox","removeCheckbox","check","checkCheckbox","uncheck","uncheckCheckbox","eventShiftClick","shiftCheckbox","eventLocalClick","shiftKey","toggleCheckbox","eventGlobalClick","toggleAll","updateFromGroup","renderCheckbox","interHtml","checkHtml","renderLabel","align","checkbox","emit","checkboxes","uncheckAll","checkAll","NRadioGroup","addRadio","removeRadio","checkRadio","renderRadio","radio","range","steps","labels","fixmin","fixmax","minmax","getPseudoValue","setModelValue","getValPos","fixed","getValStyle","getBarPos","getBarWidth","getBarStyle","getClosestValue","diff","step","abs","onMouseup","onMousemove","relativeWidth","closestValue","stepMin","stepMax","handleProps","renderHandles","renderBar","barProps","renderSwitch","confirmText","abortText","buttonSize","abort","confirm","renderAction","hover","disabledProp","tempHover","clearCascader","hoverItem","onSelect","clickTimer","lastclick","hoverTimer","fireSelectItem","renderCascade","renderList","onCascaderInput","onCascaderHover","onPopoverInput","itemLabel","arrive","clearArrive","depart","clearDepart","minDate","maxDate","monthPanels","weekdays","months","yearsGrid","tempCache","getYears","monthsGrid","getMonths","Now","tempArrive","tempDepart","tempView","tempRanger","cacheArrive","cacheDepart","gotoDate","gotoMonth","gotoYear","patchDate","resetTime","applyTime","patchMonth","printRange","patchYear","patchRange","renderToolbarPrev","angleLeft","renderToolbarNext","renderToolbarMonth","monthsHtml","month","addMonths","renderToolbarYear","yearsHtml","year","renderToolbar","prev","next","renderDateItem","equalDate","valid","isNotBeforeMin","after","isNotAfterMax","before","renderRangeDateItem","viewMode","isTempValid","between","arriveFirst","renderDate","legendHtml","day","getDatesGrid","panelHtml","prevMonth","nextMonth","renderMonthItem","equal","renderMonth","prevYear","nextYear","renderYearItem","renderYear","prevDecade","nextDecade","placeholderArrive","placeholderDepart","rangeSeparator","boundary","displayFormat","clearDatepicker","clearRangeDatepicker","clearSingleDatepicker","onValueInput","moment","isValid","date","onArriveInput","onDepartInput","onDatepickerInput","onDatepickerDepart","onDatepickerArrive","initialDate","renderRange","arriveProps","departProps","hoursInterval","minutesInterval","secondsInterval","hoursGrid","getHours","minutesGrid","getMinutes","secondsGrid","getSeconds","eventSelect","scrollbars","renderHourItem","hour","renderHourPanel","renderMinuteItem","minute","renderMinutePanel","renderSecondItem","second","renderSecondPanel","clearTimepicker","onTimepickerInput","renderPanel","clearDatetimepicker","renderPanels","renderDatePanel","renderTimePanel","minDuration","maxDuration","negativeText","days","hours","minutes","seconds","editValue","findPattern","pattern","replaceAll","humanizeValue","digitizeValue","dmatch","hmatch","mmatch","smatch","clearDurationpicker","onValueChange","onDurationpickerInput","onChange","optionProps","scrollProps","sourceLabel","targetLabel","sourceChecked","selectedSource","tempSource","sourceIntermediate","targetChecked","selectedTarget","tempTarget","targetIntermediate","sourceSearch","searchPattern","targetSearch","moveItemsTarget","moveItemsSource","moveRowTarget","moveRowSource","moveToSource","moveToTarget","updateSelectedSource","updateSelectedTarget","renderSourceSelect","renderSourceTitle","counterHtml","renderSourceHeader","renderSourceSearch","renderSourceBody","onMove","renderTargetSelect","renderTargetTitle","renderTargetHeader","renderTargetSearch","renderTargetBody","renderMoveSource","renderMoveTarget","dom","form","errors","kind","ignore","forceChange","forceErrors","groups","blocked","emitChange","resetChange","getGroups","appendGroup","removeGroup","is","addItem","removeItem","prevState","nextState","attrs","NFormFrame","tooltip","tooltipPosition","NFormGroup","getItems","appendItem","toggleGroup","openGroup","closeGroup","renderCollapse","renderText","textHtml","action","renderTooltip","NTabs","NTabsItem","tooltipWindow","conditional","conditionOn","conditionOff","enabled","toggleCondition","$input","gotoInput","changeTab","renderCondition","renderError","showSearch","searchPlaceholder","searchIcon","star","block","onSearchInput","onScrollEvent","onMoveEvent","applyStar","inviewMaxY","menu","lower","extract","indexOf","onClickEvent","renderSearch","searchProps","renderMenu","iconHtml","buttonProps","renderMenus","bodyProps","float","addTab","tab","$forceUpdate","removeTab","getTab","updateEvent","currentTab","sorted","renderHeaderIndicator","tabs","preload","keep","renderHeaderIcon","renderHeaderLabel","NTags","tags","addTag","removeTag","color","NCollapse","showTab","hideTab","toggleTab","NCollapseItem","dragger","renderHeaderAngle","angle","showDelay","NTable","sortProp","sortDir","closeFilterOnEnter","tempVisibleProps","tempSortProp","tempSortDir","tempFilter","tempFilterProps","makeVisibleProps","detectVisible","addColumn","column","removeColumn","getColumnIndex","getColumnVisiblity","getColumnSorted","getColumnFilter","filterProp","property","getColumnFiltered","detectVisibity","intersect","sortByColumn","dir","replaceFilter","filters","resetFilter","refreshCurrent","columns","renderContext","defaultRender","draggableHtml","matrixDisabled","breakpoint","previewProp","matrix","matrixProp","fluid","fixedWidth","trueText","falseText","datetimeFormat","matrixValues","NTableColumn","tempWidth","changedStates","sortDirection","flexBasis","renderHeadLabel","renderHeadSort","renderHeadFilter","angleHtml","setFirstState","firstState","extends","TableCell","convertString","convertBoolean","convertDatetime","preview","fit","toggleMatrix","toggleSelect","itemList","currentMatrix","combine","finder","canReset","canApply","getFilterClone","mountFilter","getFilterProp","getDefaultFilter","applyFilter","clearFilter","renderForm","renderApply","renderReset","TableFilter","operator","li","nl","eq","ne","lt","gt","in","ni","page","limit","limitOptions","maxPages","layout","pages","tempLimit","pageOptions","tempPage","forcePage","updatePaginate","paginate","onPrevPage","onPageInput","onNextPage","onFirstPage","onLastPage","onLimitInput","renderLimit","renderCount","renderGoto","renderFirst","angleDoubleLeft","renderLast","angleDoubleRight","renderPage","renderPages","view","className","syncEvent","bindSyncEvent","unbindSyncEvent","setValue","NInfo","infoHtml","InfoField","fileMap","video","font","application","file","thumb","mime","typre","showSrc","tempFile","tempThumb","fileMime","getFileMime","thumbMime","getThumbMime","lightbox","extension","exts","resolveVimeo","resolveYoutube","showLightbox","renderPreview","renderFull","renderLightbox","src","tempSrc","tempExt","ImageCache","resolveLoad","resolveData","loaded","laod","reader","FileReader","onload","readAsDataURL","url","provider","resolveType","youtube","vimeo","renderYoutube","renderVimeo","renderPlain","lat","lng","zoom","NMap","callbacks","tempMap","focusMarkers","Map","getMap","onMount","tempMarker","importMarkerPosition","marker","setPosition","updateMarkerPosition","getPosition","initializeMarker","innerHTML","createMarker","addListener","setMarkerByAddress","address","then","clearableIcon","buttonText","openContext","updateFile","files","clearFile","renderButton","renderHidden","virtualValue","renderStars","rate","renderValue","vars","NDrawerStack","NDrawer","closeDrawer","NanoImports","App","globalProperties","EmptyIcon","NConfig","NConfigNext","NBuilder","NRefrencePanel","NRefrencePicker","Scrollbar","Virtualscroller","Draglist","DraglistItem","Draggrid","DraggridItem","Dropzone","Loader","Resizer","Popover","PopoverGroup","PopoverOption","Modal","Button","ButtonGroup","Input","InputNumber","Textarea","Select","SelectOption","Checkbox","CheckboxGroup","NRadio","Slider","Switch","Confirm","CascaderPanel","Cascader","DatepickerPanel","Datepicker","TimepickerPanel","Timepicker","Datetimepicker","Durationpicker","Transfer","Form","FormGroup","FormItem","FormFrame","Tabs","TabsItem","Tags","TagsItem","Collapse","CollapseItem","Table","TableColumn","TableCellString","TableCellBoolean","TableCellDatetime","TableCellOption","TableCellImage","TableCellMatrix","TableCellSelect","TableFilterString","TableFilterBoolean","TableFilterDatetime","TableFilterOption","Paginator","Info","InfoColumn","InfoFieldString","InfoFieldBoolean","InfoFieldDatetime","InfoFieldOption","InfoFieldImage","Preview","PreviewPlain","PreviewImage","PreviewVideo","MapMarker","File","Rating","circle","clock","calendar","primary","angleUp","Install","pi","CtorMixin","CmerMixin","CsloMixin","NanoModule","Nano"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"nano-ui.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,oBAAqBA,QAAQ,QACrC,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,mBAAoB,OAAQJ,GACV,iBAAZC,QACdA,QAAc,KAAID,EAAQG,QAAQ,oBAAqBA,QAAQ,QAE/DJ,EAAW,KAAIC,EAAQD,EAAS,GAAGA,EAAU,IAC9C,CATD,CASGO,KAAM,CAACC,EAAiCC,I,uDCP3CC,OAAOC,iBAAkC,gBAAIC,EAAAA,OAAOC,MAAM,mBAE1DH,OAAOI,oBAAqC,gBAAI,CAC5CC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAAqC,gBAAS,MAAI,CACrD,C,+BCPJJ,OAAOC,iBAA0B,QAAIC,EAAAA,OAAOC,MAAM,WAElDH,OAAOI,oBAA6B,QAAI,CACpCC,QAAQ,EAAMC,MAAO,CAAC,GAG1BN,OAAOI,oBAA6B,QAAS,MAAI,CAC7CG,WAAY,CACRC,IAAK,CAAC,QAAS,SAAUC,KAAM,OAEnCC,QAAS,CACLF,IAAK,CAAC,QAAS,SAAUC,KAAM,OAEnCE,SAAU,CACNH,IAAK,CAAC,QAAS,SAAUC,KAAM,OAEnCG,OAAQ,CACJJ,IAAK,CAAC,QAAS,SAAUC,KAAM,SAAUI,QAASb,OAAOc,oBAE7DC,QAAS,CACLP,IAAK,CAAC,QAAS,SAAUC,KAAM,SAAUI,QAASb,OAAOc,oBAE7DE,KAAM,CACFR,IAAK,CAAC,QAAS,SAAUC,KAAM,SAAUI,QAASb,OAAOiB,oBAE7DC,SAAU,CACNV,IAAK,CAAC,QAAS,SAAUC,KAAM,UAAWI,QAASb,OAAOmB,oB,QC5BlE1B,EAAOD,QAAUM,C,gCCEjBE,OAAOC,iBAA0B,QAAIC,EAAAA,OAAOC,MAAM,WAElDH,OAAOI,oBAA6B,QAAI,CACpCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA6B,QAAS,MAAI,CAC7C,C,gCCPJJ,OAAOC,iBAA+B,aAAIC,EAAAA,OAAOC,MAAM,gBAEvDH,OAAOI,oBAAkC,aAAI,CACzCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAAkC,aAAS,MAAI,CAClDG,WAAY,CACRC,IAAK,CAAC,QAAS,SAAUY,QAAS,KAAMX,KAAM,UAElDY,WAAY,CACRb,IAAK,CAAC,QAAS,SAAUY,QAAS,KAAMX,KAAM,UAElDa,UAAW,CACPd,IAAK,CAAC,QAAS,SAAUY,SAAS,EAAOX,KAAM,UAAWI,QAASb,OAAOmB,oBAE9EI,IAAK,CACDf,IAAK,CAAC,QAAS,SAAUY,QAAS,EAAGX,KAAM,UAE/Ce,IAAK,CACDhB,IAAK,CAAC,QAAS,SAAUY,QAASK,OAAOC,UAAWjB,KAAM,UAE9DkB,SAAU,CACNnB,IAAK,CAAC,QAAS,SAAUY,QAAS,EAAGX,KAAM,UAE/CmB,UAAW,CACPpB,IAAK,CAAC,QAAS,SAAUY,QAAS,EAAGX,KAAM,UAE/CO,KAAM,CACFR,IAAK,CAAC,QAAS,SAAUY,QAAS,KAAMX,KAAM,SAAUI,QAASb,OAAOiB,oBAE5ER,KAAM,CACFD,IAAK,CAAC,QAAS,SAAUY,QAAS,UAAWX,KAAM,SAAUI,QAASb,OAAOc,oBAEjFI,SAAU,CACNV,IAAK,CAAC,QAAS,SAAUY,SAAS,EAAOX,KAAM,UAAWI,QAASb,OAAOmB,oBAE9EU,YAAa,CACTrB,IAAK,CAAC,QAAS,SAAUY,QAAS,GAAIX,KAAM,UAEhDqB,OAAQ,CACJtB,IAAK,CAAC,QAAS,SAAUY,QAAS,SAAUX,KAAM,UAEtDsB,SAAU,CACNvB,IAAK,CAAC,QAAS,SAAUY,QAAS,IAAKX,KAAM,U,SC9CrDhB,EAAOD,QAAUO,C,gCCEjBC,OAAOC,iBAAuB,KAAIC,EAAAA,OAAOC,MAAM,QAE/CH,OAAOI,oBAA0B,KAAI,CACjCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA0B,KAAS,MAAI,CAC1C,C,gCCPJJ,OAAOC,iBAAsB,IAAIC,EAAAA,OAAOC,MAAM,OAE9CH,OAAOI,oBAAyB,IAAI,CAChCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAAyB,IAAS,MAAI,CACzC4B,UAAW,CACPvB,KAAM,U,gCCRdT,OAAOC,iBAAwB,MAAIC,EAAAA,OAAOC,MAAM,SAEhDH,OAAOI,oBAA2B,MAAI,CAClCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA2B,MAAS,MAAI,CAC3C,C,gCCPJJ,OAAOC,iBAA0B,QAAIC,EAAAA,OAAOC,MAAM,WAElDH,OAAOI,oBAA6B,QAAI,CACpCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA6B,QAAS,MAAI,CAC7CY,KAAM,CACFR,IAAK,CAAC,QAAS,SAAUC,KAAM,SAAUI,QAASb,OAAOiB,oBAE7DR,KAAM,CACFD,IAAK,CAAC,QAAS,SAAUC,KAAM,SAAUI,QAASb,OAAOc,oBAE7DmB,KAAM,CACFzB,IAAK,CAAC,QAAS,SAAUC,KAAM,UAAWI,QAASb,OAAOmB,oBAE9De,OAAQ,CACJ1B,IAAK,CAAC,QAAS,SAAUC,KAAM,UAAWI,QAASb,OAAOmB,oBAE9DD,SAAU,CACNV,IAAK,CAAC,QAAS,SAAUC,KAAM,UAAWI,QAASb,OAAOmB,oBAE9DgB,KAAM,CACF3B,IAAK,CAAC,QAAS,SAAUC,KAAM,UAEnC2B,aAAc,CACV5B,IAAK,CAAC,QAAS,SAAUC,KAAM,SAAUI,QAAS,CAAC,SAAU,UAEjEwB,WAAY,CACR7B,IAAK,CAAC,QAAS,SAAUC,KAAM,SAAUI,QAAS,CAAC,SAAU,IAAK,QAEtEyB,MAAO,CACH9B,IAAK,CAAC,MAAOC,KAAM,U,gCChC3BT,OAAOC,iBAA6B,WAAIC,EAAAA,OAAOC,MAAM,cAErDH,OAAOI,oBAAgC,WAAI,CACvCC,QAAQ,EAAMC,MAAO,CAAC,GAG1BN,OAAOI,oBAAgC,WAAS,MAAI,CAChDmC,MAAO,CACH/B,IAAK,CAAC,QAAS,SAAUC,KAAM,U,gCCRvCT,OAAOC,iBAA0B,QAAIC,EAAAA,OAAOC,MAAM,WAElDH,OAAOI,oBAA6B,QAAI,CACpCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA6B,QAAS,MAAI,CAC7C,C,gCCPJJ,OAAOC,iBAA8B,YAAIC,EAAAA,OAAOC,MAAM,eAEtDH,OAAOI,oBAAiC,YAAI,CACxCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAAiC,YAAS,MAAI,CACjD,C,gCCPJJ,OAAOC,iBAA+B,aAAIC,EAAAA,OAAOC,MAAM,kBAEvDH,OAAOI,oBAAkC,aAAI,CACzCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAAkC,aAAS,MAAI,CAClD,C,gCCPJJ,OAAOC,iBAAkC,gBAAIC,EAAAA,OAAOC,MAAM,mBAE1DH,OAAOI,oBAAqC,gBAAI,CAC5CC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAAqC,gBAAS,MAAI,CACrD,C,gCCPJJ,OAAOC,iBAA0B,QAAIC,EAAAA,OAAOC,MAAM,WAElDH,OAAOI,oBAA6B,QAAI,CACpCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA6B,QAAS,MAAI,CAC7C,C,gCCPJJ,OAAOC,iBAA+B,aAAIC,EAAAA,OAAOC,MAAM,gBAEvDH,OAAOI,oBAAkC,aAAI,CACzCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAAkC,aAAS,MAAI,CAClD,C,gCCPJJ,OAAOC,iBAAwB,MAAIC,EAAAA,OAAOC,MAAM,SAEhDH,OAAOI,oBAA2B,MAAI,CAClCC,QAAQ,EAAMC,MAAO,CAAC,GAG1BN,OAAOI,oBAA2B,MAAS,MAAI,CAC3C,C,gCCPJJ,OAAOC,iBAA8B,YAAIC,EAAAA,OAAOC,MAAM,eAEtDH,OAAOI,oBAAiC,YAAI,CACxCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAAiC,YAAS,MAAI,CACjD,C,gCCPJJ,OAAOC,iBAAyB,OAAIC,EAAAA,OAAOC,MAAM,UAEjDH,OAAOI,oBAA4B,OAAI,CACnCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA4B,OAAS,MAAI,CAC5CG,WAAY,CACRC,IAAK,CAAC,QAAS,SAAUY,QAAS,KAAMX,KAAM,UAElDO,KAAM,CACFR,IAAK,CAAC,QAAS,SAAUY,QAAS,KAAMX,KAAM,SAAUI,QAASb,OAAOiB,oBAE5ER,KAAM,CACFD,IAAK,CAAC,QAAS,SAAUY,QAAS,UAAWX,KAAM,SAAUI,QAASb,OAAOc,oBAEjFI,SAAU,CACNV,IAAK,CAAC,QAAS,SAAUY,SAAS,EAAOX,KAAM,UAAWI,QAASb,OAAOmB,oBAE9EU,YAAa,CACTrB,IAAK,CAAC,QAAS,SAAUY,QAAS,GAAIX,KAAM,UAEhD4B,WAAY,CACR7B,IAAK,CAAC,QAAS,SAAUY,QAAS,OAAQX,KAAM,SAAUI,QAAS,CAAC,OAAQ,WAAY,UAE5FsB,KAAM,CACF3B,IAAK,CAAC,QAAS,SAAUY,QAAS,GAAIX,KAAM,UAEhD2B,aAAc,CACV5B,IAAK,CAAC,QAAS,SAAUY,QAAS,SAAUX,KAAM,SAAUI,QAAS,CAAC,SAAU,UAEpF2B,aAAc,CACVhC,IAAK,CAAC,QAAS,SAAUY,QAAS,KAAMX,KAAM,UAAWI,QAASb,OAAOmB,oBAE7EsB,UAAW,CACPjC,IAAK,CAAC,MAAOC,KAAM,U,gCCnC3BT,OAAOC,iBAAyB,OAAIC,EAAAA,OAAOC,MAAM,UAEjDH,OAAOI,oBAA4B,OAAI,CACnCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA4B,OAAS,MAAI,CAC5C,C,gCCPJJ,OAAOC,iBAAwB,MAAIC,EAAAA,OAAOC,MAAM,SAEhDH,OAAOI,oBAA2B,MAAI,CAClCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA2B,MAAS,MAAI,CAC3C,C,gCCPJJ,OAAOC,iBAA4B,UAAIC,EAAAA,OAAOC,MAAM,aAEpDH,OAAOI,oBAA+B,UAAI,CACtCC,QAAQ,EAAMC,MAAO,CAAC,GAG1BN,OAAOI,oBAA+B,UAAS,MAAI,CAC/CmC,MAAO,CACH/B,IAAK,CAAC,QAAS,SAAUC,KAAM,U,oBCVvCT,OAAOiB,mBAAqB,CACxB,KAAM,KAAM,KAAM,MAGtBjB,OAAOc,mBAAqB,CACxB,UAAW,YAAa,UAAW,UAAW,SAAU,QAG5Dd,OAAOmB,mBAAqB,CACxB,OAAQ,Q,gCCPZnB,OAAOC,iBAA4B,UAAIC,EAAAA,OAAOC,MAAM,cAEpDH,OAAOI,oBAA+B,UAAI,CACtCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA+B,UAAS,MAAI,CAC/C,C,gCCPJJ,OAAOC,iBAA4B,UAAIC,EAAAA,OAAOC,MAAM,aAEpDH,OAAOI,oBAA+B,UAAI,CACtCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA+B,UAAS,MAAI,CAC/C,C,gCCPJJ,OAAOC,iBAAyB,OAAIC,EAAAA,OAAOC,MAAM,UAEjDH,OAAOI,oBAA4B,OAAI,CACnCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA4B,OAAS,MAAI,CAC5C,C,gCCPJJ,OAAOC,iBAA4B,UAAIC,EAAAA,OAAOC,MAAM,aAEpDH,OAAOI,oBAA+B,UAAI,CACtCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA+B,UAAS,MAAI,CAC/C,C,gCCPJJ,OAAOC,iBAAiC,eAAIC,EAAAA,OAAOC,MAAM,kBAEzDH,OAAOI,oBAAoC,eAAI,CAC3CC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAAoC,eAAS,MAAI,CACpD,C,gCCPJJ,OAAOC,iBAA4B,UAAIC,EAAAA,OAAOC,MAAM,cAEpDH,OAAOI,oBAA+B,UAAI,CACtCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA+B,UAAS,MAAI,CAC/C,C,gCCPJJ,OAAOC,iBAA0B,QAAIC,EAAAA,OAAOC,MAAM,WAElDH,OAAOI,oBAA6B,QAAI,CACpCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA6B,QAAS,MAAI,CAC7C,C,gCCPJJ,OAAOC,iBAA8B,YAAIC,EAAAA,OAAOC,MAAM,eAEtDH,OAAOI,oBAAiC,YAAI,CACxCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAAiC,YAAS,MAAI,CACjD,C,gCCPJJ,OAAOC,iBAAyB,OAAIC,EAAAA,OAAOC,MAAM,UAEjDH,OAAOI,oBAA4B,OAAI,CACnCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA4B,OAAS,MAAI,CAC5C,C,gCCPJJ,OAAOC,iBAA2B,SAAIC,EAAAA,OAAOC,MAAM,aAEnDH,OAAOI,oBAA8B,SAAI,CACrCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA8B,SAAS,MAAI,CAC9C,C,gCCPJJ,OAAOC,iBAAyB,OAAIC,EAAAA,OAAOC,MAAM,UAEjDH,OAAOI,oBAA4B,OAAI,CACnCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA4B,OAAS,MAAI,CAC5C,C,gCCPJJ,OAAOC,iBAA4B,UAAIC,EAAAA,OAAOC,MAAM,aAEpDH,OAAOI,oBAA+B,UAAI,CACtCC,QAAQ,EAAOC,MAAO,CAAC,GAG3BN,OAAOI,oBAA+B,UAAS,MAAI,CAC/C,C,GCRAsC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAarD,QAGrB,IAAIC,EAASiD,EAAyBE,GAAY,CAGjDpD,QAAS,CAAC,GAOX,OAHAuD,EAAoBH,GAAUnD,EAAQA,EAAOD,QAASmD,GAG/ClD,EAAOD,OACf,CCrBAmD,EAAoBK,EAAI,CAACxD,EAASyD,KACjC,IAAI,IAAIC,KAAOD,EACXN,EAAoBQ,EAAEF,EAAYC,KAASP,EAAoBQ,EAAE3D,EAAS0D,IAC5EE,OAAOC,eAAe7D,EAAS0D,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,MCJ3EP,EAAoBQ,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFd,EAAoBkB,EAAKrE,IACH,oBAAXsE,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAe7D,EAASsE,OAAOC,YAAa,CAAEC,MAAO,WAE7DZ,OAAOC,eAAe7D,EAAS,aAAc,CAAEwE,OAAO,K,4GCHvD,SAEIC,KAAI,SAACf,GACL,IAAAgB,EAAA,KADUC,EAAQC,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAEbH,EAAOK,EAAAA,IAAIf,IAAIgB,KAAKC,SAAUtB,EAAIuB,MAAM,MAAO,GAWnD,OAJe,IAAVR,IACDA,EAAOE,GAGU,mBAATF,EACDA,EAGJ,mBAAAS,EAAAN,UAAAC,OAAIM,EAAI,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,GAAAT,UAAAS,GAAA,OAAKZ,EAAKa,MAAMZ,EAAMS,EAAK,CAC9C,GCpBJ,GAEII,KAAI,SAAC/C,GAED,IAAIgD,EAAY,CAAC,EA0BjB,OAxBKC,EAAAA,IAAIC,SAASlD,KACdgD,EAAUhD,IAAa,GAGtBiD,EAAAA,IAAIE,QAAQnD,IACboD,EAAAA,IAAIC,KAAKrD,EAAW,SAACgC,GAAK,OAAKgB,EAAUhB,IAAS,CAAI,GAGrDiB,EAAAA,IAAIK,QAAQtD,IACbsC,EAAAA,IAAIiB,OAAOP,EAAWhD,GAGrBiD,EAAAA,IAAIC,SAASX,KAAKiB,OAAM,SACzBR,EAAUT,KAAKiB,OAAM,QAAU,GAG9BP,EAAAA,IAAIE,QAAQZ,KAAKiB,OAAM,QACxBJ,EAAAA,IAAIC,KAAKd,KAAKiB,OAAM,MAAQ,SAACxB,GAAK,OAAKgB,EAAUhB,IAAS,CAAI,GAG7DiB,EAAAA,IAAIK,QAAQf,KAAKiB,OAAM,QACxBlB,EAAAA,IAAIiB,OAAOP,EAAWT,KAAKiB,OAAM,OAG9BR,CACX,G,aC9BJ,SAEIS,KAAI,WACJ,IADKC,EAAItB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,UAAW9D,EAAK8D,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,CAAC,EAE5B,QAAOG,KAAKoB,OAAOD,KAMX,IAFDnB,KAAKoB,OAAOD,GAAMpF,GAAOsF,UAAU,SAACzC,GACvC,OAAOA,EAAE1C,OAASoF,EAAAA,OACtB,EACJ,G,m0BCXG,IAAMC,EAAY,WAmBrB,SAAAA,IACA,IADYjF,EAAOuD,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,CAAC,G,4FAAC2B,CAAA,KAAAD,GAAAE,EAAA,aAfhB,MAAIA,EAAA,eAEF,CACNC,KAAM,GAAIjF,KAAM,KAAMP,KAAM,YAc5B8D,KAAK1D,QAAUyD,EAAAA,IAAIiB,OAAOhB,KAAK1D,QAASA,EAAS,CAC7CqF,KAAKC,EAAAA,EAAAA,SAEb,CAAC,O,EAAAL,E,EAAA,EAAA5C,IAAA,QAAAc,MAED,WAEIO,KAAK6B,eACL7B,KAAK8B,MAAMC,SAEXC,EAAAA,IAAIC,KAAKC,SAASC,MAAMC,IAAI,CACxB,SAAY,aAEpB,GAAC,CAAAzD,IAAA,aAAAc,MAED,SAAW4C,GAEP,IAAIzE,EAAOmC,EAAAA,IAAIf,IAAIvD,OAAO6G,WAAYtC,KAAK1D,QAAQJ,KAAM,eAE7C8F,EAAAA,IAAIO,KAAK,MAAO,CACxB9E,UAAW,gBAAiB+E,UAAW,oBAAFC,OAAsB7E,EAAI,YAG7D8E,SAASL,EACnB,GAAC,CAAA1D,IAAA,aAAAc,MAED,SAAW4C,GAEKL,EAAAA,IAAIO,KAAK,MAAO,CACxB9E,UAAW,gBAAiB+E,UAAW,MAAFC,OAAQzC,KAAK1D,QAAQoF,KAAI,UAG5DgB,SAASL,EACnB,GAAC,CAAA1D,IAAA,aAAAc,MAED,WACA,IAAAE,EAAA,KACUgC,EAAQ3B,KAAK1D,QAAbqF,IAENK,EAAAA,IAAIC,KAAKxG,QAAQkH,GAAG,UAAW,SAACC,GACT,KAAdA,EAAEC,UACHD,EAAEE,kBAAmBnD,EAAKoD,QAElC,EAAG,CAAEpB,IAAAA,IAELK,EAAAA,IAAIC,KAAKjC,KAAK8B,OAAOa,GAAG,QAAS,SAACC,GACvBZ,EAAAA,IAAIC,KAAKW,EAAEI,QAAQC,OAAO,mBAC7BtD,EAAKoD,OAEb,EAAG,CAAEpB,IAAAA,IAELjB,EAAAA,IAAIwC,MAAM,WACNlB,EAAAA,IAAIC,KAAKtC,EAAKmC,OAAOqB,SAAS,UAClC,EACJ,GAAC,CAAAxE,IAAA,eAAAc,MAED,WAEI,IAAMkC,EAAQ3B,KAAK1D,QAAbqF,IAENK,EAAAA,IAAIC,KAAKxG,QAAQ2H,IAAI,UAAW,KAAM,CAClCzB,IAAAA,IAGJK,EAAAA,IAAIC,KAAKjC,KAAK8B,OAAOsB,IAAI,QAAS,KAAM,CACpCzB,IAAAA,GAER,GAAC,CAAAhD,IAAA,SAAAc,MAED,WACA,IAAA4D,EAAA,KACQC,EAAMvD,EAAAA,IAAIf,IAAIgB,KAAK1D,QAAS,QAAS,IAEpCoE,EAAAA,IAAIC,SAAS2C,KACdA,EAAMA,EAAIpD,MAAM,MAGpB,IAAIzC,EAAY,CACZ,UACA,YAAcuC,KAAK1D,QAAQG,KAC3B,YAAcuD,KAAK1D,QAAQJ,MAG/BuB,EAAU8F,KAAK,iBAEf,IAAIzB,EAAQE,EAAAA,IAAIO,KAAK,MAAO,CACxB9E,UAAWoD,EAAAA,IAAI2C,MAAM/F,EAAW6F,GAAKG,KAAK,OAG1CC,EAAQ1B,EAAAA,IAAIO,KAAK,MAAO,CACxB9E,UAAW,CAAC,mBAGhBiG,EAAMhB,SAASZ,GAEf,IAAIK,EAAOH,EAAAA,IAAIO,KAAK,MAAO,CACvB9E,UAAW,CAAC,mBAGhB0E,EAAKO,SAASgB,GAEd1D,KAAK2D,WAAWxB,GAChBnC,KAAK4D,WAAWzB,GAEhBH,EAAAA,IAAIC,KAAKC,SAASC,MAAMC,IAAI,CACxB,SAAY,WAGhBN,EAAMY,SAASR,SAASC,MAExB0B,sBAAsB,WAClBR,EAAKS,YACT,GAEA9D,KAAK8B,MAAQA,EAAM9C,IAAI,EAC3B,I,EAAC,EAAAL,IAAA,OAAAc,MA9HD,SAAYiC,GAMR,OAAO,IAAIH,EAJD,CACNG,KAAAA,EAAMxF,KAHQ2D,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,YAMYkE,QACrC,I,4FAAC,CAjBoB,GAyIxBtC,EAzIYF,EAAY,QAEN,SAyInB,U,m0BC5IO,IAAMyC,EAAmB,WAiB3B,O,EAPD,SAAAA,EAAYtC,GACZ,IADkBxF,EAAI2D,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,UAAWvD,EAAOuD,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,CAAC,G,4FAAC2B,CAAA,KAAAwC,GAAAvC,EAAA,UAN3C,MAAIA,EAAA,eAEC,CACNC,KAAM,GAAI9D,KAAM,GAAI1B,KAAM,UAAW+H,SAAU,OAK/CjE,KAAK1D,QAAUyD,EAAAA,IAAIiB,OAAOhB,KAAK1D,QAASA,EAAS,CAC7CoF,KAAAA,EAAMxF,KAAAA,IAGV8D,KAAK+D,QACT,E,EAAC,EAAApF,IAAA,SAAAc,MAED,WACA,IAAAE,EAAA,KADO0C,EAAExC,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAGqC,SAASC,KAMjB,OAJAnC,KAAKqC,GAAGK,SAASL,GAEjB6B,WAAW,kBAAMvE,EAAK0C,GAAGc,SAAS,WAAW,EAAE,KAExCnD,IACX,GAAC,CAAArB,IAAA,SAAAc,MAED,WAII,OAFAO,KAAKqC,GAAGrD,IAAI,GAAG+C,SAER/B,IACX,GAAC,CAAArB,IAAA,SAAAc,MAED,WACA,IAAA4D,EAAA,KACQ5F,EAAY,CACZ,iBACA,mBAAqBuC,KAAK1D,QAAQJ,MAGtC8D,KAAKqC,GAAKL,EAAAA,IAAIO,KAAK,MAAO,CACtB9E,UAAWA,EAAUgG,KAAK,OAG9BzD,KAAKqC,GAAGM,GAAG,QAAS,WAChBU,EAAKtB,QACT,GAEA,IAAIoC,EAAYpE,EAAAA,IAAIf,IAAIvD,OAAO2I,iBAAkBpE,KAAK1D,QAAQJ,KAAM,eAEzD8F,EAAAA,IAAIO,KAAK,MAAO,CACvB9E,UAAW,uBAAwB+E,UAAW,oBAAFC,OAAsB0B,EAAS,YAG1EzB,SAAS1C,KAAKqC,IAERL,EAAAA,IAAIO,KAAK,MAAO,CACvB9E,UAAW,uBAAwB+E,UAAW,MAAFC,OAAQzC,KAAK1D,QAAQoF,KAAI,UAGpEgB,SAAS1C,KAAKqC,GACvB,I,4FAAC,CA/D2B,GAiE/BZ,EAjEYuC,EAAmB,QAEb,uBAiEZvI,OAAOuI,EAAoBK,SAC9B5I,OAAOuI,EAAoBK,OAASL,GAGxC,U,2kCCtEAvI,OAAO6I,gBAAkB,CAAC,EAEnB,IAAMC,EAAmB,oBAAAA,K,4FAAA/C,CAAA,KAAA+C,EAAA,Q,EAAAA,E,EAAA,EAAA5F,IAAA,OAAAc,MAO5B,WACA,QAAAU,EAAAN,UAAAC,OADeM,EAAI,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,GAAAT,UAAAS,GAEf,IAAAkE,EAAkBD,EAAoBE,OAAMlE,MAA1BgE,EAAmB,MAAQhG,GAASkE,OAAKrC,IAArDuB,EAAG6C,EAAH7C,IAAKU,EAAEmC,EAAFnC,GAEPqC,EAAUH,EAAoBI,UAUlC,OAPAlJ,OAAO6I,gBAAgB3C,GAAKiD,OAAOF,GAGnChE,EAAAA,IAAIwC,MAAM,WACNqB,EAAoBxC,OAAOJ,EAC/B,EAAGU,EAAG/F,QAAQ2H,UAEPtC,CACX,GAAC,CAAAhD,IAAA,SAAAc,MAED,WAA0B,IAC1B,IADckC,EAAG9B,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,IAAG+B,EAAAA,EAAAA,QAAMiD,EAAAhF,UAAAC,OAAKM,EAAI,IAAAC,MAAAwE,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ1E,EAAI0E,EAAA,GAAAjF,UAAAiF,GAI/B,OAFArJ,OAAO6I,gBAAgB3C,G,+JAAIoD,CAAOf,EAAuB5D,GAElD,CAAEuB,IAAAA,EAAKU,GAAI5G,OAAO6I,gBAAgB3C,GAC7C,GAAC,CAAAhD,IAAA,SAAAc,MAED,SAAckC,QAE2BpD,IAAhC9C,OAAO6I,gBAAgB3C,KAK5BlG,OAAO6I,gBAAgB3C,GAAKI,gBAGrBtG,OAAO6I,gBAAgB3C,GAClC,GAAC,CAAAhD,IAAA,UAAAc,MAED,WAEI,IAAI4C,EAAKL,EAAAA,IAAIC,KAAK,yBAElB,IAAMI,EAAG2C,QACL,OAAO3C,EAGX,IAAI5E,EAAY,CACZ,uBACA,yBAA2BhC,OAAOwJ,KAAKC,SAASC,WAChD,yBAA2B1J,OAAOwJ,KAAKC,SAASE,gBASpD,OANA/C,EAAKL,EAAAA,IAAIO,KAAK,MAAO,CACjB9E,UAAWA,EAAUgG,KAAK,QAG3Bf,SAASR,SAASC,MAEdE,CACX,K,EAjE4B,O,yFAiE3B,CAjE2B,GAmE/BZ,EAnEY8C,EAAmB,QAGb,gBAAc9C,EAHpB8C,EAAmB,gBAKL,CAAC,GAgE5B,UC1EA,SAEIc,KAAM,aAENtJ,MAAO,CAEHU,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX3I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXC,OAAQ,oBAGA,OAAO,CACX,EACAtJ,KAAM,CAACqJ,WAKfxB,OAAM,WAEF,IAAItG,EAAY,CACZ,eACA,iBAAmBuC,KAAKvD,KACxB,iBAAmBuD,KAAK9D,MAW5B,OARK8D,KAAKrD,UACNc,EAAU8F,KAAK,cAGdvD,KAAKwF,QACN/H,EAAU8F,KAAK,aAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,EAAAgI,EAAAA,EAAAA,aAAA,2CAAAA,EAAAA,EAAAA,aAAA,oCAKXzF,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,aAIpD,GC/DJ,SAEIiE,KAAM,UAENtJ,MAAO,CAEHC,WAAY,oBAGJ,MAAO,CAAC,CACZ,EACAE,KAAM,CAAC2C,SAGX6G,OAAQ,oBAGA,MAAO,CAAC,CACZ,EACAxJ,KAAM,CAAC2C,SAGX8G,MAAO,oBAGC,OAAO3F,IACX,EACA9D,KAAM,CAAC2C,UAKf+G,KAAI,WAEA,MAAO,CACHC,UAAW7F,KAAKhE,WAExB,EAEA8J,QAAS,CAELC,WAAU,SAACtG,GAEP,QAAKiB,EAAAA,IAAIsF,QAAQvG,KAIZiB,EAAAA,IAAIC,SAASlB,IAAUA,EAAMwG,MAAM,aAC7BlG,EAAAA,IAAImG,IAAI,CAAEC,QAASnG,KAAK2F,OAASlG,MAGvCiB,EAAAA,IAAIC,SAASlB,KAAUA,EAAMwG,MAAM,eAC7BlG,EAAAA,IAAImG,IAAI,CAAEE,QAASpG,KAAK6F,WAAapG,GAIpD,EAEA4G,WAAU,SAAC5G,GAEP,GAAKiB,EAAAA,IAAI4F,WAAW7G,GAAS,SAAAU,EAAAN,UAAAC,OAFZM,EAAI,IAAAC,MAAAF,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,EAAA,GAAAT,UAAAS,GAGjB,OAAOb,EAAMc,MAAMP,KAAK2F,MAAO,CAAC3F,KAAK6F,WAASpD,OAAKrC,GACvD,CAEA,OAAKM,EAAAA,IAAIC,SAASlB,IAAUA,EAAMwG,MAAM,cAC7BlG,EAAAA,IAAIf,IAAI,CAAEmH,QAASnG,KAAK2F,OAASlG,GAGvCiB,EAAAA,IAAIC,SAASlB,IAAUA,EAAMwG,MAAM,cAC7BlG,EAAAA,IAAIf,IAAI,CAAEoH,QAASpG,KAAK6F,WAAapG,GAGzCA,CACX,EAEA8G,WAAU,SAAC9G,GAEP,IAAIkG,EAAQ5F,EAAAA,IAAIiB,OAAOhB,KAAK2F,MAAO,CAC/Ba,YAAaxG,KAAKyG,QAGtB,OAAK/F,EAAAA,IAAI4F,WAAW7G,GACT,mBAAAoF,EAAAhF,UAAAC,OAAIM,EAAI,IAAAC,MAAAwE,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ1E,EAAI0E,GAAAjF,UAAAiF,GAAA,OAAKrF,EAAMc,MAAMoF,EAAOvF,EAAK,EAGzCX,CACX,EAEAiH,aAAY,SAACjH,GAET,GAAKiB,EAAAA,IAAI4F,WAAW7G,GAAS,SAAAkH,EAAA9G,UAAAC,OAFVM,EAAI,IAAAC,MAAAsG,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJxG,EAAIwG,EAAA,GAAA/G,UAAA+G,GAGnB,OAAOnH,EAAMc,MAAMP,KAAK2F,MAAO,CAAC3F,KAAK6G,QAAS7G,KAAK6F,WAASpD,OAAKrC,GACrE,CAEA,OAAOX,CACX,EAEAqH,aAAY,SAACC,GAET,OAAOA,EAAQC,MAIRjH,EAAAA,IAAImG,IAAIlG,KAAK6F,UAAWkB,EAAQC,OACnChH,KAAKiH,QAAQjH,KAAK6F,UAAWkB,EAAQC,KAAMD,EAAQnH,UAGhDG,EAAAA,IAAIf,IAAIgB,KAAK6F,UAAWkB,EAAQC,OAP5BD,EAAQnH,QAQvB,EAEAsH,aAAY,SAACH,GACb,IAAApH,EAAA,KADsBwH,EAAOtH,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAE5B,OAAOkH,EAAQC,KAIR,SAACvH,GAEC0H,GACDA,EAAQ1H,EAAOE,EAAKkG,WAGxBlG,EAAKsH,QAAQtH,EAAKkG,UAAWkB,EAAQC,KAAMvH,EAC/C,EAVW,kBAAM,IAAI,CAWzB,EAEAwH,QAAO,SAAChI,EAAKmI,EAAMC,GAKf,IAAI1I,GAHJyI,EAAwB,iBAATA,EACXA,EAAKlH,MAAM,KAAOkH,GAEPE,QAMf,YAJkB/I,IAAbU,EAAIN,IAAmC,OAAbM,EAAIN,IAC/BoB,EAAAA,IAAIwH,IAAItI,EAAKN,EAAK,CAAC,GAGF,IAAhByI,EAAKtH,OACCC,EAAAA,IAAIwH,IAAItI,EAAKN,EAAK0I,GAGtBrH,KAAKiH,QAAQhI,EAAIN,GAAMyI,EAAMC,EACxC,GAIJG,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,GAIJgI,YAAW,SAACC,GACZ,IAAArE,EAAA,KACI,OAAO3C,EAAAA,IAAIK,QAAQ2G,GAIZ7G,EAAAA,IAAIC,KAAK4G,EAAQ,SAACC,EAAOC,GAS5B,GAPAA,EAAYA,EAAUC,QAAQ,QAAS,IAGvCF,EAAQ5H,EAAAA,IAAIiB,OAAO,CACf8G,KAAK,EAAMC,OAAO,EAAMC,OAAQ,KAAMC,MAAO,KAAMC,IAAK,CAAC,EAAGC,OAAQ,CAAC,EAAGlH,OAAQ,CAAC,GAClF0G,IAEItE,EAAK0C,WAAW4B,EAAMK,QACzB,OAAO,KAGX,IAAO3E,EAAKgD,WAAWsB,EAAMG,KACzB,OAAO,KAGJzE,EAAKgD,WAAWsB,EAAMI,SACzBJ,EAAMS,MAAQ,CAAEC,QAAS,SAI7B,IAAItB,EAAUhH,EAAAA,IAAIiB,OAAO,CACrB9B,KAAM,aAAcU,SAAU,MAC/B+H,EAAMW,cAGFX,EAAMW,MAGbX,EAAMQ,OAAS9E,EAAKgD,WAAWsB,EAAMQ,QAGrCR,EAAK,MAAStE,EAAKgD,WAAWsB,EAAK,OAGnC5H,EAAAA,IAAIwI,IAAIZ,EAAMQ,OAAQ,SAAC1I,GAAK,OAAK4D,EAAKgD,WAAW5G,EAAM,GAGvDkI,EAAM1G,OAASoC,EAAKgD,WAAWsB,EAAM1G,QAGrClB,EAAAA,IAAIwI,IAAIZ,EAAM1G,OAAQ,SAACxB,GAAK,OAAK4D,EAAKgD,WAAW5G,EAAM,GAGvDM,EAAAA,IAAIwI,IAAIZ,EAAMO,IAAK,SAACzI,GAAK,OAAK4D,EAAKkD,WAAW9G,EAAM,GAE/CsH,EAAQC,OAGTW,EAAM,uBAAyBtE,EAAK6D,aAAaH,EAASY,EAAMO,IAAIM,OAGpEb,EAAMQ,OAAOpB,EAAQ7H,MAAQmE,EAAKyD,aAAaC,IAGnDhH,EAAAA,IAAIiB,OAAO2G,EAAOA,EAAMQ,eACjBR,EAAMQ,OAEbpI,EAAAA,IAAIiB,OAAO2G,EAAOA,EAAM1G,eACjB0G,EAAM1G,OAEblB,EAAAA,IAAIiB,OAAO2G,EAAOA,EAAMO,YACjBP,EAAMO,IAEb,IAAIO,EAAUd,EAAMc,eACbd,EAAMc,eAENd,EAAMG,WACNH,EAAMI,aACNJ,EAAMK,OAGb,IAAIU,EAAQrF,EAAKqD,aAAa+B,EAASd,GAMnCgB,EAAWf,EAMf,OAJO/G,EAAAA,IAAIqF,IANI,CACX,MAAO,OAAQ,KAKMyC,KACrBA,GAAWC,EAAAA,EAAAA,kBAAiBhB,KAGzBiB,EAAAA,EAAAA,GAAEF,EAAUhB,EAAOtE,EAAK3D,KAAK,cAAV2D,CAAyBqF,GACvD,GAzFWhB,CA0Ff,EAEA3D,OAAM,WAEF,OAAO/D,KAAKN,KAAK,cAAVM,CAAyBA,KAAK0F,QAAQ,EACjD,GC/PJ,GAEIL,KAAM,cAENtJ,MAAO,CAEHC,WAAY,oBAGJ,MAAO,CAAC,CACZ,EACAE,KAAM,CAAC2C,SAGXiK,WAAY,oBAGJ,OAAO,IACX,EACA5M,KAAM,CAAC2C,SAGX6G,OAAQ,oBAGA,MAAO,CAAC,CACZ,EACAxJ,KAAM,CAAC2C,SAGX8G,MAAO,oBAGC,MAAO,CAAC,CACZ,EACAzJ,KAAM,CAAC2C,UAKf+G,KAAI,WAEA,MAAO,CACHC,UAAW7F,KAAKhE,WAAY+M,UAAW/I,KAAK8I,YAAc9I,KAAKhE,WAEvE,EAEAwL,MAAO,CAEHxL,WAAY,SAAUyD,GACbA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,EAEAqJ,WAAY,SAAUrJ,GACbA,IAAUO,KAAK+I,YAChB/I,KAAK+I,UAAYtJ,EAEzB,GAIJqG,QAAS,CAELkD,UAAS,SAACvJ,GAEN,IAAIwJ,EAAQxJ,EAAMoI,QAAQ,KAAM,IAC3BA,QAAQ,OAAQ,KAIrB,OAAKpI,EAAMwG,MAAM,MACNjG,KAAKpE,MAAMqN,GAGfA,CACX,EAEAC,UAAS,SAACzJ,GACV,IAAAE,EAAA,KACI,GAAKe,EAAAA,IAAIsF,QAAQvG,GACb,OAAO,EAGJiB,EAAAA,IAAIE,QAAQnB,KACfA,EAAQ,CAACA,IAGb,IAAI0J,EAAStI,EAAAA,IAAIC,KAAKrB,EAAO,SAAC2J,GAC1B,OAAOzJ,EAAK0J,SAASD,GAAO,EAChC,GAEA,OAASvI,EAAAA,IAAIqF,IAAIiD,GAAQ,EAC7B,EAEAG,WAAU,SAAC7J,GACX,IAAA4D,EAAA,KACI,GAAK3C,EAAAA,IAAIsF,QAAQvG,GACb,OAAO,EAGJiB,EAAAA,IAAIE,QAAQnB,KACfA,EAAQ,CAACA,IAGb,IAAI0J,EAAStI,EAAAA,IAAIC,KAAKrB,EAAO,SAAC2J,GAC1B,OAAO/F,EAAKgG,SAASD,GAAO,EAChC,GAEA,OAASvI,EAAAA,IAAIqF,IAAIiD,GAAQ,EAC7B,EAEAE,SAAQ,SAAC5J,GACT,IADgB8J,IAAM1J,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,KAAAA,UAAA,GAElB,GAAKa,EAAAA,IAAI4F,WAAW7G,GAChB,QAAUO,KAAKwJ,WAAW/J,GAG9B,IAAOiB,EAAAA,IAAIC,SAASlB,GAChB,QAAUA,EAGd,IAAOA,EAAMwG,MAAM,8BACf,QAAUxG,EAGd,IAAIgK,EAAU,CACVC,OAAQ1J,KAAK2F,MAAOgE,OAAQ3J,KAAK6F,UAAW+D,OAAQ5J,KAAK+I,UAAWc,QAASpO,QAGjF,OAAK8N,OAC6ChL,IAAvCwB,EAAAA,IAAIf,IAAIyK,EAAShK,OAAOlB,KAGzBwB,EAAAA,IAAIf,IAAIyK,EAAShK,EAC/B,EAEAqK,UAAS,SAACrK,GAEN,IAAIsK,EAAStK,EAAMoI,QAAQ,KAAM,IAAI3H,MAAM,KAM3C,OAJAT,EAAQoB,EAAAA,IAAIC,KAAKiJ,EAAQ,SAAC7J,GACtB,OAAO8J,EAAAA,IAAIC,QAAQ/J,EACvB,GAEO8J,EAAAA,IAAIE,QAAQzK,EAAMgE,KAAK,IAClC,EAEA0G,WAAU,SAAC1K,GAEAA,EAAMwG,MAAM,SACfxG,EAAQ,MAAQA,GAGpB,IAAIsK,EAAStK,EAAMS,MAAM,KAMzB,OAJAT,EAAQoB,EAAAA,IAAIC,KAAKiJ,EAAQ,SAAC7J,GACtB,OAAO8J,EAAAA,IAAIC,QAAQ/J,EACvB,GAEO8J,EAAAA,IAAIE,QAAQzK,EAAMgE,KAAK,IAClC,EAEA+F,WAAU,SAACY,EAAIxK,GAEX,OAAOwK,EAAG/K,KAAKW,KAAK2F,MAAO3F,KAAK6F,UAAWjG,EAC/C,EAEAyK,aAAY,SAACD,GACb,IAAAE,EAAA,KACI,OAAO5J,EAAAA,IAAI4F,WAAW8D,GAIf,mBAAAjK,EAAAN,UAAAC,OAAIM,EAAI,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,GAAAT,UAAAS,GAAA,OAAK8J,EAAG/K,KAAIkB,MAAP6J,EAAE,CAAME,EAAK3E,OAAKlD,OAAKrC,GAAK,EAHrC,kBAAMmK,QAAQC,MAAM,2CAA2C,CAI9E,EAEAC,QAAO,SAAC9L,EAAKc,GAET,GAAKd,EAAIsH,MAAM,MACX,OAAOjG,KAAKqK,aAAa5K,GAG7B,GAAKiB,EAAAA,IAAI4F,WAAW7G,GAChB,OAAOO,KAAKwJ,WAAW/J,GAG3B,IAAOiB,EAAAA,IAAIC,SAASlB,GAChB,OAAOA,EAGX,IAAOA,EAAMwG,MAAM,8BACf,OAAOjG,KAAKgJ,UAAUvJ,GAG1B,IAAIgK,EAAU,CACVC,OAAQ1J,KAAK2F,MAAOgE,OAAQ3J,KAAK6F,UAAW+D,OAAQ5J,KAAK+I,UAAWc,QAASpO,QAG7E0N,EAASpJ,EAAAA,IAAIf,IAAIyK,EAAShK,EAAMoI,QAAQ,MAAO,KAUnD,OARKpI,EAAMwG,MAAM,WACbkD,EAASzI,EAAAA,IAAIsF,QAAQmD,IAGpB1J,EAAMwG,MAAM,UACbkD,EAASzI,EAAAA,IAAIsF,QAAQmD,IAGlBA,CACX,EAEAuB,SAAQ,SAACxL,EAAMU,GAEX,GAAKc,EAAAA,IAAI4F,WAAWpH,GAChB,OAAOc,KAAKwJ,WAAWtK,EAAMU,GAGjC,IAAI6J,EAAU,CACVC,OAAQ1J,KAAK2F,MAAOgE,OAAQ3J,KAAK6F,UAAW+D,OAAQ5J,KAAK+I,UAAWc,QAASpO,QAOjF,OAJOiF,EAAAA,IAAIiK,OAAO/K,KAAgD,OAAnCG,EAAAA,IAAIf,IAAIyK,EAASvK,GAAO,OACnDa,EAAAA,IAAIwH,IAAIkC,EAASvK,EAAMU,GAGpBG,EAAAA,IAAIf,IAAIyK,EAASvK,EAC5B,EAEA0L,SAAQ,SAAC1L,EAAMO,GAEX,GAAKiB,EAAAA,IAAI4F,WAAWpH,GAChB,OAAOqL,QAAQC,MAAM,kDAGzB,IAAIf,EAAU,CACVC,OAAQ1J,KAAK2F,MAAOgE,OAAQ3J,KAAK6F,UAAW+D,OAAQ5J,KAAK+I,UAAWc,QAASpO,QAGjFsE,EAAAA,IAAIwH,IAAIkC,EAASvK,EAAMO,EAC3B,GAIJoL,YAAW,SAAClD,EAAOtD,GACnB,IAAAyG,EAAA,KACI,IAAOpK,EAAAA,IAAIK,QAAQ4G,GACf,OAAOA,EAGX,IAAO3H,KAAKsJ,WAAW3B,EAAW,KAC9B,OAAO,KAGX,IAAO3H,KAAKkJ,UAAUvB,EAAc,QAChC,OAAO,KAGX,IAIIoD,EAAe,CACftL,MAAO,GAAIG,SAAU,MAGzB+H,EAAQ5H,EAAAA,IAAIiB,OARG,CACXgK,MAAO,CAAC,EAAGjP,MAAO,CAAC,EAAGkP,OAAQ,CAAC,EAAGxC,QAAS,CAAC,EAAGC,MAAO,CAAC,GAO9Bf,GAE7B,IAAIqD,EAAQ,CAAC,EAEbjL,EAAAA,IAAIe,KAAK6G,EAAa,MAAG,SAAClI,EAAOd,GAExB+B,EAAAA,IAAIC,SAASlB,KACdA,EAAQ,CAAEA,MAAOA,IAGrBuL,EAAMrM,GAAOoB,EAAAA,IAAIiB,OAAO+J,EAActL,EAC1C,GAEA,IAAIwL,EAAS,CAAC,EAEdlL,EAAAA,IAAIe,KAAK6G,EAAc,OAAG,SAAClI,EAAOd,GAC9BsM,EAAOH,EAAKX,WAAWxL,IAAQmM,EAAKT,aAAa5K,EACrD,GAEA,IAAI1D,EAAQ,CAAC,EAEbgE,EAAAA,IAAIe,KAAK6G,EAAa,MAAG,SAAClI,EAAOd,GAC7B5C,EAAM+O,EAAKhB,UAAUnL,IAAQmM,EAAKL,QAAQ9L,EAAKc,EACnD,GAEA1D,EAAQgE,EAAAA,IAAIiB,OAAOjF,EAAOkP,GAE1BlL,EAAAA,IAAIe,KAAKkK,EAAO,SAACvL,EAAOd,GAEpB,IAAIuM,EAAY,YAAcvM,EAE9B5C,EAAM+O,EAAKX,WAAWe,IAAc,SAAC1C,GACjCsC,EAAKF,SAASnL,EAAMA,MAAO+I,EAC/B,EAEAzM,EAAM+O,EAAKhB,UAAUnL,IAAQmM,EAAKJ,SAASjL,EAAMA,MAC7CA,EAAMG,SACd,GAEA,IAAIgI,EAAYvD,EAAMwD,QAAQ,QAAS,IAMvC,GAJMhH,EAAAA,IAAIqF,IAAI,CAAC,MAAO,KAAM0B,KACxBA,GAAYgB,EAAAA,EAAAA,kBAAiBhB,IAG5BlH,EAAAA,IAAIsF,QAAQ4B,GACb,OAAO,KAGL5H,KAAKsJ,WAAW3B,EAAa,SAC/B5L,EAAMqM,MAAQ,kBAGlB,IAAIM,EAAQ,CACR7L,QAASmD,KAAKN,KAAK,aAAVM,CAAwB2H,EAAMc,UAO3C,OAJA1I,EAAAA,IAAIe,KAAK6G,EAAMe,MAAO,SAACvH,EAAMxC,GACzB+J,EAAM/J,GAAOmM,EAAKpL,KAAK,aAAVoL,CAAwB3J,EACzC,IAEO0H,EAAAA,EAAAA,GAAEjB,EAAW7L,EAAO2M,EAC/B,EAEAyC,WAAU,SAACC,GACX,IAAAC,EAAA,KACQtH,EAAS,WAAH,OAASlD,EAAAA,IAAIC,KAAKsK,EAAU,SAAC3L,EAAOd,GAC1C,OAAO0M,EAAK3L,KAAK,cAAV2L,CAAyB5L,EAAOd,EAC3C,EAAE,EAUF,OARK+B,EAAAA,IAAI4F,WAAW8E,KAChBrH,EAAS,WAAH,OAASqH,EAAS7K,MAAM8K,EAAK1F,MAAM,GAGxCjF,EAAAA,IAAIC,SAASyK,KACdrH,EAAS,WAAH,OAASsH,EAAKrC,UAAUoC,EAAS,GAGpCrH,CACX,EAEAA,OAAM,WACN,IAAAuH,EAAA,KACI,OAAOzK,EAAAA,IAAIC,KAAKd,KAAK0F,OAAQ,SAACjG,EAAOd,GAAG,OAAK2M,EAAK5L,KAAK,cAAV4L,CAAyB7L,EAAOd,EAAI,EACrF,G,gtCClWqE,SAAA4M,EAAAC,GAAA,yBAAAA,GAAA,oBAAA3M,OAAAM,UAAAsM,SAAApM,KAAAmM,MAAAE,EAAAA,EAAAA,SAAAF,EAAA,CAEzE/P,OAAOkQ,oBAAsB,CACzB,KAAQhQ,EAAAA,OAAOC,MAAM,QACrB,MAASD,EAAAA,OAAOC,MAAM,QACtB,MAASD,EAAAA,OAAOC,MAAM,YACtB,MAASD,EAAAA,OAAOC,MAAM,aACtB,GAAMD,EAAAA,OAAOC,MAAM,UAGvBH,OAAOmQ,oBAAsB,CACzB,OAAUjQ,EAAAA,OAAOC,MAAM,UACvB,OAAUD,EAAAA,OAAOC,MAAM,UACvB,QAAWD,EAAAA,OAAOC,MAAM,WACxB,OAAUD,EAAAA,OAAOC,MAAM,UACvB,SAAYD,EAAAA,OAAOC,MAAM,aAG7BH,OAAOoQ,iBAAmB,CACtBpO,UAAW,CACPxB,IAAK,CAAC,OAAQ,QAAS,SAAUC,KAAM,UAE3C4L,IAAK,CACD7L,IAAK,CAAC,QAASC,KAAM,UAEzB6L,MAAO,CACH9L,IAAK,CAAC,QAASC,KAAM,WAI7BT,OAAOC,iBAAmB,CACtB,EAGJD,OAAOI,oBAAsB,CACzB,EAIJV,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KAGRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,IACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,IACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KAER,SAEIkK,KAAM,WAENtJ,MAAO,CAEHC,WAAY,oBAGJ,MAAO,CAAC,CACZ,EACAE,KAAM,CAAC2C,SAGX8G,MAAO,oBAGC,MAAO,CAAC,CACZ,EACAzJ,KAAM,CAAC2C,SAGXyJ,MAAO,oBAGC,MAAO,CAAC,CACZ,EACApM,KAAM,CAAC2C,SAGXiN,WAAY,oBAGJ,OAAO,CACX,EACA5P,KAAM,CAACqJ,UAGXwG,aAAc,oBAGN,OAAO,CACX,EACA7P,KAAM,CAACqJ,WAKfK,KAAI,WAEA,MAAO,CACHoG,MAAM,EAAOC,MAAM,EAAOC,SAAU,GAAIC,QAASnM,KAAKoM,eAAepM,KAAKhE,YAElF,EAEAwL,MAAO,CACHxL,WAAY,WACRgE,KAAKmM,QAAUnM,KAAKoM,eAAepM,KAAKhE,WAC5C,GAGJqQ,QAAO,WAEHrM,KAAKgM,MAAO,CAChB,EAEAlG,QAAS,CAELwG,WAAU,SAAC7M,GAEP,OAAO8M,KAAKC,UAAUzM,EAAAA,IAAI0M,MAAMhN,GAAQ,KAAM,GAAGoI,QAAQ,uBAAwB,SAAC6E,GAC9E,OAAOA,EAAQ7E,QAAQ,WAAY,IAAIA,QAAQ,WAAY,IAAIA,QAAQ,MAAO,KAAKA,QAAQ,OAAQ,KACvG,EACJ,EAEA8E,iBAAgB,SAAClN,GAEb,OAAO,IAAImN,SAAS,UAADnK,OAAWzC,KAAKsM,WAAW7M,GAAM,KAA7C,EACX,EAEA2M,eAAc,SAAC9D,GACf,IAAA3I,EAAA,KACQwJ,EAAS,CAAC,EAQd,OANApJ,EAAAA,IAAIe,KAAKwH,EAAO,SAAC7I,EAAOd,GACpBwK,EAAOxK,GAAOoB,EAAAA,IAAIiB,OAAOrB,EAAKkN,eAAepN,GAAQ,CACjDqN,MAAuC,KAA/BpM,EAAAA,IAAIqM,KAAK5D,GAAQrJ,OAAS,IAE1C,GAEOqJ,CACX,EAEA0D,eAAc,SAACG,GACf,IAAA3J,EAAA,KACQ8F,EAASnJ,KAAKiN,WAAW,KAAIC,EAAAA,EAAA,GAC1BnN,EAAAA,IAAIoN,OAAOH,EAAO,CAAC,aAAW,IAAEvE,QAAS,CAAC,EAAG2E,QAASpN,KAAKqN,WAAWL,MA8B7E,OA3BKtM,EAAAA,IAAIE,QAAQoM,EAAMvE,WACnBuE,EAAMvE,QAAU5H,EAAAA,IAAIyM,MAAMN,EAAMvE,UAG7B/H,EAAAA,IAAIK,QAAQiM,EAAMvE,UAAc/H,EAAAA,IAAIC,SAASqM,EAAMvE,WACtDuE,EAAMvE,QAAU,CAAC,GAGrBU,EAAOiE,QAAc,KAAI,CACrBlR,KAAIqR,EAASP,EAAMvE,UAGnB/H,EAAAA,IAAIK,QAAQiM,EAAMvE,SAClB1I,EAAAA,IAAIe,KAAKkM,EAAMvE,SAAW,CAAC,EAAG,SAAChJ,EAAOd,GAE3BA,EAAIsH,MAAM,OACbtH,GAAO,KAAMiD,EAAAA,EAAAA,SAGjBuH,EAAgB,QAAExK,GAAOoB,EAAAA,IAAIiB,OAAOqC,EAAKwJ,eAAepN,GAAQ,CAC5DqN,MAAkD,KAA1CpM,EAAAA,IAAIqM,KAAK5D,EAAgB,SAAGrJ,OAAS,IAErD,GAEAqJ,EAAOV,QAAUuE,EAAMvE,QAGpBU,CACX,EAEAqE,iBAAgB,SAACtO,GAEb,IAAIuO,EAAYvO,EAAKO,MAMrB,MAJ2B,mBAAfP,EAAKO,QACbgO,EAAYC,KAAK,SAAWxO,EAAKO,MAAMgM,WAAa,WAGjDgC,CACX,EAEAE,aAAY,SAACzO,GAET,IAAIuO,EAAY,GAsBhB,MApB2B,iBAAfvO,EAAKO,QACbgO,EAAY/M,EAAAA,IAAIkN,OAAO1O,EAAKO,QAGL,kBAAfP,EAAKO,QACbgO,EAAY/M,EAAAA,IAAIkN,OAAO1O,EAAKO,QAGL,iBAAfP,EAAKO,QACbgO,EAAY/M,EAAAA,IAAIkN,OAAO1O,EAAKO,QAGL,WAAtB8N,EAAOrO,EAAKO,SACbgO,EAAYlB,KAAKC,UAAUtN,EAAKO,QAGT,mBAAfP,EAAKO,QACbgO,EAAYC,KAAK,SAAWxO,EAAKO,MAAMgM,WAAa,WAGjDgC,CACX,EAEAI,aAAY,SAAC3O,GAET,IAAI4O,EAAY,GAsBhB,MApBmB,WAAd5O,EAAK6O,OACND,EAAYpN,EAAAA,IAAIkN,OAAO1O,EAAKO,QAGb,YAAdP,EAAK6O,OACND,EAAYpN,EAAAA,IAAG,QAASxB,EAAKO,QAGd,WAAdP,EAAK6O,OACND,EAAYpN,EAAAA,IAAIsN,OAAO9O,EAAKO,MAAO,IAGpB,WAAdP,EAAK6O,OACND,EAAYvB,KAAK0B,MAAM/O,EAAKO,QAGb,aAAdP,EAAK6O,OACND,EAAYI,KAAKhP,EAAKiP,WAGnBL,CACX,EAEAM,cAAa,SAACzP,EAAK0P,GAEf,IAAK3N,EAAAA,IAAIsF,QAAQqI,GAAjB,CAIA,IAAIC,EAAS3P,EAAIkJ,QAAQ,2BAA4B,KAAFpF,OAAO4L,EAAM,QAE5D5O,EAAQM,EAAAA,IAAIf,IAAIgB,KAAMrB,EAAK,CAAC,GAEhCoB,EAAAA,IAAIwO,MAAMvO,KAAMrB,GAChBoB,EAAAA,IAAIwH,IAAIvH,KAAMsO,EAAQ7O,GAEtBO,KAAKkM,SAAWrL,EAAAA,IAAIC,KAAKd,KAAKkM,SAAU,SAACsC,GACrC,OAAOA,EAAE3G,QAAQlJ,EAAK2P,EAC1B,EAXA,CAYJ,EAEAG,YAAW,SAAC9P,EAAK0P,GAEb,IAAK3N,EAAAA,IAAIsF,QAAQqI,GAAjB,CAIA,IAAIC,EAAS3P,EAAIkJ,QAAQ,2BAA4B,QAAFpF,OAAU4L,IAEzD5O,EAAQM,EAAAA,IAAIf,IAAIgB,KAAMrB,EAAK,CAAC,GAEhCoB,EAAAA,IAAIwO,MAAMvO,KAAMrB,GAChBoB,EAAAA,IAAIwH,IAAIvH,KAAMsO,EAAQ7O,GAEtBO,KAAKkM,SAAWrL,EAAAA,IAAIC,KAAKd,KAAKkM,SAAU,SAACsC,GACrC,OAAOA,EAAE3G,QAAQlJ,EAAK2P,EAC1B,EAXA,CAYJ,EAEAI,WAAU,SAAC/P,EAAKzC,GAEZ,IAAIuD,EAAQM,EAAAA,IAAIf,IAAIgB,KAAMrB,EAAK,CAAC,GAEjBoB,EAAAA,IAAIf,IAAIS,EAAO,qBAEhB,WAATvD,IACDuD,EAAMgJ,QAAU,CAAC,GAGP,WAATvM,IACDuD,EAAMgJ,QAAU,IAGpB1I,EAAAA,IAAIwH,IAAI9H,EAAO,oBAAmB8N,EAAS9N,EAAMgJ,SACrD,EAEAwE,WAAU,WACV,IAAA3C,EAAA,KADW3L,EAAGkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAAMJ,EAAKI,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,CAAC,EAErBa,EAAAA,IAAIsF,QAAQrH,KACfc,EAAQM,EAAAA,IAAIf,IAAIgB,KAAMrB,EAAK,CAAC,IAiEhC,OA1DAoB,EAAAA,IAAIe,KAJQ,CACR,MAAO,QAAS,YAAa,UAAW,QAAS,QAAS,QAAS,MAGvD,SAAC5B,GACba,EAAAA,IAAIwO,MAAM9O,EAAOP,EACrB,GAEAa,EAAAA,IAAIe,KAAKrB,EAAM2N,SAAW,CAAC,EAAG,SAAC/F,GAE3B,IAAK3G,EAAAA,IAAIsF,QAAQqB,EAAI1I,KAArB,CAIA,IAAIgQ,EAAY,CACZlP,MAAO4H,EAAI5H,MAAOG,SAAU,MAehC,GAZkB,WAAbyH,EAAI0G,OACLY,EAAU/O,SAAWc,EAAAA,IAAIkN,OAAOvG,EAAIzH,UAAY,KAGlC,YAAbyH,EAAI0G,OACLY,EAAU/O,SAAWc,EAAAA,IAAG,QAAS2G,EAAIzH,UAAY,UAGnC,WAAbyH,EAAI0G,OACLY,EAAU/O,SAAW2M,KAAK0B,MAAM5G,EAAIzH,UAAY,OAGlC,UAAbyH,EAAInL,KACL,OAAO6D,EAAAA,IAAIwH,IAAI9H,EAAO,CAAC4H,EAAInL,KAAMmL,EAAI1I,KAAMgQ,GAG/C,IAAIb,EAAY,GAEhB,IACIA,EAAYxD,EAAKuD,aAAaxG,EAClC,CAAE,MAAOzE,GACElC,EAAAA,IAAIsF,QAAQqB,EAAI5H,QACnB8K,QAAQC,MAAM,iBAAmBnD,EAAI5H,MAE7C,CAEA,MAAkB,SAAb4H,EAAInL,KACE6D,EAAAA,IAAIwH,IAAI9H,EAAO4H,EAAI1I,IAAKmP,GAGjB,UAAbzG,EAAInL,MAIS,UAAbmL,EAAInL,MAIS,OAAbmL,EAAInL,KAPE6D,EAAAA,IAAIwH,IAAI9H,EAAO,CAAC4H,EAAInL,KAAMmL,EAAI1I,KAAMmP,QAO/C,CA5CA,CAgDJ,GAEKpN,EAAAA,IAAIsF,QAAQrH,GACNc,EAGJM,EAAAA,IAAIwH,IAAIvH,KAAMrB,EAAKc,EAC9B,EAEA4N,WAAU,SAAChL,GACX,IAAAyI,EAAA,KADenM,EAAGkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAEbuN,EAAU,CAAC,EAqCf,OAnCArN,EAAAA,IAAIe,KAAKf,EAAAA,IAAI6O,KAAKvM,EAAI,CAAC,MAAO,QAAS,cAAe,SAAC5C,EAAOoP,GAC1DzB,GAAQxL,EAAAA,EAAAA,SAAU,CACd1F,KAAM,OAAQ6R,KAAIR,EAAS9N,GAAOd,IAAKkQ,EAAKpP,MAAOqL,EAAK6C,aAAa,CAAElO,MAAAA,IAAUG,SAAU,KAAMuO,SAAUrD,EAAK0C,iBAAiB,CAAE/N,MAAAA,IAE3I,GAEAM,EAAAA,IAAIe,KAAKf,EAAAA,IAAIf,IAAIqD,EAAI,QAAS,CAAC,GAAI,SAAC5C,EAAOoP,GAEvC,IAAI1F,EAAS,CACTjN,KAAM,QAAS6R,KAAIR,EAAS9N,GAAOd,IAAKkQ,EAAKjP,SAAU,KAAMuO,SAAUrD,EAAK0C,iBAAiB,CAAE/N,MAAAA,KAG9FiB,EAAAA,IAAIC,SAASlB,KACd0J,EAAO1J,MAAQqL,EAAK6C,aAAa,CAAElO,MAAAA,KAGlCiB,EAAAA,IAAIoO,SAASrP,IACdM,EAAAA,IAAIiB,OAAOmI,EAAQ,CAAE1J,MAAOqL,EAAK6C,aAAalO,GAAQG,SAAUG,EAAAA,IAAIf,IAAIS,EAAO,WAAY,QAG/F2N,GAAQxL,EAAAA,EAAAA,SAAUuH,CACtB,GAEApJ,EAAAA,IAAIe,KAAKf,EAAAA,IAAIf,IAAIqD,EAAI,QAAS,CAAC,GAAI,SAAC5C,EAAOoP,GACvCzB,GAAQxL,EAAAA,EAAAA,SAAU,CAAE1F,KAAM,QAAS6R,KAAIR,EAAS9N,GAAOd,IAAKkQ,EAAKpP,MAAOqL,EAAK6C,aAAa,CAAElO,MAAAA,IAAUG,SAAU,KAAMuO,SAAUrD,EAAK0C,iBAAiB,CAAE/N,MAAAA,IAC5J,GAEAM,EAAAA,IAAIe,KAAKf,EAAAA,IAAIf,IAAIqD,EAAI,QAAS,CAAC,GAAI,SAAC5C,EAAOoP,GACvCzB,GAAQxL,EAAAA,EAAAA,SAAU,CAAE1F,KAAM,QAAS6R,KAAIR,EAAS9N,GAAOd,IAAKkQ,EAAKpP,MAAOqL,EAAK6C,aAAa,CAAElO,MAAAA,IAAUG,SAAU,KAAMuO,SAAUrD,EAAK0C,iBAAiB,CAAE/N,MAAAA,IAC5J,GAEAM,EAAAA,IAAIe,KAAKf,EAAAA,IAAIf,IAAIqD,EAAI,KAAM,CAAC,GAAI,SAAC5C,EAAOoP,GACpCzB,GAAQxL,EAAAA,EAAAA,SAAU,CAAE1F,KAAM,KAAM6R,KAAIR,EAAS9N,GAAOd,IAAKkQ,EAAKpP,MAAOqL,EAAK6C,aAAa,CAAElO,MAAAA,IAAUG,SAAU,KAAMuO,SAAUrD,EAAK0C,iBAAiB,CAAE/N,MAAAA,IACzJ,GAEKiB,EAAAA,IAAIsF,QAAQrH,IAIjBqB,KAAK+O,UAAU,WACVhP,EAAAA,IAAIwH,IAAIuD,EAAM,GAAFrI,OAAK9D,EAAG,YAAYyO,EACrC,GALWA,CAQf,EAEA4B,QAAO,SAACrQ,GAEJ,IAAIc,EAAQM,EAAAA,IAAIf,IAAIgB,KAAM,GAAFyC,OAAK9D,EAAG,YAAY,CAAC,GAE7CoB,EAAAA,IAAIwH,IAAI9H,GAAOmC,EAAAA,EAAAA,QAAQ,CACnB1F,KAAM,QAAS6R,KAAM,SAAUpP,IAAK,GAAIc,MAAO,GAAIG,SAAU,OAGjEG,EAAAA,IAAIwH,IAAIvH,KAAM,GAAFyC,OAAK9D,EAAG,YAAYc,EACpC,EAEAwP,WAAU,SAACtQ,EAAKO,GAEZa,EAAAA,IAAIwO,MAAMvO,KAAM,GAAFyC,OAAK9D,EAAG,aAAA8D,OAAYvD,IAElCc,KAAKiN,WAAWtO,EACpB,EAEAuQ,gBAAe,SAACvQ,GAEZkC,EAAAA,IAAIsO,OAAOnP,KAAKkM,SAAUvN,EAC9B,EAEAyQ,WAAU,SAACzQ,GAEP,IAAIc,EAAQM,EAAAA,IAAIf,IAAIgB,KAAMrB,EAAK,CAAC,GAEhCoB,EAAAA,IAAIwH,IAAI9H,EAAO,QAASmC,EAAAA,EAAAA,QAAQ,CAC5BkL,MAAsC,KAA9BpM,EAAAA,IAAIqM,KAAKtN,GAAOK,OAAS,GAAU/D,MAAO,CAAEC,WAAY,eAAiByM,QAAS,CAAC,IAG/F1I,EAAAA,IAAIiB,OAAOhB,KAAMrB,EAAKc,EAC1B,EAEA4P,cAAa,SAAC1Q,GAEVoB,EAAAA,IAAIwO,MAAMvO,KAAMrB,EACpB,EAEA2Q,cAAa,SAAC3Q,GAEV,IAAA4Q,EAAmB,CACfxP,EAAAA,IAAIf,IAAIgB,KAAMrB,GAAMoB,EAAAA,IAAIf,IAAIgB,KAAMrB,EAAIkJ,QAAQ,WAAY,MADzDxF,EAAEkN,EAAA,GAAEzT,EAAMyT,EAAA,GAIXxM,EAAQ7F,OAAOsS,UAMnB,GAJA3O,EAAAA,IAAIC,KAAKhF,EAAQ,SAAC2T,GACTA,EAAI3C,MAAQzK,EAAGyK,QAAQ/J,EAAQ2M,KAAKzS,IAAI8F,EAAO0M,EAAI3C,OAC5D,GAEK/J,IAAU7F,OAAOsS,UAAtB,CAIA,IAAIG,EAAc9O,EAAAA,IAAIoB,KAAKnG,EAAQ,CAC/BgR,MAAO/J,IAGXhD,EAAAA,IAAIiB,OAAO2O,EAAa,CACpB7C,MAAOzK,EAAGyK,QAGd/M,EAAAA,IAAIiB,OAAOqB,EAAI,CAAEyK,MAAO/J,GAVxB,CAWJ,EAEA6M,gBAAe,SAACjR,GAEZ,IAAAkR,EAAmB,CACf9P,EAAAA,IAAIf,IAAIgB,KAAMrB,GAAMoB,EAAAA,IAAIf,IAAIgB,KAAMrB,EAAIkJ,QAAQ,WAAY,MADzDxF,EAAEwN,EAAA,GAAE/T,EAAM+T,EAAA,GAIX9M,EAAQ7F,OAAOC,UAMnB,GAJA0D,EAAAA,IAAIC,KAAKhF,EAAQ,SAAC2T,GACTA,EAAI3C,MAAQzK,EAAGyK,QAAQ/J,EAAQ2M,KAAK1S,IAAI+F,EAAO0M,EAAI3C,OAC5D,GAEK/J,IAAU7F,OAAOC,UAAtB,CAIA,IAAIwS,EAAc9O,EAAAA,IAAIoB,KAAKnG,EAAQ,CAC/BgR,MAAO/J,IAGXhD,EAAAA,IAAIiB,OAAO2O,EAAa,CACpB7C,MAAOzK,EAAGyK,QAGd/M,EAAAA,IAAIiB,OAAOqB,EAAI,CAAEyK,MAAO/J,GAVxB,CAWJ,GAIJ+M,YAAW,SAACzN,EAAI5C,EAAOd,GACvB,IAAA0M,EAAA,KACQ0E,EAAY,CAIhBA,WAA0B,WACtB1E,EAAK6D,gBAAgBvQ,EACzB,GAEIqR,EAAgB,CAChBC,KAAM,qBAGVD,QAA2B,WACvB3E,EAAK6D,gBAAgBvQ,EACzB,GAEIuR,EAAW,CACXD,KAAM,qBAGVC,QAAsB,WAClB7E,EAAK+D,WAAW,GAAD3M,OAAI9D,EAAG,YAC1B,GAEIwR,EAAc,CACdF,KAAM,qBAGVE,QAAyB,WACrB9E,EAAKgE,cAAc1Q,EACvB,GAEIyR,EAAc,CACdH,KAAM,qBAGVG,QAAyB,WACrB/E,EAAKiE,cAAc3Q,EACvB,GAEI0R,EAAgB,CAChBJ,KAAM,qBAGVI,QAA2B,WACvBhF,EAAKuE,gBAAgBjR,EACzB,GAGA,OAAA8G,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,2BACsCP,GAAS,EAAAtK,EAAAA,EAAAA,aAAA,sCAAAA,EAAAA,EAAAA,aAAA,IAE5BuK,EAAa,EAAAvK,EAAAA,EAAAA,aAAA,oCAAAA,EAAAA,EAAAA,aAAA,iCAGnB9G,EAAIkJ,QAAQ,2BAA4B,OAAKpC,EAAAA,EAAAA,aAAA,aAAQ9G,EAAIkJ,QAAQ,2BAA4B,WAAKpC,EAAAA,EAAAA,aAAA,kCAAAA,EAAAA,EAAAA,aAAA,IAG5F2K,EAAW,EAAA3K,EAAAA,EAAAA,aAAA,sCAAAA,EAAAA,EAAAA,aAAA,IACX4K,EAAa,EAAA5K,EAAAA,EAAAA,aAAA,0CAAAA,EAAAA,EAAAA,aAAA,iCAAAA,EAAAA,EAAAA,aAAA,IAGbyK,EAAQ,EAAAzK,EAAAA,EAAAA,aAAA,oCAAAA,EAAAA,EAAAA,aAAA,oCAAAA,EAAAA,EAAAA,aAAA,IAGR0K,EAAW,EAAA1K,EAAAA,EAAAA,aAAA,qCAIlC,EAEA8K,WAAU,SAAClO,EAAIoN,EAAK9Q,GACpB,IAAA2M,EAAA,KACI,GAAa,SAARmE,EACD,OAAO,KAGX,IAAIe,EAAQ7R,EAAIkJ,QAAQ,yBAA0B,MAC9CpI,EAAQM,EAAAA,IAAIf,IAAIgB,KAAKyQ,MAAO,GAAFhO,OAAK9D,EAAG,aAAA8D,OAAYgN,GAAO,CAAC,GAEtD1T,EAAQgE,EAAAA,IAAI0M,MAAM1M,EAAAA,IAAIf,IAAIvD,OAAOI,oBAAqB,GAAF4G,OAAK+N,EAAK,UAAU,CAAC,IAE7EzU,EAAQgE,EAAAA,IAAIiB,OAAO,CAAC,EAAGvF,OAAOoQ,iBAAkB9P,GAEhDgE,EAAAA,IAAIe,KAAK/E,EAAO,SAACmD,EAAMwR,GACZhQ,EAAAA,IAAIsF,QAAQ9G,EAAI,MAAW2B,EAAAA,IAAIqF,IAAIhH,EAAI,IAAMO,EAAMvD,QACtDH,EAAQgE,EAAAA,IAAIwO,MAAMxS,EAAO2U,GAEjC,GAEA,IAAIC,EAAY,CACZlU,KAAM,KAAMH,QAASb,OAAOkQ,oBAGhCgF,sBAAmC,WAC/BrF,EAAKyD,UAAU,kBAAMzD,EAAK2B,WAAWtO,EAAI,EAC7C,GAEIiS,EAAW,CACXnU,KAAM,KAAMoU,aAAa,EAAMvU,QAASP,EAAO+U,aAAc,SAGjEF,sBAAkC,WAC9BtF,EAAKyD,UAAU,kBAAMzD,EAAK2B,WAAWtO,EAAI,EAC7C,GAEIoS,EAAY,CACZtU,KAAM,KAAMH,QAASb,OAAOmQ,oBAGhCmF,sBAAmC,WAC/BzF,EAAKyD,UAAU,kBAAMzD,EAAK2B,WAAWtO,EAAI,EAC7C,GAIIqS,GAFSjR,EAAAA,IAAIf,IAAIjD,EAAO,GAAF0G,OAAKhD,EAAMd,IAAG,YAAY,IAE9B,CAClBlC,KAAM,KAAM6L,MAAOtI,KAAKsI,MAAO3C,MAAO3F,KAAK2F,MAG/CqL,sBAAyC,WACrC1F,EAAKyD,UAAU,kBAAMzD,EAAK2B,WAAWtO,EAAI,EAC7C,IAEIsS,GAASxL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,qBAAAZ,EAAAA,EAAAA,YAAA,YACiB7Q,EAAMA,MAAK,+BAAA0R,GAAA,OAAX1R,EAAMA,MAAK0R,CAAA,GAAMH,GAAe,MAG1DI,EAAgB,CAChB3U,KAAM,KAAM4U,QAAS,EAAGC,UAAU,EAGtCF,sBAAuC,WACnC9F,EAAKyD,UAAU,kBAAMzD,EAAK2B,WAAWtO,EAAI,EAC7C,IAEe8G,EAAAA,EAAAA,aAAA,sCAAAA,EAAAA,EAAAA,aAAA,UAEH1F,EAAAA,IAAIf,IAAIjD,EAAO,GAAF0G,OAAKhD,EAAMd,IAAG,SAAS,QAIhD,OAAA8G,EAAAA,EAAAA,aAAA,iCAAAA,EAAAA,EAAAA,aAAA,sCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,YAAAZ,EAAAA,EAAAA,YAAA,YAG6B7Q,EAAMvD,KAAI,+BAAAiV,GAAA,OAAV1R,EAAMvD,KAAIiV,CAAA,GAAMR,GAAS,SAAAlL,EAAAA,EAAAA,aAAA,qCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,YAAAZ,EAAAA,EAAAA,YAAA,YAGzB7Q,EAAMd,IAAG,+BAAAwS,GAAA,OAAT1R,EAAMd,IAAGwS,CAAA,GAAMP,GAAQ,SAAAnL,EAAAA,EAAAA,aAAA,sCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,YAAAZ,EAAAA,EAAAA,YAAA,YAGvB7Q,EAAMsO,KAAI,+BAAAoD,GAAA,OAAV1R,EAAMsO,KAAIoD,CAAA,GAAMJ,GAAS,SAAAtL,EAAAA,EAAAA,aAAA,sCAGzCwL,KAASxL,EAAAA,EAAAA,aAAA,0CAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAAAZ,EAAAA,EAAAA,YAAA,YAGM7Q,EAAMG,SAAQ,+BAAAuR,GAAA,OAAd1R,EAAMG,SAAQuR,CAAA,GAAMC,GAAa,SAAA3L,EAAAA,EAAAA,aAAA,wCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,4CAGP,kBAAM5F,EAAK2D,WAAWtQ,EAAK8Q,EAAI,+BAAA8B,EAAAA,EAAAA,iBAAA,iBAIzF,EAEAC,YAAW,SAACnP,EAAI5C,EAAOd,GACvB,IAAA8S,EAAAC,EAAA,KACI,IAAM7Q,EAAAA,IAAIqF,IAAIlG,KAAKkM,SAAUvN,GACzB,OAAO,KAGX,IAAIgT,EAAe,CACfrV,QAASb,OAAOC,iBAAkBmV,aAAa,EAAM7U,WAAY2C,EAAIkJ,QAAQ,yBAA0B,MAG3G8J,sBAAsC,SAAClS,GACnCiS,EAAKtD,cAAczP,EAAKc,EAC5B,GAEImS,EAAa,CACb5V,WAAY2C,EAAIkJ,QAAQ,yBAA0B,MAGtD+J,sBAAoC,SAACnS,GACjCiS,EAAKjD,YAAY9P,EAAKc,EAC1B,GAEIoS,EAAa,CACb7V,WAAY+D,EAAAA,IAAIf,IAAIS,EAAO,qBAC3BnD,QAAS,CACL,OAAU0D,KAAKpE,MAAM,UACrB,OAAUoE,KAAKpE,MAAM,WAI7BiW,sBAAoC,SAACpS,GACjCiS,EAAKhD,WAAW/P,EAAKc,EACzB,GAEIyQ,EAAW,CACXhU,KAAM,UAAWO,KAAM,KAAMiB,MAAM,EAGvCwS,QAAsB,WAClBwB,EAAK1C,QAAQrQ,EAAKc,EACtB,GAEI1D,EAAQgE,EAAAA,IAAIf,IAAIS,EAAO,WAM3B,OAJOM,EAAAA,IAAImG,IAAIzG,EAAO,aAClB1D,EAAQiE,KAAKqN,WAAWhL,EAAI1D,EAAKc,KAGrCgG,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,8DAAO,EAAPzL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,oDAE0DQ,EAAK9V,MAAM,SAAO,4BAAA6J,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WACnDS,EAAY,WAAAlM,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,qDAEsBQ,EAAK9V,MAAM,UAAQ,4BAAA6J,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,UACtDU,EAAU,WAAAnM,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,qDAEyBQ,EAAK9V,MAAM,YAAU,4BAAA6J,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WACvDW,EAAUtG,EAAAkG,EAAGC,EAAK9V,MAAM,iBAAe6V,EAAA,2BAAAA,EAAA,SAAAhM,EAAAA,EAAAA,aAAA,0CAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAGvChB,EAAQ,4BAAAqB,EAAAA,EAAAA,iBAAA,uBAAA9L,EAAAA,EAAAA,aAAA,yCAGpB5E,EAAAA,IAAIC,KAAK/E,EAAO,SAACmD,EAAMuQ,GAAG,OAAKiC,EAAKhS,KAAK,aAAVgS,CAAwBrP,EAAIoN,EAAK9Q,EAAI,KAAC,GAItF,EAEAmT,cAAa,SAACzP,EAAI5C,EAAOd,GACzB,IAAAoT,EAAA,KACQtU,EAAY,CACZ,sBAGCoD,EAAAA,IAAIqF,IAAIlG,KAAKkM,SAAUvN,IACxBlB,EAAU8F,KAAK,WAGnB,IAAIyO,EAAc,WACd,OAAOD,EAAKrS,KAAK,gBAAVqS,CAA2BtS,EAAMgJ,SAAW,CAAC,EAAG,GAAFhG,OAAK9D,EAAG,YACjE,EAQA,MANuC,WAAlCc,EAAM2N,QAAc,KAAQ,OAC7B4E,EAAc,WACV,OAAAvM,EAAAA,EAAAA,aAAA,aAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,sBAA6BzR,EAAMgJ,QAAO,+BAAA0I,GAAA,OAAb1R,EAAMgJ,QAAO0I,CAAA,UAC9C,IAGJ1L,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CAChBuC,KAAKN,KAAK,cAAVM,CAAyBqC,EAAI5C,EAAOd,GACpCqB,KAAKN,KAAK,cAAVM,CAAyBqC,EAAI5C,EAAOd,GACpCqT,KAGb,EAEAC,cAAa,SAAC5P,EAAI1D,GAClB,IAAAuT,EAAA,KACI,GAAKxR,EAAAA,IAAIsF,QAAQ3D,GACb,OAAO,KAGX,IAAI8P,EAAQtR,EAAAA,IAAIC,KAAKf,EAAAA,IAAIqS,KAAKrS,EAAAA,IAAI0M,MAAMpK,GAAK,SAAU,SAACgQ,GAEpD,IAAIjS,EAAO,CACPL,EAAAA,IAAIf,IAAIkT,EAAKzB,MAAO9R,EAAK,CAAC,GAC1BoB,EAAAA,IAAIf,IAAIkT,EAAKzB,MAAO,CAAC9R,EAAK0T,EAAE/R,MAAO,CAAC,GAAE,GAAAmC,OACnC9D,EAAG,KAAA8D,OAAI4P,EAAE/R,OAGhB,OAAO4R,EAAKxS,KAAK,iBAAgBa,WAAA,EAAIH,EACzC,GAEA,OAAAqF,EAAAA,EAAAA,aAAA,kCAES0M,GAGb,EAEAG,WAAU,WAEN,OAAA7M,EAAAA,EAAAA,aAAA,iCAESzF,KAAKN,KAAK,gBAAVM,CAA2BA,KAAKmM,QAAS,YAGtD,EAEAoG,WAAU,WACV,IAAAC,EAAAC,EAAAC,EAAA,KACQxC,EAAW,CACXhU,KAAM,UAGVgU,QAAsB,WAClBwC,EAAKtD,WAAW,UACpB,GAEIuD,GAAOlN,EAAAA,EAAAA,aAAA,sCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAEUhB,EAAQ3E,EAAAiH,EAAGxS,KAAKpE,MAAM,qBAAmB4W,EAAA,2BAAAA,EAAA,MAI1DI,EAAY,CACZ1W,KAAM,UAGV0W,QAAuB,WACnBF,EAAKzG,MAAO,CAChB,GAEI4G,GAAQpN,EAAAA,EAAAA,aAAA,uCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAES0B,EAASrH,EAAAkH,EAAGzS,KAAKpE,MAAM,gBAAc6W,EAAA,2BAAAA,EAAA,MAI1D,OAAAhN,EAAAA,EAAAA,aAAA,iCAES,CAACkN,EAASE,IAGvB,EAEAC,aAAY,WAER,OAAArN,EAAAA,EAAAA,aAAA,oCAAAA,EAAAA,EAAAA,aAAA,YAEczF,KAAKsM,WAAWtM,KAAKmM,YAGvC,EAEAL,WAAU,WACV,IAAAiH,EAAAC,EAAA,KACI,IAAOhT,KAAK8L,aAAgB9L,KAAKiM,KAC7B,OAAO,KAGX,IAAIgH,EAAiBjT,KAAKoB,OAAM,QAE3BV,EAAAA,IAAIsF,QAAQiN,KACbA,EAAiB,SAAHC,GAAY,OAAOnP,EAAPmP,EAANnP,SAAqB,GAG7C,IAKIoP,EAAc,CACdnX,WAAYgE,KAAKsI,MAAO3C,MAAO3F,KAAK2F,MAAOD,OAAQ1F,KAAK2M,iBAAiB3M,KAAKmM,UAOlF,OAAA1G,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAAAZ,EAAAA,EAAAA,YAAA,YACoB0C,EAAK/G,KAAI,+BAAAkF,GAAA,OAAT6B,EAAK/G,KAAIkF,CAAA,GAdZ,CACbiC,MAAO,OACPC,OAAQ,SAYiC9H,EAAAwH,EACpCE,EAAe,CAAElP,OANN,WAChB,OAAA0B,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,eAA0BiC,EAAW,KACzC,KAIkDJ,EAAA,2BAAAA,EAAA,GAGtD,EAEAhP,OAAM,WAMF,OAAA0B,EAAAA,EAAAA,aAAA,aAJgB,CACZ,cAIqB,CAChB,CACGzF,KAAKN,KAAK,aAAVM,GAA2BA,KAAKN,KAAK,aAAVM,GAA2BA,KAAKN,KAAK,eAAVM,GAA6BA,KAAKN,KAAK,aAAVM,KAInG,G,sOCn6BJ,SAEIqF,KAAM,kBAENtJ,MAAO,CAEHC,WAAY,oBAGJ,MAAO,EACX,EACAE,KAAM,CAACoJ,SAGXgD,MAAO,oBAGC,MAAO,CAAC,CACZ,EACApM,KAAM,CAAC2C,SAGX8G,MAAO,oBAGC,MAAO,CAAC,CACZ,EACAzJ,KAAM,CAAC2C,UAKf+G,KAAI,WAEA,MAAO,CACH0N,SAAU,GAAIC,SAAU,KAAMC,UAAWxT,KAAKyT,UAAUzT,KAAKsI,MAAO,UAAWoL,UAAW1T,KAAKyT,UAAUzT,KAAK2F,MAAO,UAE7H,EAEAG,QAAS,CAEL2N,UAAS,SAAChU,GACV,IADiBuH,EAAInH,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,GAEhBsJ,EAAS,CAAC,EAEd,IAAOzI,EAAAA,IAAIK,QAAQtB,KAAYM,EAAAA,IAAIf,IAAIS,EAAO,YAC1C,OAAO0J,EAGX,IAAI,IAAIxK,KAAOc,EAAO,CAElB,IAAA8P,EAAiB,CAAC,GAAD9M,OACVuE,EAAI,KAAAvE,OAAI9D,GAAOc,EAAMd,IADvBgV,EAAGpE,EAAA,GAAElI,EAAGkI,EAAA,GAIR7O,EAAAA,IAAIK,QAAQsG,KACbA,EAAMrH,KAAKyT,UAAUpM,EAAKsM,IAG9B,IAAIzX,EAAIqR,EAAUlG,GAEb3G,EAAAA,IAAIE,QAAQyG,KACbnL,EAAO,SAGXiN,EAAOxK,GAAO,CACVqI,KAAM2M,EAAKlU,MAAO4H,EAAKnL,KAAMA,EAGrC,CAEA,OAAOiN,CACX,EAEAyK,WAAU,SAACnU,GAEPO,KAAK6T,MAAM,oBAAqBpU,EAAMuH,KAC1C,EAEA8M,WAAU,SAACrU,GAEPO,KAAKuT,SAAW9T,CACpB,EAEAsU,WAAU,SAACtU,GAEa,WAAfA,EAAMvD,MACP2E,EAAAA,IAAIsO,OAAOnP,KAAKsT,SAAU7T,EAAMuH,KAExC,GAIJgN,WAAU,SAACvU,EAAOd,GAClB,IAAAgB,EAAA,KACQlC,EAAY,CACZ,0BACA,4BAA8BgC,EAAMvD,MAexC,OAZK6D,EAAAA,IAAIf,IAAIgB,KAAKuT,SAAU,UAAY9T,EAAMuH,MAC1CvJ,EAAU8F,KAAK,eAGC,WAAf9D,EAAMvD,MACPuB,EAAU8F,KAAK,cAGd1C,EAAAA,IAAIqF,IAAIlG,KAAKsT,SAAU7T,EAAMuH,OAC9BvJ,EAAU8F,KAAK,gBAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,EAAS,WAAc,kBAAMkC,EAAKiU,WAAWnU,EAAM,KAAAgG,EAAAA,EAAAA,aAAA,iDACX,kBAAM9F,EAAKoU,WAAWtU,EAAM,KAAAgG,EAAAA,EAAAA,aAAA,yCAAAA,EAAAA,EAAAA,aAAA,+CAG9B,kBAAM9F,EAAKmU,WAAWrU,EAAM,IACrEd,KAAG8G,EAAAA,EAAAA,aAAA,+CAEsC,kBAAM9F,EAAKmU,WAAWrU,EAAM,IACrEA,EAAMvD,QAAIuJ,EAAAA,EAAAA,aAAA,+CAE+B,kBAAM9F,EAAKiU,WAAWnU,EAAM,KAAAgG,EAAAA,EAAAA,aAAA,oCAKtF,EAEAwO,WAAU,SAACxU,EAAOd,GAClB,IAAA0E,EAAA,KACQ6Q,EAAarT,EAAAA,IAAIC,KAAKrB,EAAMA,MAAO,SAACA,EAAOd,GAC3C,OAAO0E,EAAK3D,KAAK,aAAV2D,CAAwB5D,EAAOd,EAC1C,GAEIwV,GAAS1O,EAAAA,EAAAA,aAAA,2CAEJyO,IAQT,OAJOrT,EAAAA,IAAIqF,IAAIlG,KAAKsT,SAAU7T,EAAMuH,QAChCmN,EAAY,MAGT,CAACnU,KAAKN,KAAK,aAAVM,CAAwBP,EAAOd,GAAMwV,EACjD,EAEAC,WAAU,SAAC3U,EAAOd,GAEd,MAAoB,WAAfc,EAAMvD,KACA8D,KAAKN,KAAK,aAAVM,CAAwBP,EAAOd,GAGnCqB,KAAKN,KAAK,aAAVM,CAAwBP,EAAOd,EAC1C,EAEA0V,YAAW,WACX,IAAA/J,EAAA,KACQgK,EAAYzT,EAAAA,IAAIC,KAAKd,KAAKwT,UAAW,SAAC/T,EAAOd,GAC7C,OAAO2L,EAAK5K,KAAK,aAAV4K,CAAwB7K,EAAOd,EAC1C,GAEA,OAAA8G,EAAAA,EAAAA,aAAA,0CAES6O,GAGb,EAEAC,YAAW,WACX,IAAAzJ,EAAA,KACQ0J,EAAY3T,EAAAA,IAAIC,KAAKd,KAAK0T,UAAW,SAACjU,EAAOd,GAC7C,OAAOmM,EAAKpL,KAAK,aAAVoL,CAAwBrL,EAAOd,EAC1C,GAEA,OAAA8G,EAAAA,EAAAA,aAAA,0CAES+O,GAGb,EAEAzQ,OAAM,WAEF,OAAA0B,EAAAA,EAAAA,aAAA,mCAES,CAACzF,KAAKN,KAAK,cAAVM,GAA4BA,KAAKN,KAAK,cAAVM,KAG1C,GC/LJ,GAEIqF,KAAM,mBAENtJ,MAAO,CAEHC,WAAY,oBAGJ,MAAO,EACX,EACAE,KAAM,CAACoJ,SAGXgD,MAAO,oBAGC,MAAO,CAAC,CACZ,EACApM,KAAM,CAAC2C,SAGX8G,MAAO,oBAGC,MAAO,CAAC,CACZ,EACAzJ,KAAM,CAAC2C,SAGXpC,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGX8N,MAAO,oBAGC,MAAO,MACX,EACAlX,KAAM,CAACoJ,SAGX+N,OAAQ,oBAGA,MAAO,MACX,EACAnX,KAAM,CAACoJ,UAKfM,KAAI,WAEA,MAAO,CACH9D,OAAO,EAAO+D,UAAW7F,KAAKhE,WAEtC,EAEA8J,QAAS,CAEL2O,YAAW,SAAChV,GAERO,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UAAYpG,EACrD,GAIJiV,YAAW,WACX,IAAA/U,EAAA,KACI,IAAOK,KAAK8B,MACR,OAAO,KAGX,IAAI6S,EAAa,CACb3Y,YAAY,EACZoX,MAAOpT,KAAKoT,MACZC,OAAQrT,KAAKqT,OAGjBsB,QAAwB,WACpBhV,EAAKmC,OAAQ,CACjB,GAEI8S,EAAa,CACbtM,MAAOtI,KAAKsI,MAAO3C,MAAO3F,KAAK2F,MAGnCiP,sBAAoC,SAACnV,GACjCE,EAAK8U,YAAYhV,GAAQE,EAAKmC,OAAQ,CAC1C,GAEI4G,EAAQ,CAIZA,KAAgB,kBAAAjD,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAC,oBAADZ,EAAAA,EAAAA,YAAC,CAAD,kBAC0BsE,GAAU,QAGpD,OAAAnP,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,UACgByD,EAAqBjM,EAEzC,EAEAmM,YAAW,WACX,IAAAxR,EAAA,KACQyR,EAAa,CACb9Y,WAAYgE,KAAK6F,UACjBjI,KAAM,eACNnB,KAAMuD,KAAKvD,KAGfqY,sBAAoC,SAACrV,GACjC4D,EAAKoR,YAAYhV,EACrB,EAEAqV,OAAuB,SAAClS,GACpBS,EAAKwQ,MAAM,SAAUjR,EACzB,EAEAkS,YAA4B,WACxBzR,EAAKvB,OAAQ,CACjB,GAEA,OAAA2D,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,UACgB4D,EAAU,KAE9B,EAEA/Q,OAAM,WAEF,OAAA0B,EAAAA,EAAAA,aAAA,oCAES,CAACzF,KAAKN,KAAK,cAAVM,GAA4BA,KAAKN,KAAK,cAAVM,KAG1C,G,upBC7IJ,SAEIqF,KAAM,aAEN0P,OAAQ,CAEJC,WAAY,CACRnY,aAAS0B,IAKjB0W,QAAO,WAEH,MAAO,CACHD,WAAYhV,KAEpB,EAEAjE,MAAO,CAEHmZ,UAAW,oBAGH,OAAO,CACX,EACAhZ,KAAM,CAACqJ,UAGX4P,UAAW,oBAGH,OAAO,CACX,EACAjZ,KAAM,CAACqJ,UAGX6P,QAAS,oBAGD,OAAO,CACX,EACAlZ,KAAM,CAACgB,SAGXmY,QAAS,oBAGD,OAAO,EACX,EACAnZ,KAAM,CAACgB,SAGXoY,UAAW,oBAGH,OAAO,EACX,EACApZ,KAAM,CAACgB,SAGXqY,UAAW,oBAGH,MAAO,mBACX,IAKRC,SAAU,CAENC,MAAK,WAED,UAAU,iBAAkBha,UACxBia,UAAUC,iBAClB,EAEAC,UAAS,WAEL,OAAO5V,KAAKyV,MAAQ,aAChB,WACR,EAEAI,UAAS,WAEL,OAAO7V,KAAKyV,MAAQ,YAChB,WACR,EAEAK,QAAO,WAEH,OAAO9V,KAAKyV,MAAQ,WAChB,SACR,GAIJ7P,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QAAQoK,MAAM,EAAO+J,QAAQ,EAAO1C,OAAQ,EAAGD,MAAO,EAEnE,EAEA4C,YAAW,WAEPhW,KAAKiW,MAAQ,CAAC,EACdjW,KAAKoJ,MAAQ,CAAC,EAEdpJ,KAAKkW,WAAY,EACjBlW,KAAKmW,WAAY,EAEjBnW,KAAKoW,qBACT,EAEA/J,QAAO,WACP,IAAA1M,EAAA,KACIK,KAAKqW,SAAW,IAAIC,eAAe,WAC/B3W,EAAK4W,yBACT,GAEAvW,KAAKqW,SAASG,QAAQxW,KAAKyW,KAEtBzW,KAAKyG,MAAM/B,SACZ1E,KAAKqW,SAASG,QAAQxW,KAAKyG,MAAM/B,SAGrCgS,EAAAA,MAAMC,KAAK,iBACP3W,KAAKuW,wBAAyBvW,KAAK4W,EAAEjV,KAEzC,IAAIkV,EAAU,CACVA,SAAS,EAAMlV,IAAK3B,KAAK4W,EAAEjV,KAG/BK,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAMgC,SAAS9F,GAAG,SAC5B3C,KAAK8W,SAAUD,GAEnB7W,KAAK+W,gBACT,EAEAC,cAAa,WAEJhX,KAAKqW,UACNrW,KAAKqW,SAASY,aAGlBP,EAAAA,MAAMQ,OAAO,iBACTlX,KAAK4W,EAAEjV,KAEX,IAAIkV,EAAU,CACVA,SAAS,EAAMlV,IAAK3B,KAAK4W,EAAEjV,KAG/BK,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKrT,IAAI,SACnB,KAAMyT,EACd,EAEA/Q,QAAS,CAELyQ,wBAAuB,WACvB,IAAAlT,EAAA,KACI,IAAKrB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKxT,OAAO,aAA/B,CAIA,IAAIkU,EAAOnX,KAAKyG,MAAM/B,QAAQ0S,wBAE1BC,EAAM,CACNjE,MAAO1D,KAAK4H,MAAMH,EAAK/D,OAAQC,OAAQ3D,KAAK4H,MAAMH,EAAK9D,SAGtD3S,EAAAA,IAAI6W,QAAQvX,KAAKoJ,MAAOiO,KAI7BG,cAAcxX,KAAKyX,UAEnBzX,KAAKyX,SAAWvT,WAAW,WACvBb,EAAK0T,gBACT,EAAG,GAhBH,CAiBJ,EAEAA,eAAc,WACd,IAAAzM,EAAA,KACI,GAAOtK,KAAKyG,MAAM/B,QAAlB,CAIA,IAAK0O,EAAkB,EAAXC,EAAc,EAE1BrR,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAMiR,QAAQC,OAAO,WAE/B3V,EAAAA,IAAIC,KAAKqI,EAAKmM,KAAKtT,SAAS,aAAa,IAAAoM,EAEvB,CACdG,KAAK4H,MAAMhN,EAAK7D,MAAM/B,QAAQ0S,wBAAwBhE,OACtD1D,KAAK4H,MAAMhN,EAAK7D,MAAM/B,QAAQ0S,wBAAwB/D,SAFzDD,EAAK7D,EAAA,GAAE8D,EAAM9D,EAAA,GAKdvN,EAAAA,IAAIC,KAAKqI,EAAKmM,KAAKmB,YAAY,YACnC,GAEA,IAAI3B,EAAQ,CACR7C,MAAO1D,KAAK4H,MAAMtX,KAAKyG,MAAMgC,QAAQoP,aACrCxE,OAAQ3D,KAAK4H,MAAMtX,KAAKyG,MAAMgC,QAAQqP,eAGtCC,EAAU,CACV3E,IAAUpT,KAAKoT,MAAOC,IAAWrT,KAAKqT,QAG1C,GAAOxS,EAAAA,IAAIqF,IAAI6R,GAAS,KAASrX,EAAAA,IAAI6W,QAAQvX,KAAKiW,MAAOA,GAAzD,CAIAjW,KAAKiW,MAAQA,EAEbjW,KAAKoJ,MAAQ,CACTgK,MAAAA,EAAOC,OAAAA,GACT,IAAAxD,EAE0B,CACxBuD,EAAOC,GAGX,GAJCrT,KAAKoT,MAAKvD,EAAA,GAAE7P,KAAKqT,OAAMxD,EAAA,GAIT,IAAVuD,GAA0B,IAAXC,EAApB,CAIA,IAAI2E,EAAS,CACT,EAGChY,KAAKoT,QACN4E,EAAO5E,MAAQpT,KAAKoT,MAAQ,MAG3BpT,KAAKqT,SACN2E,EAAO3E,OAASrT,KAAKqT,OAAS,MAGlCrR,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAMiR,QAAQtV,IAAI4V,GAEhChY,KAAKiY,oBACLjY,KAAKkY,mBAEL,IAAAhF,EAAgC,CAC5BlR,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKrD,QAASpR,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKpD,UAD9C8E,EAAUjF,EAAA,GAAEkF,EAAWlF,EAAA,GAI5BlT,KAAK6T,MAAM,aAAcsE,EAAYC,EAAapY,KAAKyW,IAvBvD,CAdA,CA3BA,CAiEJ,EAEA4B,SAAQ,WACR,IAAAvN,EAAA,KADSwN,EAACzY,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAAG0Y,EAAC1Y,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAAGqD,EAAKrD,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAE3B,GAAKa,EAAAA,IAAIsF,QAAQ9C,GACb,OAAOlD,KAAKqY,SAASC,EAAGC,GAG5B7X,EAAAA,IAAIwC,MAAM,kBAAM4H,EAAK0N,WAAWF,EAAGC,EAAE,EAAErV,EAC3C,EAEAsV,WAAU,WACV,IADWF,EAACzY,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAAG0Y,EAAC1Y,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAEdG,KAAKyG,MAAMgC,UACXzI,KAAKyG,MAAMgC,QAAQgQ,UAAYF,EAC/BvY,KAAKyG,MAAMgC,QAAQiQ,WAAaJ,EAMxC,EAEAK,eAAc,SAACC,GACf,IAAAvN,EAAA,KADyBnI,EAAKrD,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAAGgZ,EAAOhZ,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAE1Ca,EAAAA,IAAIwC,MAAM,kBAAMmI,EAAKyN,iBAAiBF,EAAUC,EAAQ,EAAE3V,EAC9D,EAEA4V,iBAAgB,SAACF,GACjB,IAD2BC,EAAOhZ,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAE7B4W,EAAMzU,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKxU,KAAK2W,GAE9BH,EAAYzY,KAAKyG,MAAMgC,QACtBgQ,UAEDM,EAAc/Y,KAAKyG,MAAMgC,QAAQqP,aAEjCkB,EAAYvC,EAAIuC,UAAUhZ,KAAKyW,KAE9BuC,EAAYP,IACbzY,KAAKyG,MAAMgC,QAAQgQ,UAAYO,EAAYH,GAG1CG,EAAYvC,EAAIpD,UAAYoF,EAAYM,IACzC/Y,KAAKyG,MAAMgC,QAAQgQ,UAAYO,EAAYD,EAActC,EAAIpD,SAAWwF,GAG5E,IAAIH,EAAa1Y,KAAKyG,MAAMgC,QACvBiQ,WAEDO,EAAajZ,KAAKyG,MAAMgC,QAAQoP,YAEhCqB,EAAazC,EAAIyC,WAAWlZ,KAAKyW,KAEhCyC,EAAaR,IACd1Y,KAAKyG,MAAMgC,QAAQiQ,WAAaQ,EAAaL,GAG5CK,EAAazC,EAAIrD,SAAWsF,EAAaO,IAC1CjZ,KAAKyG,MAAMgC,QAAQiQ,WAAaQ,EAAaD,EAAaxC,EAAIrD,QAAUyF,EAEhF,EAEAzC,oBAAmB,WAEf,IAAI+C,EAAOnX,EAAAA,IAAIO,KAAK,MAAO,CAAE9E,UAAW,CAAC,sBACpCiF,SAASR,SAASC,MAAMnD,IAAI,GAEjCgD,EAAAA,IAAIO,KAAK,OAAOG,SAASyW,GAEzBnZ,KAAI,OAAUmZ,EAAKtB,cAAgBsB,EAAKC,aACpCD,EAAKrB,eAAiBqB,EAAKE,aAE/BF,EAAKpX,QACT,EAEAkW,kBAAiB,WAEb,IAAKjY,KAAI,OAAT,CAIA,IAAKsZ,EACDtZ,KAAKyG,MAAMgC,QAAQ8Q,cAAgB,EADrBR,EACwB/Y,KAAKyW,IAAIqB,cAAgB,EAG/D0B,EAAU,CACVT,IAAgB/Y,KAAK+Y,YACrBO,IAAgBtZ,KAAKsZ,aAGzB,GAAMzY,EAAAA,IAAIqF,IAAIsT,GAAS,GAAvB,CAIAxZ,KAAK+Y,YAAcA,EACnB/Y,KAAKsZ,YAAcA,EAEnB,IAAIjG,EAAU0F,EAAcO,EACtBP,EAEFU,EAAY/J,KAAKzS,IAAIoW,EAAQ,IAE7BqG,EAAYhK,KAAKiK,KAAMZ,EAAcO,GACpCA,EAAcP,IAEnB/Y,KAAK4Z,aAAeF,GAAaD,EAAYpG,GACvCrT,KAAKoV,SAAWsE,EAEtB1X,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAMoT,MAAMzX,IAAI,CAC1BiR,QAASrT,KAAKyZ,UAAY/J,KAAKiK,KAAKF,IAAc,OAGtDzZ,KAAKmW,UAAY4C,GAAeA,EAAcO,EAEzCtZ,KAAKmW,WACNnU,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKtT,SAAS,cAG1BnD,KAAKmW,WACPnU,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKmB,YAAY,cAGnC5X,KAAK8Z,qBA9BL,CAbA,CA4CJ,EAEA5B,iBAAgB,WAEZ,IAAKlY,KAAI,OAAT,CAIA,IAAK+Z,EACD/Z,KAAKyG,MAAMgC,QAAQuR,aAAe,EADrBf,EACwBjZ,KAAKyW,IAAIoB,aAAe,EAG7D2B,EAAU,CACVP,IAAejZ,KAAKiZ,WACpBc,IAAe/Z,KAAK+Z,YAGxB,GAAMlZ,EAAAA,IAAIqF,IAAIsT,GAAS,GAAvB,CAIAxZ,KAAKiZ,WAAaA,EAClBjZ,KAAK+Z,WAAaA,EAElB,IAAI3G,EAAS6F,EAAac,EACpBd,EAEFgB,EAAWvK,KAAKzS,IAAImW,EAAO,IAE3B8G,EAAWxK,KAAKiK,KAAMV,EAAac,GAClCA,EAAad,IAElBjZ,KAAKma,YAAcD,GAAYD,EAAW7G,GACpCpT,KAAKqV,SAAW6E,EAEtBlY,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAM2T,MAAMhY,IAAI,CAC1BgR,OAAQpT,KAAKia,SAAWvK,KAAKiK,KAAKM,IAAa,OAGnDja,KAAKkW,UAAY+C,GAAcA,EAAac,EAEvC/Z,KAAKkW,WACNlU,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKtT,SAAS,cAG1BnD,KAAKkW,WACPlU,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKmB,YAAY,cAGnC5X,KAAK8Z,qBA9BL,CAbA,CA4CJ,EAEAA,oBAAmB,WACnB,IADoBO,EAAMxa,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,CAAC,EAE1B,IAAKG,KAAI,OAAT,CAIMqa,EAAOC,MACTD,EAAOC,IAAMta,KAAKyG,MAAMgC,QAAQgQ,WAG9B4B,EAAOE,OACTF,EAAOE,KAAOva,KAAKyG,MAAMgC,QAAQiQ,YAGrC,IAAI8B,EAAU9K,KAAKiK,KAAM3Z,KAAK+Y,YAAc/Y,KAAKsZ,YAC7Ce,EAAOC,IAAMta,KAAK4Z,cAAgB,EAEhC5Z,KAAKwa,SAAWA,IAAYxa,KAAKwa,UAEnCxY,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAMoT,MAAMzX,IAAI,CAC1BqY,UAAW,cAAFhY,OAAgB+X,EAAO,uBAGpCxa,KAAKwa,QAAUA,GAGnB,IAAIE,EAAWhL,KAAKiK,KAAM3Z,KAAKiZ,WAAajZ,KAAK+Z,WAC7CM,EAAOE,KAAOva,KAAKma,aAAe,EAEhCna,KAAK0a,UAAYA,IAAa1a,KAAK0a,WAErC1Y,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAM2T,MAAMhY,IAAI,CAC1BqY,UAAW,cAAFhY,OAAgBiY,EAAQ,uBAGrC1a,KAAK0a,SAAWA,EA/BpB,CAiCJ,EAEA5D,SAAQ,WACR,IAAAxL,EAAA,KACQ+O,EAAS,CACTC,IAAKta,KAAKyG,MAAMgC,QAAQgQ,UACxB8B,KAAMva,KAAKyG,MAAMgC,QAAQiQ,YAG7B1Y,KAAK+O,YAAY4L,KAAK,WAClBrP,EAAKuI,MAAM,eAAgBwG,EAAOC,IAAKD,EAAOE,KAClD,GAEAva,KAAK8Z,oBAAoBO,EAC7B,EAEAO,cAAa,SAACC,GAEV,OAAM7a,KAAKyV,MAIJoF,EAAMC,QAAQ,IAAMD,EAAME,eAAe,GAHrCF,CAIf,EAEAG,gBAAe,SAACH,GAENha,EAAAA,IAAIqF,IAAI,CAAC,EAAG,GAAI2U,EAAMI,SAI5BJ,EAAM/X,kBACN+X,EAAMK,iBAENlZ,EAAAA,IAAIC,KAAKC,UAAUS,GAAG3C,KAAK6V,UACvB7V,KAAKmb,gBAAiBnb,KAAK4W,EAAEjV,KAEjCK,EAAAA,IAAIC,KAAKC,UAAUS,GAAG3C,KAAK8V,QACvB9V,KAAKob,cAAepb,KAAK4W,EAAEjV,KAE/B3B,KAAKyY,UAAYzY,KAAKyG,MAAMgC,QACvBgQ,UAELzY,KAAKqb,QAAUrb,KAAK4a,cAAcC,GAC7BQ,QAELrZ,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAMoT,MAAM1W,SAAS,aACvC,EAEAgY,gBAAe,SAACN,GAEZ,IAAIQ,EAAUrb,KAAK4a,cAAcC,GAC5BQ,QAEDf,EAAOta,KAAK+Y,YAAc/Y,KAAKsZ,YAC/BtZ,KAAKyY,UAAYzY,KAAK4Z,YAEtB0B,EAAUD,EAAUrb,KAAKqb,QAAWf,EAEpCjH,EAAUrT,KAAK+Y,YACf/Y,KAAKyZ,UAAYzZ,KAAKoV,QAE1BpV,KAAKyG,MAAMgC,QAAQgQ,UAAY6C,EAASjI,GACnCrT,KAAKsZ,YAActZ,KAAK+Y,YACjC,EAEAqC,cAAa,SAACP,GAEV7Y,EAAAA,IAAIC,KAAKC,UAAUkB,IAAIpD,KAAK6V,UACxB,KAAM7V,KAAK4W,EAAEjV,KAEjBK,EAAAA,IAAIC,KAAKC,UAAUkB,IAAIpD,KAAK8V,QACxB,KAAM9V,KAAK4W,EAAEjV,KAEjBK,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAMoT,MAAMjC,YAAY,YAC1C,EAEA2D,gBAAe,SAACV,GAENha,EAAAA,IAAIqF,IAAI,CAAC,EAAG,GAAI2U,EAAMI,SAI5BJ,EAAM/X,kBACN+X,EAAMK,iBAENlZ,EAAAA,IAAIC,KAAKC,UAAUS,GAAG3C,KAAK6V,UACvB7V,KAAKwb,gBAAiBxb,KAAK4W,EAAEjV,KAEjCK,EAAAA,IAAIC,KAAKC,UAAUS,GAAG3C,KAAK8V,QACvB9V,KAAKyb,cAAezb,KAAK4W,EAAEjV,KAE/B3B,KAAK0Y,WAAa1Y,KAAKyG,MAAMgC,QACxBiQ,WAEL1Y,KAAK0b,QAAU1b,KAAK4a,cAAcC,GAC7Ba,QAEL1Z,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAM2T,MAAMjX,SAAS,aACvC,EAEAqY,gBAAe,SAACX,GAEZ,IAAIa,EAAU1b,KAAK4a,cAAcC,GAC5Ba,QAEDnB,EAAQva,KAAKiZ,WAAajZ,KAAK+Z,WAC/B/Z,KAAK0Y,WAAa1Y,KAAKma,WAEvBmB,EAAUI,EAAU1b,KAAK0b,QAAWnB,EAEpCnH,EAASpT,KAAKiZ,WACdjZ,KAAKia,SAAWja,KAAKqV,QAEzBrV,KAAKyG,MAAMgC,QAAQiQ,WAAa4C,EAASlI,GACpCpT,KAAK+Z,WAAa/Z,KAAKiZ,WAChC,EAEAwC,cAAa,SAACZ,GAEV7Y,EAAAA,IAAIC,KAAKC,UAAUkB,IAAIpD,KAAK6V,UACxB,KAAM7V,KAAK4W,EAAEjV,KAEjBK,EAAAA,IAAIC,KAAKC,UAAUkB,IAAIpD,KAAK8V,QACxB,KAAM9V,KAAK4W,EAAEjV,KAEjBK,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAM2T,MAAMxC,YAAY,YAC1C,GAIJ7T,OAAM,WAEF,IAAItG,EAAY,CACZ,eAGCuC,KAAI,QACLvC,EAAU8F,KAAK,uBAGdvD,KAAKyV,OACNhY,EAAU8F,KAAK,sBAGd9H,OAAOkgB,KACRle,EAAU8F,KAAK,aAGdvD,KAAKkV,WACNzX,EAAU8F,KAAK,gBAGdvD,KAAKmV,WACN1X,EAAU8F,KAAK,gBAGdvD,KAAKkW,WACNzY,EAAU8F,KAAK,cAGdvD,KAAKmW,WACN1Y,EAAU8F,KAAK,cAGnB,IAAIqY,EAASna,EAAA,GACR,KAAOuI,EAAAA,IAAIC,QAAQjK,KAAK4V,WAAa5V,KAAKgb,iBAG3Ca,EAASpa,EAAA,GACR,KAAOuI,EAAAA,IAAIC,QAAQjK,KAAK4V,WAAa5V,KAAKub,iBAG/C,OAAA9V,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAesC,EAAAA,IAAIoN,OAAOnN,KAAKiB,OAAQ,CAAC,WAAS,EAAAwE,EAAAA,EAAAA,aAAA,oDAAAA,EAAAA,EAAAA,aAAA,2BAE3BzF,KAAKuV,WAAS,CACnCvV,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,eAAUqE,EAAAA,EAAAA,aAAA,uDAAAA,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,mCAMXuL,GAAS,OAAApW,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,mCACTsL,GAAS,OAG/D,GC5oBJngB,OAAOqgB,gBAAiB,EAExB,SAEIzW,KAAM,mBAEN0P,OAAQ,CAEJgH,WAAY,CACRlf,aAAS0B,IAKjB+J,MAAO,CACHpJ,KAAM,SAGVnD,MAAO,CAEHoW,MAAO,oBAGC,MAAO,EACX,GAGJ6J,WAAY,oBAGJ,OAAO,EACX,GAGJC,UAAW,oBAGH,OAAO,CACX,GAGJC,WAAY,oBAGJ,OAAO,IACX,GAGJC,UAAW,oBAGH,OAAO,CACX,EACAjgB,KAAM,CAACgB,SAGXgY,UAAW,oBAGH,OAAO,CACX,EACAhZ,KAAM,CAACqJ,UAGX4P,UAAW,oBAGH,OAAO,CACX,EACAjZ,KAAM,CAACqJ,UAGX6P,QAAS,oBAGD,OAAO,CACX,EACAlZ,KAAM,CAACgB,SAGXmY,QAAS,oBAGD,OAAO,EACX,EACAnZ,KAAM,CAACgB,SAGXkf,UAAW,oBAGH,OAAO,CACX,EACAlgB,KAAM,CAACgB,SAGXoY,UAAW,oBAGH,OAAO,EACX,EACApZ,KAAM,CAACgB,SAGXmf,QAAS,oBAGD,OAAO,CACX,EACAngB,KAAM,CAACqJ,UAGX+W,WAAY,oBAGJ,MAAO,IACX,EACApgB,KAAM,CAACoJ,UAKfM,KAAI,WAMA,MAAO,CACHwD,MALQ,CACRmT,MAAO,EAAGC,IAAK,EAAGC,KAAM,GAIjBC,OAAQ,GAAItJ,MAAO,EAAGC,OAAQ,EAAGrH,MAAM,EAEtD,EAEAxE,MAAO,CAEH,MAAS,WACLxH,KAAK2c,cACT,GAIJ3G,YAAW,WAEPhW,KAAKyY,UAAY,EACjBzY,KAAK4c,MAAQ,EACjB,EAEAvQ,QAAO,WAEHrM,KAAK6c,iBACT,EAEA7F,cAAa,WAEThX,KAAK8c,mBACT,EAEAhX,QAAS,CAELiX,cAAa,SAAC3S,GAEV,GAAKpK,KAAKgM,KACN,OAAO5B,EAAG/K,KAAKW,MAGnBA,KAAK4c,MAAMrZ,KAAK6G,EACpB,EAEA4S,eAAc,WACd,IAAArd,EAAA,KACIkB,EAAAA,IAAIC,KAAKd,KAAK4c,MAAO,SAAAxS,GACjBA,EAAG/K,KAAKM,EACZ,GAEAK,KAAK4c,MAAQ,EACjB,EAEAC,gBAAe,WAEX7c,KAAKid,cAAgBC,YAAYld,KAAKmd,eAClC,IAAOnd,KAAKsV,UACpB,EAEAwH,kBAAiB,WAEbtF,cAAcxX,KAAKid,cACvB,EAEAG,gBAAe,SAAC1M,GAEZ,OAAO1Q,KAAKgc,YAILhc,KAAKoJ,MAAMmT,MAAQ7L,GACtB1Q,KAAKoJ,MAAMoT,IAAM9L,CACzB,EAEAiI,eAAc,SAACjI,GAEX,GAAO1Q,KAAKyG,MAAM4W,UAAlB,CAQA,KAJgB,IAAX3M,GAAgBA,GAAS1Q,KAAKmS,MAAMrS,UACrC4Q,EAAQ1Q,KAAKmS,MAAMrS,SAGhBE,KAAKod,gBAAgB1M,GACxB,OAAO1Q,KAAKsd,cAAc5M,GAG9B,IAAIkI,EAAW,gBAAHnW,OAAmBiO,EAAK,MAEpC1Q,KAAKyG,MAAM4W,UAAU1E,eAAeC,EAZpC,CAaJ,EAEA0E,cAAa,SAAC5M,GACd,IAAArN,EAAA,KACIrD,KAAK+c,cAAc,kBAAM1Z,EAAKka,gBAAgB7M,EAAM,EACxD,EAEA6M,gBAAe,SAAC7M,GAEZ,IAAI8M,EAAQ9N,KAAKiK,KAAK3Z,KAAKmS,MAAMrS,OAC7BE,KAAKoJ,MAAMqT,QAIC,KAFhB/L,EAAQhB,KAAK+N,MAAM/M,EAAQ1Q,KAAKoJ,MAAMqT,QAEjB/L,GAAS8M,KAC1B9M,EAAQ8M,GAGZ,IAAIE,EAAYhN,EAAQ1Q,KAAKgc,WAE7B,GAAKhc,KAAKyY,UAAYiF,EAClB,OAAO1d,KAAKwY,WAAW,EAAGkF,GAG9B1d,KAAKwY,WAAW,EAAGkF,EAAY1d,KAAKqT,OAASrT,KAAKgc,WACtD,EAEA3D,SAAQ,WACR,IAAA/N,EAAA,KADSgO,EAACzY,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAAG0Y,EAAC1Y,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAEhBG,KAAK+c,cAAc,kBAAMzS,EAAKkO,WAAWF,EAAGC,EAAE,EAClD,EAEAC,WAAU,WACV,IADWF,EAACzY,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAAG0Y,EAAC1Y,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAEbG,KAAKyG,MAAM4W,WACZrd,KAAKyG,MAAM4W,UAAUhF,SAASC,EAAGtY,KAAKyY,UAAYF,GAGtDvY,KAAK2d,eAAc,EACvB,EAEAC,WAAU,WAEN5d,KAAKoJ,MAAQ,CAAEmT,MAAO,EAAGC,IAAK,EAClC,EAEAG,aAAY,WAER,IAAO3c,KAAKyG,MAAM4W,UACd,OAAO3c,EAAAA,IAAIwC,MAAMlD,KAAK2c,cAG1B3c,KAAKyY,UAAYzY,KAAKyG,MAAM4W,UACxB5W,MAAMgC,QAAQgQ,UAElBzY,KAAK2d,eAAc,EACvB,EAEAR,eAAc,WAEV,GAAOnd,KAAKoc,UAAZ,CAIA,IAAI3D,EAAYzY,KAAKyG,MAAM4W,UACvB5W,MAAMgC,QAAQgQ,UAEbA,IAAczY,KAAKyY,YAIxBzY,KAAKyY,UAAYA,EAEjBzY,KAAK2d,eAAc,GAXnB,CAYJ,EAEAE,aAAY,SAACzK,EAAOC,GAEhB,IAAIrH,EAAO,CACQ,IAAfhM,KAAKoT,MAA6B,IAAhBpT,KAAKqT,QACzB9D,EAE0B,CACxB6D,EAAOC,GADVrT,KAAKoT,MAAK7D,EAAA,GAAEvP,KAAKqT,OAAM9D,EAAA,GAIxBvP,KAAKgM,MAAQnL,EAAAA,IAAIqF,IAAI8F,GAAM,GAEtBhM,KAAKgM,MACNhM,KAAKgd,iBAGThd,KAAK2d,eAAc,EACvB,EAGAA,cAAa,WACb,IAAA7S,EAAA,KADcgT,IAAKje,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,KAAAA,UAAA,GAASuL,EAAQvL,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAgBnC,GAdKa,EAAAA,IAAIsF,QAAQhG,KAAK+d,SAClB/d,KAAK+d,MAAQC,KAAK3G,OAGjB2G,KAAK3G,MAAQrX,KAAK+d,MAAQ,IAC3BD,GAAQ,GAGZG,aAAaje,KAAKke,IAElBle,KAAKke,GAAKha,WAAW,WACjB4G,EAAK6S,eAAc,EAAOvS,EAC9B,EAAG,KAEE0S,EAAL,CAIAG,aAAaje,KAAKke,IAElB,IAAIzB,EAAO,EAOX,GALKzc,KAAKic,YACNQ,EAAO/M,KAAK+N,OAAOzd,KAAKoT,MAAQpT,KAAKmc,WACjCnc,KAAKic,YAAc,IAGpBjc,KAAKoc,WAAapc,KAAKoc,UAAYpc,KAAKmS,MAAMrS,OACjD,OAAOE,KAAKoJ,MAAQ,CAAEmT,MAAO,EAAGC,IAAK,EAAGC,KAAAA,GAG5C,IAAIe,EAAQ9N,KAAKiK,KAAK3Z,KAAKmS,MAAMrS,OAC3B2c,GAEF0B,EAAczO,KAAK4H,MAAOtX,KAAKqT,OAC/BrT,KAAKgc,WAAc,IAQnBO,EANY7M,KAAK4H,MAAMtX,KAAKyY,UAC5BzY,KAAKgc,YAKgBmC,EAEpB5B,EAAQ,IACTA,EAAQ,GAGZ,IAAIC,EATU9M,KAAK4H,OAAOtX,KAAKyY,UAC3BzY,KAAKqT,QAAUrT,KAAKgc,YAQJmC,EAEf3B,EAAMgB,IACPhB,EAAMgB,GAGV,IAAIpU,EAAQ,CAAEmT,MAAAA,EAAOC,IAAAA,EAAKC,KAAAA,GAErB/b,EAAAA,IAAI6W,QAAQvX,KAAKoJ,MAAOA,KAI7BpJ,KAAKoJ,MAAQA,EAER1I,EAAAA,IAAI4F,WAAW8E,IAChBA,EAAS/L,KAAKW,MAhDlB,CAkDJ,GAIJoU,WAAU,SAACgK,GAEPA,EAAO1N,MAAS0N,EAAO1N,MACnB1Q,KAAKoJ,MAAMmT,MAEf,IAAI8B,EAAY3O,KAAK4H,MAAMtX,KAAKgc,WAC5BoC,EAAO1N,OAEPuC,EAAiBjT,KAAKoB,OAAM,QAE3BpB,KAAKkc,aACNjJ,EAAiBjT,KAAKkc,YAG1B,IAAIngB,EAAQ,CACR,aAAcqiB,EAAO1N,OAGpB1Q,KAAKsc,YAActc,KAAKqc,UACzBtgB,EAAM4C,IAAMyf,EAAO3e,MAAMO,KAAKsc,aAGlC,IAAIlU,EAAQ,CAAC,EAiBb,OAfapI,KAAKoc,WAAapc,KAAKoc,WAChCpc,KAAKmS,MAAMrS,QAEoB,IAApBE,KAAKoJ,MAAMqT,OACtBrU,EAAMkS,IAAM+D,EAAY,MAGvBre,KAAKgc,aACN5T,EAAMiL,OAASrT,KAAKgc,WAAa,MAGhChc,KAAKic,YACN7T,EAAMgL,MAAQpT,KAAKic,UAAY,OAGnCxW,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,uCACgDlI,GAAWrM,GAAK,CACtDkX,EAAemL,IAG7B,EAEAE,WAAU,WACV,IAAAjT,EAAA,KACQ8G,EAAQtR,EAAAA,IAAI0d,MAAMve,KAAKmS,MAAOnS,KAAKoJ,MAAMmT,MACzCvc,KAAKoJ,MAAMoT,KAMf,QAJOxc,KAAKoc,WAAapc,KAAKoc,UAAYpc,KAAKmS,MAAMrS,UACjDqS,EAAQnS,KAAKmS,OAGVtR,EAAAA,IAAIC,KAAKqR,EAAO,SAAC1S,EAAOiR,GAC3B,OAAOrF,EAAK3L,KAAK,aAAV2L,CAAwB,CAAE5L,MAAAA,EAAOiR,MAAAA,GAC5C,EACJ,EAEA8N,eAAc,SAACJ,GACf,IAAA9S,EAAA,KACQ+S,EAAY3O,KAAK4H,MAAMtX,KAAKgc,YAC3BoC,EAAO1N,MAAQ1Q,KAAKoJ,MAAMmT,QAE3BnU,EAAQ,CAAC,EAERpI,KAAKoc,WAAapc,KAAKoc,WAAapc,KAAKmS,MAAMrS,SAChDsI,EAAMkS,IAAM+D,EAAY,MAG5B,IAAII,EAAUL,EAAO1N,MAAQ1Q,KAAKoJ,MAAMmT,MAExC,OAAA9W,EAAAA,EAAAA,aAAA,kBACmB2Y,EAAO1N,MAAK,qCAAwCtI,GAAK,CAEhEvH,EAAAA,IAAIC,KAAKsd,EAAOM,MAAO,SAACjf,EAAOiR,GAC3B,OAAOpF,EAAK5L,KAAK,aAAV4L,CAAwB,CAC3B7L,MAAAA,EAAOiR,MAAOA,EAAQ+N,GAE9B,IAIhB,EAEAE,WAAU,WACV,IAAAjN,EAAA,KACQkN,EAAS/d,EAAAA,IAAI6d,MAAM1e,KAAKmS,MACxBnS,KAAKoJ,MAAMqT,MAEXtK,EAAQtR,EAAAA,IAAI0d,MAAMK,EAAQ5e,KAAKoJ,MAAMmT,MACrCvc,KAAKoJ,MAAMoT,KAMf,QAJOxc,KAAKoc,WAAapc,KAAKoc,UAAYpc,KAAKmS,MAAMrS,UACjDqS,EAAQyM,GAGL/d,EAAAA,IAAIC,KAAKqR,EAAO,SAACuM,EAAOhO,GAC3B,OAAOgB,EAAKhS,KAAK,iBAAVgS,CAA4B,CAAEgN,MAAAA,EAAOhO,MAAAA,GAChD,EACJ,EAEAmO,YAAW,WAEP,OAAO7e,KAAKmS,MAAMrS,OAIO,IAApBE,KAAKoJ,MAAMqT,KACLzc,KAAKN,KAAK,aAAVM,GAGJA,KAAKN,KAAK,aAAVM,GAPIA,KAAKoB,OAAO4D,OAAShF,KAAKoB,OAAO4D,SAAW,IAQ3D,EAEAjB,OAAM,WACN,IAAAgO,EAAA,KACQtU,EAAY,CACZ,qBAGCuC,KAAKoc,WAAapc,KAAKoc,WAAapc,KAAKmS,MAAMrS,QAChDrC,EAAU8F,KAAK,+BAGdvD,KAAKgM,MACNvO,EAAU8F,KAAK,WAGnB,IAAIxH,EAAQ,CACRmZ,UAAWlV,KAAKkV,UAChBC,UAAWnV,KAAKmV,UAChBC,QAASpV,KAAKoV,QACdC,QAASrV,KAAKqV,QACdwI,aAAc7d,KAAK6d,cAGnBzV,EAAQ,CACR,aAAc,UAGd0W,EAAcpP,KAAKiK,KAAK3Z,KAAKmS,MAAMrS,OAASE,KAAKoJ,MAAMqT,MACvDzc,KAAKgc,WAMT,OAJKhc,KAAKoc,WAAapc,KAAKmS,MAAMrS,SAC9BsI,EAAMiL,OAASyL,EAAc,OAGjCrZ,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,eAAAZ,EAAAA,EAAAA,YAAA,OACuB7S,EAAS,iBAAsB1B,GAAK,4BAAA0J,EAAAA,EAAAA,aAAA,0DACM2C,GAAK,CACxD2J,EAAKrS,KAAK,cAAVqS,KAA0B,GAI5C,G,8uDC3hBJtW,OAAOsjB,SAAW,GAAG,IAEfC,GAAY,WAcb,OAAAC,EATD,SAAAD,IACA,IAAArf,EAAA,KAAA6B,EAAA,KAAAwd,GAAAvd,EAAA,WAHM,MAIFzB,KAAKyW,IAAMzU,EAAAA,IAAIO,KAAK,MAAO,CACvB9E,UAAW,CAAC,0BAGhBuE,EAAAA,IAAI4a,MAAM,WACNjd,EAAK8W,IAAI/T,SAASR,SAASC,KAC/B,EACJ,EAAC,EAAAxD,IAAA,MAAAc,MAED,SAAIob,EAAOqE,GAGPlf,KAAKqO,SAELrO,KAAKyW,IAAI0I,KAAK,SAAD1c,OACA9G,EAAAA,OAAOyjB,OAAO,2BAA4BF,GAAM,YAI7DrE,EAAMwE,aAAaC,QAAQ,aAAc,IAEO,mBAApCzE,EAAMwE,aAAaE,cAK/B1E,EAAMwE,aAAaE,aAAavf,KAAKyW,IAAIzX,IAAI,GAAI,EAAG,EACxD,GAAC,CAAAL,IAAA,SAAAc,MAED,WAEIhE,OAAOsjB,SAAWtjB,OAAO+jB,QAEzB,IAAI/hB,EAAY,CACZ,wBAGCoD,EAAAA,IAAIqF,IAAIzK,OAAOsjB,SAAU,KAC1BthB,EAAU8F,KAAK,iBAGd1C,EAAAA,IAAIqF,IAAIzK,OAAOsjB,SAAU,KAC1BthB,EAAU8F,KAAK,kBAGd1C,EAAAA,IAAIqF,IAAIzK,OAAOsjB,SAAU,KAC1BthB,EAAU8F,KAAK,kBAGnBvD,KAAKyW,IAAIgJ,KAAK,QAAShiB,EAAUgG,KAAK,KAC1C,IAAC,CAzDa,GA6DlBhI,OAAOikB,YAAc,IAAIV,GAAa,IAEhCW,GAAc,WAcf,OAAAV,EAPD,SAAAU,EAAYC,GACZpe,EAAA,KAAAme,GAAAle,EAAA,WALM,MAAIA,EAAA,cAED,MAILzB,KAAKyW,IAAMzU,EAAAA,IAAIO,KAAK,MAAO,CACvB9E,UAAW,CAAC,4BAGhBuC,KAAKyW,IAAI/T,SAAS1C,KAAK4f,OAASA,EACpC,EAAC,EAAAjhB,IAAA,UAAAc,MAED,SAAQob,EAAOgF,EAAUxd,GACzB,IAD6Byd,EAAQjgB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,QAEhCsX,EAAO9U,EAAG+U,wBAkBd,OAhBKyD,EAAMQ,QAAUlE,EAAKoB,EAAIsH,IAC1BC,EAAW,UAGVjF,EAAMQ,QAAUlE,EAAKoB,EAAIpB,EAAK9D,OAASwM,IACxCC,EAAW,SAGV9d,EAAAA,IAAIC,KAAKI,GAAI0d,SAAS,gBACvBD,EAAwB,UAAbA,EAAuB,QAAUA,GAGhDjf,EAAAA,IAAIqF,IAAI,CAAC,SAAU,SAAU4Z,GACzB9f,KAAKggB,KAAK3d,EAAIyd,GAAY9f,KAAKigB,OAG5BH,CACX,GAAC,CAAAnhB,IAAA,OAAAc,MAED,SAAK4C,EAAIyd,GAEL,IAAI9G,EAAYhX,EAAAA,IAAIC,KAAKI,GAAI2W,UAAUhZ,KAAK4f,QAExCxX,EAAQ,CACRkS,IAAKtB,GAAa,GAGJ,UAAb8G,IACD1X,EAAMkS,IAAMtB,EAAYhX,EAAAA,IAAIC,KAAKI,GAAIgR,UAGzCrT,KAAKyW,IAAIrU,IAAIrC,EAAAA,IAAIwI,IAAIH,EAAO,SAAC8X,GAAI,OAAKA,EAAO,IAAI,GACrD,GAAC,CAAAvhB,IAAA,OAAAc,MAED,WAEIO,KAAKyW,IAAIrU,IAAI,KACjB,GAAC,CAAAzD,IAAA,UAAAc,MAED,WAEIO,KAAKyW,IAAIzX,IAAI,GAAG+C,QACpB,IAAC,CA9De,GA8xBpB,SA5tBkB,WAmBb,OAAAkd,EAHD,SAAAkB,EAAYC,GACZ5e,EAAA,KAAA2e,GAAA1e,EAAA,WAdM,MAAIA,EAAA,gBAEC,MAAIA,EAAA,kBACF,CAAC,GAACA,EAAA,iBAEH,IAAEA,EAAA,kBACD,IAAEA,EAAA,gBAEJ,UAAQA,EAAA,cACV,GAACA,EAAA,eACA,GAACA,EAAA,iBACC,CAAC,GAITzB,KAAKogB,SAAWA,CACpB,EAAC,EAAAzhB,IAAA,WAAAc,MAED,WACA,IAG4B4gB,EAH5Bhd,EAAA,KADSK,EAAK7D,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,MAEbG,KAAKsgB,cAAgB,IAAIX,GAAejc,GAAS1D,KAAKogB,SAAS3J,KAE1Dhb,OAAO8kB,aACRF,EAAArgB,KAAKwgB,eAAcnhB,KAAIkB,MAAA8f,EAAA,CAACrgB,MAAIyC,OAAAge,EAAKhlB,OAAO8kB,aAG5Cve,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAAK9T,GAAG,YAAa,SAACkY,GACzCxX,EAAKqd,gBAAgB7F,EACzB,GAEA7Y,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAAK9T,GAAG,WAAY,SAACkY,GACxCxX,EAAKsd,eAAe9F,EACxB,GAEA7Y,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAAK9T,GAAG,YAAa,SAACkY,GACzCxX,EAAKud,gBAAgB/F,EACzB,GAEA7Y,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAAK9T,GAAG,UAAW,SAACkY,GACvCxX,EAAKwd,cAAchG,EACvB,GAEA7Y,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAAK9T,GAAG,OAAQ,SAACkY,GACpCxX,EAAKyd,eAAejG,EACxB,GAEA7Y,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAAK9T,GAAG,WAAY,SAACkY,GACxCxX,EAAKyd,eAAejG,EACxB,GAEAnE,EAAAA,MAAMC,KAAK,cAAe3W,KAAKwgB,cAAc7J,KAAK3W,MAC9CA,KAAKogB,SAASze,KAElB+U,EAAAA,MAAMC,KAAK,YAAa3W,KAAK+gB,YAAYpK,KAAK3W,MAC1CA,KAAKogB,SAASze,KAElB+U,EAAAA,MAAMC,KAAK,aAAc3W,KAAKghB,aAAarK,KAAK3W,MAC5CA,KAAKogB,SAASze,IACtB,GAAC,CAAAhD,IAAA,aAAAc,MAED,WAYIuC,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAAKrT,IAVf,CACT,YACA,YACA,WACA,YACA,UACA,OACA,aAKJsT,EAAAA,MAAMQ,OAAO,cAAelX,KAAKogB,SAASze,KAC1C+U,EAAAA,MAAMQ,OAAO,YAAalX,KAAKogB,SAASze,KACxC+U,EAAAA,MAAMQ,OAAO,aAAclX,KAAKogB,SAASze,IAC7C,GAAC,CAAAhD,IAAA,kBAAAc,MAED,SAAgBob,GAEZA,EAAMK,gBACV,GAAC,CAAAvc,IAAA,iBAAAc,MAED,SAAeob,GACf,IAAAvQ,EAAA,KAII,IAHatI,EAAAA,IAAIC,KAAK4Y,EAAM7X,QACvBie,QAAQ,qBAEGjhB,KAAKkhB,WAAWphB,SAIhC+a,EAAMK,mBAEDlb,KAAKmhB,QAAUnD,KAAK3G,MAAQrX,KAAKmhB,OAAS,MAA/C,CAIA,IAAIC,EAAYphB,KAAKogB,SAASgB,UAExB1gB,EAAAA,IAAI4F,WAAW8a,KACjBA,EAAY,WAAH,OAAS9W,EAAK8V,SAASgB,SAAS,GAG7C,IAAIrJ,EAAUlX,EAAAA,IAAIC,KAAKd,KAAKkhB,WAAY,SAACG,GACrC,QAASD,EAAUC,EAAM,KAAM/W,EAAKwV,SACxC,GAEA9f,KAAK8f,SAAW,OAEXjf,EAAAA,IAAIqF,IAAI6R,GAAS,KAClB/X,KAAK8f,SAAW,UAGpB9f,KAAKsgB,cAAcL,OAEI,WAAlBjgB,KAAK8f,SACN9d,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAAKtT,SAAS,cAErCnB,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAAKmB,YAAY,cAGrB,WAAlB5X,KAAK8f,SACN9d,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAAKtT,SAAS,YAErCnB,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAAKmB,YAAY,YAG5C5X,KAAKmhB,OAASnD,KAAK3G,KAhCnB,CAiCJ,GAAC,CAAA1Y,IAAA,kBAAAc,MAED,SAAgBob,GAEZ7Y,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAClBmB,YAAY,sBACrB,GAAC,CAAAjZ,IAAA,gBAAAc,MAED,SAAcob,GAEJ7a,KAAKkhB,WAAWphB,SAItBkC,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAClBmB,YAAY,uBAEM,SAAlB5X,KAAK8f,UAIVpJ,EAAAA,MAAM4K,KAAK,aACf,GAAC,CAAA3iB,IAAA,iBAAAc,MAED,SAAeob,GAEL7a,KAAKkhB,WAAWphB,SAItBkC,EAAAA,IAAIC,KAAKjC,KAAKogB,SAAS3J,KAClBmB,YAAY,uBAEM,SAAlB5X,KAAK8f,WAIVjF,EAAMK,iBAENlb,KAAKuhB,UAAU,KAAMvhB,KAAK8f,UAE1BpJ,EAAAA,MAAM4K,KAAK,eACf,GAAC,CAAA3iB,IAAA,gBAAAc,MAED,SAAc+Q,EAAOgR,GAEZ3gB,EAAAA,IAAIqF,IAAIlG,KAAKogB,SAASqB,YAAajR,KACpCxQ,KAAKkhB,WAAa3U,KAAK0B,MAAM1B,KAAKC,UAAUgV,IAEpD,GAAC,CAAA7iB,IAAA,cAAAc,MAED,WAEIO,KAAK0hB,UAAY,CAAC,EAElB1hB,KAAKkhB,WAAalhB,KAAK2hB,UAAY,EACvC,GAAC,CAAAhjB,IAAA,eAAAc,MAED,WAEI,GAAMO,KAAK2hB,UAAU7hB,SAIrBE,KAAKogB,SAASwB,aAAe,GAE7B5hB,KAAKogB,SAASvM,MAAM,kBAChB7T,KAAKogB,SAASwB,cAEZ5hB,KAAKogB,SAASyB,YAApB,CAIA,IAAIpV,EAAQ,CACR0F,MAAOpS,EAAAA,IAAI0M,MAAMzM,KAAKogB,SAASjO,QAGnCnS,KAAK8hB,YAAYrV,GACjBzM,KAAK+hB,YAAYtV,GAEjBzM,KAAKogB,SAASvM,MAAM,eAAgBpH,EAAM0F,MAT1C,CAUJ,GAAC,CAAAxT,IAAA,kBAAAc,MAED,SAAgBob,EAAOwG,GACvB,IAAAvW,EAAA,KACU9K,KAAKogB,SAAS4B,WAAWX,IAC3BrhB,KAAKogB,SAASvM,MAAM,kBAChB7T,KAAKogB,SAASwB,aAAe,CAACP,EAAK1f,MAG3C,IAAI6f,EAAQ3gB,EAAAA,IAAIC,KAAKd,KAAKogB,SAASwB,aAAc,SAACK,GAC9C,OAAOphB,EAAAA,IAAIoB,KAAK6I,EAAKsV,SAAS8B,SAAQzgB,EAAA,GAAKqJ,EAAKsV,SAAS9D,WAAa2F,GAC1E,GAEAxmB,OAAOikB,YAAY1gB,IAAI6b,EAAO2G,EAAM1hB,QAEpCe,EAAAA,IAAI0H,IAAIiZ,EAAO,SAAC/hB,GACZ,MAAO,CAAEA,MAAAA,EAAOygB,KAAMngB,EAAAA,IAAIf,IAAI8L,EAAKsV,SAAU3gB,EAAM0iB,OACvD,GAEAzL,EAAAA,MAAM4K,KAAK,cAAethB,KAAKogB,SAAS5P,MACpCxQ,KAAK2hB,UAAYH,GAErB/lB,OAAO8kB,UAAY,CACfvgB,KAAKogB,SAAS5P,MAAOxQ,KAAK2hB,WAG9B3hB,KAAK0hB,UAAUL,EAAK1f,KAAO,CAC/B,GAAC,CAAAhD,IAAA,kBAAAc,MAED,SAAgBob,EAAOwG,GAEnBxG,EAAMK,iBAEAlb,KAAK0hB,UAAUL,EAAK1f,OACtB3B,KAAK0hB,UAAUL,EAAK1f,KAAO,GAG/B3B,KAAK0hB,UAAUL,EAAK1f,MACxB,GAAC,CAAAhD,IAAA,iBAAAc,MAED,SAAeob,EAAOwG,GACtB,IAAAhW,EAAA,KACI,GAAMrL,KAAKkhB,WAAWphB,SAItB+a,EAAMK,mBAEDlb,KAAKmhB,QAAUnD,KAAK3G,MAAQrX,KAAKmhB,OAAS,KAA/C,CAIA,IAAItB,EAAW7f,KAAKogB,SACfP,SAASwB,EAAK5K,IAAIqB,cAEvB9X,KAAK8f,SAAW9f,KAAKsgB,cAChB8B,QAAQvH,EAAOgF,EAAUwB,EAAK5K,KAEnC,IAAI4L,EAAa,CACb5iB,MAAO4hB,EAAK5hB,MAAOygB,KAAMmB,EAAKnB,MAG9BkB,EAAYphB,KAAKogB,SAASgB,UAExB1gB,EAAAA,IAAI4F,WAAW8a,KACjBA,EAAY,WAAH,OAAS/V,EAAK+U,SAASgB,SAAS,GAG7C,IAAIrJ,EAAUlX,EAAAA,IAAIC,KAAKd,KAAKkhB,WAAY,SAACG,GACrC,QAASD,EAAUC,EAAMgB,EAAYhX,EAAKyU,SAC9C,GAEIwC,EAAWzhB,EAAAA,IAAIqF,IAAImb,EAAK5hB,MAAM8iB,QAC9BviB,KAAKogB,SAASwB,cAElB7J,EAAQxU,MAAM+e,GAETzhB,EAAAA,IAAIqF,IAAI6R,GAAS,KAClB/X,KAAK8f,SAAW,UAGG,WAAlB9f,KAAK8f,UACN9f,KAAKsgB,cAAcL,OAGA,WAAlBjgB,KAAK8f,WACN9d,EAAAA,IAAIC,KAAKof,EAAK5K,KAAKtT,SAAS,cAC5BnB,EAAAA,IAAIC,KAAKof,EAAK5K,KAAKmB,YAAY,aAGZ,WAAlB5X,KAAK8f,WACN9d,EAAAA,IAAIC,KAAKof,EAAK5K,KAAKmB,YAAY,cAC/B5V,EAAAA,IAAIC,KAAKof,EAAK5K,KAAKtT,SAAS,aAGhCnD,KAAKmhB,OAASnD,KAAK3G,KA7CnB,CA8CJ,GAAC,CAAA1Y,IAAA,kBAAAc,MAED,SAAgBob,EAAOwG,GAEnBrhB,KAAK0hB,UAAUL,EAAK1f,OAEc,IAA7B3B,KAAK0hB,UAAUL,EAAK1f,OAIzBK,EAAAA,IAAIC,KAAKof,EAAK5K,KAAKmB,YAAY,uBAE/B5X,KAAKsgB,cAAcL,OACvB,GAAC,CAAAthB,IAAA,gBAAAc,MAED,SAAcob,EAAOwG,GAEjBrf,EAAAA,IAAIC,KAAKof,EAAK5K,KAAKmB,YAAY,uBAE/B5X,KAAKsgB,cAAcL,OAEnBvJ,EAAAA,MAAM4K,KAAK,aAEX7lB,OAAO8kB,UAAY,IACvB,GAAC,CAAA5hB,IAAA,iBAAAc,MAED,SAAeob,EAAOwG,GAEZrhB,KAAKkhB,WAAWphB,SAItBkC,EAAAA,IAAIC,KAAKof,EAAK5K,KAAKmB,YAAY,uBAE/B5X,KAAKsgB,cAAcL,OAEI,WAAlBjgB,KAAK8f,WAIVjF,EAAMK,iBAENlb,KAAKuhB,UAAUF,EAAMrhB,KAAK8f,UAE1BpJ,EAAAA,MAAM4K,KAAK,eACf,GAAC,CAAA3iB,IAAA,WAAAc,MAED,SAAS4hB,GACT,IAAA/V,EAAA,KACStL,KAAKwiB,WAAWnB,EAAK1f,MACtB3B,KAAKyiB,WAAWpB,GAGpB,IAAIqB,EAAU1gB,EAAAA,IAAIC,KAAKof,EAAK5K,KAEvBzW,KAAKogB,SAASuC,SACfD,EAAUA,EAAQzgB,KAAK,gBAG3B,IAAIwU,EAAMzU,EAAAA,IAAIC,KAAKof,EAAK5K,KAExBiM,EAAQ/f,GAAG,YAAa,SAACkY,GACrBvP,EAAKsX,gBAAgB/H,EAAOwG,EAChC,GAEA5K,EAAI9T,GAAG,YAAa,SAACkY,GACjBvP,EAAKuX,gBAAgBhI,EAAOwG,EAChC,GAEA5K,EAAI9T,GAAG,WAAY,SAACkY,GAChBvP,EAAKwX,eAAejI,EAAOwG,EAC/B,GAEA5K,EAAI9T,GAAG,YAAa,SAACkY,GACjBvP,EAAKyX,gBAAgBlI,EAAOwG,EAChC,GAEA5K,EAAI9T,GAAG,UAAW,SAACkY,GACfvP,EAAK0X,cAAcnI,EAAOwG,EAC9B,GAEA5K,EAAI9T,GAAG,OAAQ,SAACkY,GACZvP,EAAK2X,eAAepI,EAAOwG,EAC/B,GAEA5K,EAAI9T,GAAG,WAAY,SAACkY,GAChBvP,EAAK2X,eAAepI,EAAOwG,EAC/B,GAEArhB,KAAKwiB,WAAWnB,EAAK1f,KAAO0f,CAChC,GAAC,CAAA1iB,IAAA,aAAAc,MAED,SAAW4hB,GAEP,IAAIqB,EAAU1gB,EAAAA,IAAIC,KAAKof,EAAK5K,KAEvBzW,KAAKogB,SAASuC,SACfD,EAAUA,EAAQzgB,KAAK,gBAG3BygB,EAAQtf,IAAI,aAEZ,IAAIqT,EAAMzU,EAAAA,IAAIC,KAAKof,EAAK5K,KAExBA,EAAIrT,IAAI,CACJ,YACA,WACA,YACA,UACA,OACA,aAGJqT,EAAImB,YAAY,uBAEhB5X,KAAKsgB,cAAcL,cAEZjgB,KAAKwiB,WAAWnB,EAAK1f,IAChC,GAAC,CAAAhD,IAAA,YAAAc,MAED,SAAUuD,EAAQ8c,GAEd,YAA6BvhB,IAAxByB,KAAKogB,SAASjO,MACRnS,KAAKkjB,cAAclgB,EAAQ8c,QAGVvhB,IAAvByB,KAAKogB,SAASF,KACRlgB,KAAKmjB,aAAangB,EAAQ8c,GAG9B,IACX,GAAC,CAAAnhB,IAAA,eAAAc,MAED,SAAauD,EAAQ8c,GACrB,IAAApO,EAAA,KACQjF,EAAQ,CACR0F,MAAO,CAACpS,EAAAA,IAAI0M,MAAMzM,KAAKogB,SAASF,QAG/BlgB,KAAKogB,SAASgD,aACf3W,EAAQzM,KAAKqjB,cAAc5W,EAAOzJ,IAGjChD,KAAKogB,SAASyB,aACfpV,EAAQzM,KAAK+hB,YAAYtV,IAGf5L,EAAAA,IAAIC,KAAKd,KAAKkhB,WAAY,SAACG,GACrC,OAAOA,EAAKnB,KAAKxO,EAAK0O,SAAS9D,WACnC,GAFA,IAII5U,EAAS7G,EAAAA,IAAIyM,MAAMtN,KAAKkhB,YAE5BlhB,KAAKogB,SAASvM,MAAM,OAAQ9T,EAAAA,IAAIf,IAAI0I,EAAQ,YACxC3H,EAAAA,IAAIf,IAAIgE,EAAQ,OAAQ8c,GAE5B9f,KAAKogB,SAASvM,MAAM,UAChBnM,EAAQ1E,EAAQ8c,GAEpB9f,KAAKogB,SAASvM,MAAM,cAChB9T,EAAAA,IAAIf,IAAI0I,EAAQ,QACxB,GAAC,CAAA/I,IAAA,gBAAAc,MAED,SAAcuD,EAAQ8c,GACtB,IAAA/N,EAAA,KACQtF,EAAQ,CACR0F,MAAOpS,EAAAA,IAAI0M,MAAMzM,KAAKogB,SAASjO,QAG9BnS,KAAKogB,SAASyB,YACf7hB,KAAK8hB,YAAYrV,GAGfzM,KAAK2hB,UAAU7hB,QACjBe,EAAAA,IAAIC,KAAKd,KAAKkhB,WAAY,SAACzhB,EAAOd,GAC9BoT,EAAKmP,WAAWviB,GAAW,KAAIoT,EAAKqO,SAASkD,cAAc7jB,EAAMygB,KACrE,GAGClgB,KAAKogB,SAASgD,YAA2B,SAAbtD,IAC7BrT,EAAQzM,KAAKqjB,cAAc5W,EAAOzJ,IAGjChD,KAAKogB,SAASgD,YAA2B,UAAbtD,IAC7BrT,EAAQzM,KAAKujB,cAAc9W,EAAOzJ,IAGjChD,KAAKogB,SAASgD,YAA2B,WAAbtD,IAC7BrT,EAAQzM,KAAKwjB,gBAAgB/W,EAAOzJ,IAGnChD,KAAKogB,SAASgD,YAA2B,UAAbtD,IAC7BrT,EAAQzM,KAAKyjB,eAAehX,EAAOzJ,IAGlChD,KAAKogB,SAASyB,aACfpV,EAAQzM,KAAK+hB,YAAYtV,IAG7B,IAAIhD,EAAU5I,EAAAA,IAAIC,KAAKd,KAAKkhB,WAAY,SAACG,GACrC,OAAOA,EAAKnB,KAAKnO,EAAKqO,SAAS9D,WACnC,GAEAtc,KAAK2hB,UAAY3hB,KAAKogB,SAASwB,aAAe,GAE9C,IAAI8B,EAAY,OAEX7iB,EAAAA,IAAIqF,IAAIzK,OAAOsjB,SAAU,MAC1B2E,EAAY,WAGX7iB,EAAAA,IAAIqF,IAAIzK,OAAOsjB,SAAU,MAC1B2E,EAAY,YAGX7iB,EAAAA,IAAIqF,IAAIzK,OAAOsjB,SAAU,MAC1B2E,EAAY,YAGhB1jB,KAAKogB,SAASvM,MAAM6P,EAAWja,EAC3B1J,EAAAA,IAAIf,IAAIgE,EAAQ,OAAQ8c,GAE5B9f,KAAKogB,SAASvM,MAAM6P,EAAY,MAC5B1jB,KAAKkhB,WAAYle,EAAQ8c,GAE7B9f,KAAKogB,SAASvM,MAAM,kBAChB7T,KAAKogB,SAASwB,cAElB5hB,KAAKogB,SAASvM,MAAM,eAAgBpH,EAAM0F,MAC9C,GAAC,CAAAxT,IAAA,cAAAc,MAED,SAAYgN,GAER5L,EAAAA,IAAIC,KAAKd,KAAK2hB,UAAW,SAACN,GACtBthB,EAAAA,IAAIwH,IAAIkF,EAAO4U,EAAK5hB,MAAM0iB,MAAO,KACrC,EACJ,GAAC,CAAAxjB,IAAA,cAAAc,MAED,SAAYgN,GACZ,IAAAyF,EAAA,KADmBhT,EAAIW,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,QAgBtB,OAdA4M,EAAMvN,GAAQ2B,EAAAA,IAAI8iB,OAAOlX,EAAMvN,GAAO,SAACmiB,GACnC,QAASA,CACb,GAEAxgB,EAAAA,IAAI0H,IAAIkE,EAAMvN,GAAO,SAACmiB,GAElB,OAAMA,EAAKnP,EAAKkO,SAASwD,WAIlB1R,EAAK6P,YAAYV,EACpBnP,EAAKkO,SAASwD,WAJPvC,CAKf,GAEO5U,CACX,GAAC,CAAA9N,IAAA,gBAAAc,MAED,SAAcgN,GAEV,OAAKzM,KAAKogB,SAASyD,aAInBhjB,EAAAA,IAAIC,KAAKd,KAAKkhB,WAAY,SAACG,GACvB5U,EAAM0F,MAAM5O,KAAK8d,EAAKnB,KAC1B,GALWzT,CAQf,GAAC,CAAA9N,IAAA,gBAAAc,MAED,SAAcgN,EAAOzJ,GAEjB,GAAKhD,KAAKogB,SAASyD,YACf,OAAOpX,EAGX,IAAIqX,EAAc,CACd9gB,EAAOvD,MAAM0iB,MACbniB,KAAKogB,SAASwD,WAChBngB,KAAK,KAEHsgB,EAAWhkB,EAAAA,IAAIf,IAAIyN,EACnBqX,EAAa,IAQjB,OANAjjB,EAAAA,IAAIC,KAAKd,KAAKkhB,WAAY,SAACG,GACvB0C,EAASxgB,KAAK8d,EAAKnB,KACvB,GAEAngB,EAAAA,IAAIwH,IAAIkF,EAAOqX,EAAaC,GAErBtX,CACX,GAAC,CAAA9N,IAAA,kBAAAc,MAED,SAAgBgN,EAAOzJ,GAEnB,GAAKhD,KAAKogB,SAASyD,YACf,OAAOpX,EAGX,IAAIqX,EAAc9gB,EAAOvD,MAAM0iB,MAC1Bta,QAAQ,YAAa,IAEtBsK,EAAQpS,EAAAA,IAAIf,IAAIyN,EAAOqX,GAQ3B,OANAjjB,EAAAA,IAAIC,KAAKd,KAAKkhB,WAAY,SAACG,EAAM3Q,GAC7ByB,EAAM6R,OAAOhhB,EAAOvD,MAAMiR,MAAQA,EAAO,EAAG2Q,EAAKnB,KACrD,GAEAngB,EAAAA,IAAIwH,IAAIkF,EAAOqX,EAAa3R,GAErB1F,CACX,GAAC,CAAA9N,IAAA,iBAAAc,MAED,SAAegN,EAAOzJ,GAElB,GAAKhD,KAAKogB,SAASyD,YACf,OAAOpX,EAGX,IAAIqX,EAAc9gB,EAAOvD,MAAM0iB,MAC1Bta,QAAQ,YAAa,IAEtBsK,EAAQpS,EAAAA,IAAIf,IAAIyN,EAAOqX,GAQ3B,OANAjjB,EAAAA,IAAIC,KAAKd,KAAKkhB,WAAY,SAACG,EAAM3Q,GAC7ByB,EAAM6R,OAAOhhB,EAAOvD,MAAMiR,MAAQA,EAAQ,EAAG,EAAG2Q,EAAKnB,KACzD,GAEAngB,EAAAA,IAAIwH,IAAIkF,EAAOqX,EAAa3R,GAErB1F,CACX,GAAC,CAAA9N,IAAA,WAAAc,MAED,SAAS4hB,GAEL,IAAI5U,EAAQ,CACR0F,MAAOpS,EAAAA,IAAI0M,MAAMzM,KAAKogB,SAASjO,QAG/B2R,EAAczC,EAAK5hB,MAAM0iB,MACxBta,QAAQ,YAAa,IAEtBsK,EAAQpS,EAAAA,IAAIf,IAAIyN,EAAOqX,GAEvB9gB,EAASjD,EAAAA,IAAIoN,OAAOkU,EAAKnB,KAAM,GAAEze,EAAA,GAChCzB,KAAKogB,SAAS9D,YAAa1a,EAAAA,EAAAA,UAGhCuQ,EAAM6R,OAAO3C,EAAK5hB,MAAMiR,MAAQ,EAC5B,EAAG1N,GAEPjD,EAAAA,IAAIwH,IAAIkF,EAAOqX,EAAa3R,GAE5BnS,KAAKogB,SAASvM,MAAM,eAAgBpH,EAAM0F,MAC9C,GAAC,CAAAxT,IAAA,aAAAc,MAED,SAAW4hB,GAEP,IAAI5U,EAAQ,CACR0F,MAAOpS,EAAAA,IAAI0M,MAAMzM,KAAKogB,SAASjO,QAG/B2R,EAAczC,EAAK5hB,MAAM0iB,MACxBta,QAAQ,YAAa,IAEtBsK,EAAQpS,EAAAA,IAAIf,IAAIyN,EAAOqX,GAE3B3R,EAAM6R,OAAO3C,EAAK5hB,MAAMiR,MAAO,GAE/B3Q,EAAAA,IAAIwH,IAAIkF,EAAOqX,EAAa3R,GAE5BnS,KAAKogB,SAASvM,MAAM,eAAgBpH,EAAM0F,MAC9C,GAAC,CAAAxT,IAAA,SAAAc,MAED,SAAO0S,GACP,QAAAO,EAAA,KAAAvS,EAAAN,UAAAC,OADiB/D,EAAK,IAAAsE,MAAAF,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAALvE,EAAKuE,EAAA,GAAAT,UAAAS,GAElB,OAAOO,EAAAA,IAAIojB,OAAO9R,EAAO,SAAC3O,EAAO0c,EAAMxP,GAAK,OACxCgC,EAAKwR,WAAU3jB,MAAfmS,EAAI,CAAYlP,EAAO0c,EAAMiE,EAAAA,IAAG,IAAKzT,IAAMjO,OAAK1G,GAAM,EAAE,GAChE,GAAC,CAAA4C,IAAA,aAAAc,MAED,SAAW+D,EAAO0c,EAAMxP,GACxB,IAD+B0T,EAAKvkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAAGsiB,EAAKtiB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,QAASwkB,EAAQxkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,GAG9DykB,EAASvkB,EAAAA,IAAIf,IAAIkhB,EACjBlgB,KAAKogB,SAAS9D,YAAY1a,EAAAA,EAAAA,SAG1B2iB,EAAc1jB,EAAAA,IAAI2C,MAAM6gB,EACxB,CAACC,IAEDE,EAAU,CACV9T,MAAOA,EACP0T,MAAOA,EACPjC,MAAO,CAACA,EAAOzR,GAAOjN,KAAK,KAC3Bmc,OAAQ/e,EAAAA,IAAI4jB,KAAKJ,GACjB9B,QAASgC,GAGbC,EAAQxkB,KAAKogB,SAAS9D,YAAcgI,EAEpC,IAAIP,EAAWhkB,EAAAA,IAAIf,IAAIkhB,EACnBlgB,KAAKogB,SAASwD,UAAW,IAE7B,GAAKljB,EAAAA,IAAIsF,QAAQ+d,GACb,OAAOljB,EAAAA,IAAI2C,MAAMA,EAAO,CAACghB,IAG7B,IAKIzoB,EAAQ,CACRqoB,EAAQ,EANK,CACbjC,EAAOzR,EACP1Q,KAAKogB,SAASwD,WAChBngB,KAAK,KAGoB8gB,GAG3B,OAAO1jB,EAAAA,IAAI2C,MAAMA,EAAO,CAACghB,GACrBxkB,KAAKikB,OAAM1jB,MAAXP,KAAI,CAAQ+jB,GAAQthB,OAAK1G,IACjC,IAAC,CAxtBa,G,8pBClIlBN,OAAOipB,cAAe,EAEtB,UAEIrf,KAAM,YAENiD,MAAO,CACHpJ,KAAM,SAGVnD,MAAO,CAEHoW,MAAO,oBAGC,MAAO,EACX,GAGJ+J,WAAY,oBAGJ,OAAO,IACX,GAGJyI,UAAW,oBAGH,OAAO,CACX,EACAzoB,KAAM,CAACqJ,UAGX9I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGXsf,QAAS,oBAGD,OAAO,IACX,GAGJrR,SAAU,oBAGF,MAAO,EACX,GAGJD,SAAU,oBAGF,MAAO,EACX,GAGJqP,OAAQ,oBAGA,OAAO,CACX,EACAzmB,KAAM,CAACqJ,UAGXiL,MAAO,oBAGC,MAAO,CAAC,UACZ,EACAtU,KAAM,CAACmE,QAGXohB,YAAa,oBAGL,MAAO,CAAC,UACZ,EACAvlB,KAAM,CAACmE,QAGXwf,SAAU,oBAGF,OAAO,SAACxM,GAAM,MAAc,KAATA,CAAc,CACrC,GAGJwR,SAAU,oBAGF,OAAO,CACX,EACA3oB,KAAM,CAACqJ,UAGXuf,cAAe,oBAGP,OAAO,CACX,EACA5oB,KAAM,CAACqJ,UAGXyW,WAAY,oBAGJ,OAAO,EACX,EACA9f,KAAM,CAACgB,SAGX6nB,WAAY,oBAGJ,OAAO,EACX,EACA7oB,KAAM,CAACgB,SAGXkf,UAAW,oBAGH,OAAO,CACX,EACAlgB,KAAM,CAACgB,SAGXmf,QAAS,oBAGD,OAAO,CACX,EACAngB,KAAM,CAACqJ,UAGX2P,UAAW,oBAGH,OAAO,CACX,EACAhZ,KAAM,CAACqJ,UAGX4P,UAAW,oBAGH,OAAO,CACX,EACAjZ,KAAM,CAACqJ,UAGX6P,QAAS,oBAGD,OAAO,CACX,EACAlZ,KAAM,CAACgB,SAGXmY,QAAS,oBAGD,OAAO,EACX,EACAnZ,KAAM,CAACgB,SAGX8nB,kBAAmB,oBAGX,OAAO,CACX,GAGJ1I,WAAY,oBAGJ,MAAO,IACX,EACApgB,KAAM,CAACoJ,SAGXse,UAAW,oBAGH,MAAO,UACX,EACA1nB,KAAM,CAACoJ,SAGX2f,cAAe,oBAGP,OAAO,CACX,GAGJC,aAAc,oBAGN,OAAO,CACX,EACAhpB,KAAM,CAACqJ,UAGX4f,aAAc,oBAGN,OAAO,CACX,EACAjpB,KAAM,CAACqJ,UAGX6f,aAAc,oBAGN,OAAO,CACX,EACAlpB,KAAM,CAACqJ,UAGX+d,cAAe,oBAGP,OAAO,SAACjC,GAAI,OAAKA,CAAI,CACzB,GAGJwC,YAAa,oBAGL,OAAO,CACX,EACA3nB,KAAM,CAACqJ,UAGX6d,WAAY,oBAGJ,OAAO,CACX,GAGJvB,WAAY,oBAGJ,OAAO,CACX,GAGJwD,YAAa,oBAGL,OAAO,kBAAM,CAAI,CACrB,GAGJC,UAAW,oBAGH,OAAO,kBAAM,CAAI,CACrB,GAGJlE,UAAW,oBAGH,OAAO,kBAAM,CAAI,CACrB,GAGJmE,UAAW,oBAGH,OAAO,CACX,EACArpB,KAAM,CAACqJ,UAGXigB,iBAAkB,oBAGV,OAAO,GACX,EACAtpB,KAAM,CAACgB,UAKf+X,QAAO,WAEH,MAAO,CACH8G,WAAY/b,KAEpB,EAEA4F,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QACL6jB,SAAU,GACVvD,SAAU,GACVwD,QAAS,GACTlD,WAAY,CAAC,EACbmD,UAAW,GACXC,cAAe,KACfC,aAAc,KACdC,YAAa9lB,KAAK4kB,QAClBmB,aAAc/lB,KAAKsT,SACnBsO,aAAc5hB,KAAKuT,SAE3B,EAEAyC,YAAW,WAEPhW,KAAKgmB,KAAO,IAAI7F,GAAangB,MAE7BgC,EAAAA,IAAIC,KAAKxG,QAAQkH,GAAG,UAChB3C,KAAKimB,kBAAmBjmB,KAAK4W,EAAEjV,KAEnCK,EAAAA,IAAIC,KAAKxG,QAAQkH,GAAG,QAChB3C,KAAKkmB,gBAAiBlmB,KAAK4W,EAAEjV,IACrC,EAEA0K,QAAO,WAEH,IAAI3I,EAAQ1D,KAAKyG,MAAM0f,gBACnB1f,MAAM2f,MAEVpmB,KAAKgmB,KAAKK,SAAS3iB,GAEnB1D,KAAKsmB,OAAO,eAAgBtmB,KAAKumB,cAC7B,CAAEC,MAAM,IAEZxmB,KAAKymB,iBACT,EAEAzP,cAAa,WAEThX,KAAKgmB,KAAKU,aAEV1kB,EAAAA,IAAIC,KAAKC,UAAUkB,IAAI,UAAW,KAAMpD,KAAK2B,KAC7CK,EAAAA,IAAIC,KAAKC,UAAUkB,IAAI,QAAS,KAAMpD,KAAK2B,IAC/C,EAEA6F,MAAO,CAEH2K,MAAK,WAEInS,KAAKglB,mBACNhlB,KAAKqY,WAGTrY,KAAKymB,iBACT,EAEAvE,SAAQ,WAEJliB,KAAK2mB,gBACT,EAEArT,SAAQ,SAAC7T,GAELO,KAAK+lB,aAAetmB,EAEpBO,KAAK2mB,gBACT,EAEApT,SAAQ,SAAC9T,GAELO,KAAK4hB,aAAeniB,CACxB,EAEAmlB,QAAO,SAACnlB,GAEJO,KAAK8lB,YAAcrmB,CACvB,GAIJqG,QAAS,CAELmgB,kBAAiB,SAACrjB,GAEd/B,EAAAA,IAAI+lB,IAAI5mB,KAAKylB,SAAU7iB,EAAEqY,MAC7B,EAEAiL,gBAAe,SAACtjB,GAEZ/B,EAAAA,IAAIkB,OAAO/B,KAAKylB,SAAU7iB,EAAEqY,MAChC,EAEAsL,cAAa,WAET,IAAOvmB,KAAK4hB,aAAa9hB,OACrB,OAAOE,KAAK4lB,cAAgB,KAGhC5lB,KAAK4lB,cAAgB/kB,EAAAA,IAAIoB,KAAKjC,KAAKkiB,SAAQzgB,GAAA,GACtCzB,KAAKsc,WAAatc,KAAK4hB,aAAa,IAE7C,EAEAiF,WAAU,SAACxF,GAEPthB,EAAAA,IAAIwH,IAAIvH,KAAMqhB,EAAK5hB,MAAM0iB,MAAOd,EAAKnB,MAErClgB,KAAK6T,MAAM,eAAgB7T,KAAKmS,MACpC,EAEA2U,YAAW,SAACxC,GACZ,IAAA3kB,EAAA,KACQF,EAAQoB,EAAAA,IAAIoB,KAAKjC,KAAKkiB,SAAU,SAAChC,GACjC,OAAOA,EAAKvgB,EAAK2c,cAAgBgI,CACrC,GAEA,OAAO7kB,EAIA,CACHA,MAAAA,EAAOygB,KAAMngB,EAAAA,IAAIf,IAAIgB,KAAMP,EAAM0iB,MAAO,OAJjC,IAMf,EAEAsE,gBAAe,WAEXzmB,KAAKkiB,SAAWliB,KAAKgmB,KAAK/B,OAAOjkB,KAAKmS,OAEjC1W,OAAOipB,cACRna,QAAQwc,IAAI,gCAAkC/mB,KAAKkiB,SAASpiB,OAEpE,EAEA6mB,eAAc,WACd,IAAAtjB,EAAA,KACIrD,KAAK0lB,QAAU7kB,EAAAA,IAAI8iB,OAAO3jB,KAAKkiB,SAAU,SAACb,GACtC,OAAOxgB,EAAAA,IAAImmB,SAAS3jB,EAAK0iB,aAAc1E,EAAKkB,QAAQhE,MAAM,GAAI,GAClE,EACJ,EAEA0I,SAAQ,SAAC3C,GAEL,OAAOzjB,EAAAA,IAAIQ,UAAUrB,KAAK0lB,QAAOjkB,GAAA,GAC5BzB,KAAKsc,WAAagI,GAE3B,EAEA4C,gBAAe,WAEX,OAAOlnB,KAAK8lB,YAILjlB,EAAAA,IAAIQ,UAAUrB,KAAK0lB,QAAOjkB,GAAA,GAC5BzB,KAAKsc,WAAatc,KAAK8lB,YAAY9lB,KAAKsc,eAJjC,CAMhB,EAEAjE,SAAQ,WACR,IAAA/N,EAAA,KADSgO,EAACzY,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAAG0Y,EAAC1Y,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAEhB,IAAOG,KAAKyG,MAAM0f,gBACd,OAAOzlB,EAAAA,IAAIwC,MAAM,kBAAMoH,EAAK+N,SAASC,EAAGC,EAAE,GAG9CvY,KAAKyG,MAAM0f,gBAAgB9N,SAASC,EAAGC,EAC3C,EAEA+E,cAAa,SAAC5M,GACd,IAAA5F,EAAA,KACI,IAAO9K,KAAKyG,MAAM0f,gBACd,OAAOzlB,EAAAA,IAAIwC,MAAM,kBAAM4H,EAAKwS,cAAc5M,EAAM,GAGpD1Q,KAAKyG,MAAM0f,gBAAgBxN,eAAejI,EAC9C,EAEAyW,YAAW,SAAC9F,GACZ,IAAAhW,EAAA,KACQ+b,EAAUpnB,KAAKslB,UAMnB,OAJO5kB,EAAAA,IAAI4F,WAAW8gB,KAClBA,EAAU,WAAH,OAAS/b,EAAKia,SAAS,GAG3B8B,EAAQ/F,EACnB,EAEAgG,YAAW,SAAChG,GAER,OAAOxgB,EAAAA,IAAIqF,IAAIlG,KAAK2lB,UAAWtE,EAAK5hB,MAAMO,KAAKsc,YACnD,EAEAgL,cAAa,SAAC7nB,GACd,IAAA6L,EAAA,KADqB3M,EAAGkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAEvBoe,aAAaje,KAAKunB,SAGlBvnB,KAAK2lB,UAAY,GAEjB9kB,EAAAA,IAAI2mB,UAAUxnB,KAAKmS,MAAOnS,KAAK4jB,UAAW,SAACvC,EAAMkB,GAE7C,IAAIlb,EAAMga,EAEJ3gB,EAAAA,IAAIsF,QAAQrH,KACd0I,EAAMtH,EAAAA,IAAIf,IAAIqI,EAAK1I,IAGhB+B,EAAAA,IAAI4F,WAAW7G,KAClBA,EAAQ,SAAC4H,GAAG,OAAKA,IAAQ5H,CAAK,GAG3BA,EAAM4H,KAIbxG,EAAAA,IAAIC,KAAKyhB,EAAS,SAACrC,GACfrf,EAAAA,IAAI+lB,IAAItb,EAAKya,aAAc7F,EAAK5U,EAAKgR,YACzC,GAEAzb,EAAAA,IAAI+lB,IAAItb,EAAKqa,UAAWtE,EAAK/V,EAAKgR,aACtC,GAEOtc,KAAK2lB,UAAU7lB,SAItBE,KAAK+O,UAAU/O,KAAKynB,mBAEpBznB,KAAKunB,QAAUrjB,WAAW,kBACtBoH,EAAKqa,UAAY,EAAE,EAAE3lB,KAAKwlB,kBAE9BxlB,KAAK2mB,iBACT,EAEAc,kBAAiB,WAEb,GAAOznB,KAAK2lB,UAAU7lB,OAAtB,CAIA,IAAI4Q,EAAQ7P,EAAAA,IAAIQ,UAAUrB,KAAK0lB,QAAOjkB,GAAA,GACjCzB,KAAKsc,WAAazb,EAAAA,IAAIyM,MAAMtN,KAAK2lB,aAGtC3lB,KAAKyG,MAAM0f,gBAAgBxN,eAAejI,EAN1C,CAOJ,EAEAgX,UAAS,SAACrG,GAEN,OAAOrhB,KAAKilB,eAAiBjlB,KAAK8lB,aAC9BzE,EAAK5hB,MAAMO,KAAKsc,cAAgBtc,KAAK8lB,YAAY9lB,KAAKsc,WAC9D,EAEAqL,WAAU,SAACtG,GAEUrhB,KAAK8lB,aAClB9lB,KAAK8lB,YAAY9lB,KAAKsc,cAAgB+E,EAAK5hB,MAAMO,KAAKsc,cAM1Dtc,KAAK6T,MAAM,iBACP7T,KAAK8lB,YAAczE,EAAKnB,MAE5BxJ,EAAAA,MAAM4K,KAAK,wBAAyBD,EAAKnB,KAAMlgB,KAAK2B,KACxD,EAEAimB,cAAa,SAAClX,GAEV,IAAIyR,EAAQpiB,EAAAA,IAAIf,IAAIgB,KAAK0lB,QACrB,CAAChV,EAAO,UAEZ,IAAOyR,EACH,OAAOniB,KAAK4nB,cAAc,GAG9B,IAAI1H,EAAOngB,EAAAA,IAAIf,IAAIgB,KAAMmiB,GAEzBniB,KAAKyG,MAAM0f,gBACNxN,eAAejI,GAEpB1Q,KAAK6T,MAAM,iBACP7T,KAAK8lB,YAAc5F,GAEvBxJ,EAAAA,MAAM4K,KAAK,wBAAyBpB,EAAMlgB,KAAK2B,IACnD,EAEAkmB,eAAc,WAEV,GAAO7nB,KAAK0lB,QAAQ5lB,OAApB,CAMA,IAAOE,KAAK8lB,YACR,OAAO9lB,KAAK4nB,cAHJ,GAMZ,IAAIlX,EAAQ7P,EAAAA,IAAIQ,UAAUrB,KAAK0lB,QAAOjkB,GAAA,GACjCzB,KAAKsc,WAAatc,KAAK8lB,YAAY9lB,KAAKsc,eAG7B,IAAX5L,GACDA,IAGCA,GAAS1Q,KAAK0lB,QAAQ5lB,SACvB4Q,EAfQ,GAkBZ1Q,KAAK4nB,cAAclX,EApBnB,CAqBJ,EAEAoX,eAAc,WAEV,GAAO9nB,KAAK0lB,QAAQ5lB,OAApB,CAIA,IAAIioB,EAAQ/nB,KAAK0lB,QAAQ5lB,OAAS,EAElC,IAAOE,KAAK8lB,YACR,OAAO9lB,KAAK4nB,cAAcG,GAG9B,IAAIrX,EAAQ7P,EAAAA,IAAIQ,UAAUrB,KAAK0lB,QAAOjkB,GAAA,GACjCzB,KAAKsc,WAAatc,KAAK8lB,YAAY9lB,KAAKsc,eAG7B,IAAX5L,GACDA,IAGCA,EAAQ,IACTA,EAAQqX,GAGZ/nB,KAAK4nB,cAAclX,EApBnB,CAqBJ,EAEAsX,YAAW,WAEP,MAAO,CAAC,wBAAyBhoB,KAAK2B,IAC1C,EAEAsmB,WAAU,SAAC5G,GACX,IAAA3P,EAAA,KACQwW,EAAYloB,KAAKqlB,YAMrB,OAJO3kB,EAAAA,IAAI4F,WAAW4hB,KAClBA,EAAY,WAAH,OAASxW,EAAK2T,WAAW,IAG7B6C,EAAU7G,IAAUrhB,KAAK4lB,eAC9BvE,EAAK5hB,MAAM2kB,QAAUpkB,KAAK4lB,cAAcxB,KAChD,EAEA+D,YAAW,SAAC9G,GAER,QAAUrhB,KAAKooB,YAAY/G,GAAMvhB,MACrC,EAEAsoB,YAAW,SAAC/G,GAER,OAAOthB,EAAAA,IAAIf,IAAIqiB,EAAKnB,KAAMlgB,KAAK4jB,UAAW,GAC9C,EAEAyE,WAAU,SAAChH,GAEP,OAAOxgB,EAAAA,IAAIqF,IAAIlG,KAAK+lB,aAAc1E,EAAK5hB,MAAMO,KAAKsc,YACtD,EAEAvI,WAAU,SAACsN,GAEArhB,KAAKmoB,YAAY9G,KAIxBxgB,EAAAA,IAAIsO,OAAOnP,KAAK+lB,aAAc1E,EAAK5hB,MAAMO,KAAKsc,aAE9Ctc,KAAK2mB,iBACT,EAEA2B,cAAa,WAET,GAAOtoB,KAAK8lB,YAAZ,CAIA,IAAI/B,EAAWhkB,EAAAA,IAAIf,IAAIgB,KAAK8lB,YACxB9lB,KAAK4jB,WAEJljB,EAAAA,IAAIsF,QAAQ+d,KAIjBljB,EAAAA,IAAIsO,OAAOnP,KAAK+lB,aACZ/lB,KAAK8lB,YAAY9lB,KAAKsc,aAE1Btc,KAAK2mB,iBAZL,CAaJ,EAEA3E,WAAU,SAACX,GAEP,OAAOxgB,EAAAA,IAAIqF,IAAIlG,KAAK4hB,aAAcP,EAAK5hB,MAAMO,KAAKsc,YACtD,EAEAiM,gBAAe,WAMX,OAJc1nB,EAAAA,IAAI8iB,OAAO3jB,KAAK0lB,QAAS,SAACxF,GACpC,OAASA,EAAKkE,KAClB,GAEetkB,SAAWE,KAAK4hB,YACnC,EAEA4G,gBAAe,WAMX,OAJc3nB,EAAAA,IAAI8iB,OAAO3jB,KAAK0lB,QAAS,SAACxF,GACpC,OAASA,EAAKkE,KAClB,GAEetkB,SAAWE,KAAK4hB,cAC3B5hB,KAAK4hB,YACb,EAEA6G,iBAAgB,SAACpH,GAEbxgB,EAAAA,IAAIsO,OAAOnP,KAAK4hB,aAAc5hB,KAAK6lB,aAC/BxE,EAAK5hB,MAAMO,KAAKsc,YACxB,EAEAoM,gBAAe,SAACrH,GAChB,IAAAtP,EAAA,KACQ4W,EAAW,CAAC,GAAI,GAAIC,GAAW,EAE5BloB,EAAAA,IAAIsF,QAAQhG,KAAK6lB,gBACpB8C,EAAS,GAAK3oB,KAAKinB,SAASjnB,KAAK6lB,eAGrC8C,EAAS,GAAK3oB,KAAKinB,SAAS5F,EAAK5hB,MAAMO,KAAKsc,aAEvCqM,EAAS,GAAKA,EAAS,KACxBC,GAAW,GAGRA,IACHD,EAAW,CAACA,EAAS,GAAG,EAAGA,EAAS,GAAG,IAG3C9nB,EAAAA,IAAIC,KAAKd,KAAKmS,MAAMoM,MAAMoK,EAAS,GAAIA,EAAS,IAAK,SAACzI,EAAMxP,GACxD7P,EAAAA,IAAIsO,OAAO4C,EAAK6P,aAAc1B,EAAKnO,EAAKuK,YAC5C,GAEAtc,KAAK6lB,aAAexE,EAAK5hB,MAAMO,KAAKsc,WACxC,EAEAxI,WAAU,SAACuN,GAEFrhB,KAAKioB,WAAW5G,MAInBxgB,EAAAA,IAAIqF,IAAIlG,KAAKylB,SAAU,KAAOzlB,KAAKolB,aACjCplB,KAAKyoB,iBAAiBpH,GAAQrhB,KAAK0oB,gBAAgBrH,GAEvDrhB,KAAK6T,MAAM,kBAAmB7T,KAAK4hB,cACvC,EAEAiH,UAAS,WACT,IAAA3W,EAAA,KACQ/I,EAAStI,EAAAA,IAAI8iB,OAAO3jB,KAAK0lB,QAAS,SAACxF,GAEnC,IAAIgI,EAAYhW,EAAKmT,YAEd3kB,EAAAA,IAAI4F,WAAW4hB,KAClBA,EAAY,WAAH,OAAShW,EAAKmT,WAAW,GAGtC,IAAIyD,EAAM,CACNrpB,MAAOygB,EAAMA,KAAMngB,EAAAA,IAAIf,IAAIkT,EAAMgO,EAAKiC,QAG1C,OAASjC,EAAKkE,OAAS8D,EAAUY,EACrC,GAEIH,EAAW9nB,EAAAA,IAAIC,KAAKqI,EAAQ,SAAC+W,GAC7B,OAAOA,EAAKhO,EAAKoK,WACrB,GAEA,GAAKqM,EAAS7oB,SAAWE,KAAK4hB,aAAa9hB,OACvC,OAAOE,KAAK6T,MAAM,kBAAmB7T,KAAK4hB,aAAe,IAG7D5hB,KAAK6lB,aAAe,KAEpB7lB,KAAK6T,MAAM,kBAAmB7T,KAAK4hB,aAAe+G,EACtD,EAEAI,YAAW,WAEF/oB,KAAK4hB,aAAa9hB,QACnBE,KAAK6T,MAAM,kBAAmB7T,KAAK4hB,aAAe,GAE1D,EAEAoH,YAAW,WAEAhpB,KAAKulB,WAIZvjB,EAAAA,IAAIC,KAAKC,UAAUS,GAAG,UAClB3C,KAAKipB,UAAWjpB,KAAK2B,IAC7B,EAEAunB,cAAa,WAEFlpB,KAAKulB,WAIZvjB,EAAAA,IAAIC,KAAKC,UAAUkB,IAAI,UACnB,KAAMpD,KAAK2B,IACnB,EAEAsnB,UAAS,SAACpO,EAAOxY,GAERL,EAAAA,IAAIC,KAAKI,GAAI4e,QAAQ,WAIL,KAAhBpG,EAAMI,QACPJ,EAAMK,iBACNL,EAAM/X,kBACN9C,KAAKsoB,iBAGY,KAAhBzN,EAAMI,QACPJ,EAAMK,iBACNL,EAAM/X,kBACN9C,KAAK8nB,kBAGY,KAAhBjN,EAAMI,QACPJ,EAAMK,iBACNL,EAAM/X,kBACN9C,KAAK6nB,kBAEb,GAIJsB,YAAW,WACX,IAAAzW,EAAA,KACI,OAAAjN,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,yBAC4BlR,KAAK8kB,cAAa,sDACnCpS,EAAKtR,OAAO4D,OAAS0N,EAAKtR,OAAO4D,SAAW0N,EAAK9W,MAAM,cAAa,GAGnF,EAEAwY,WAAU,SAACrY,GAEP,OAAA0J,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,iBACuBnV,EAAK,CAChBc,QAASmD,KAAKoB,OAAM,SAGpC,EAEA2C,OAAM,WAEF,IAAItG,EAAY,CACZ,aACA,eAAiBuC,KAAKvD,KACtB,eAAiBuD,KAAK9D,MAGnB8D,KAAKmS,MAAMrS,QACdrC,EAAU8F,KAAK,WAGnB,IAKIxH,EAAQgE,EAAAA,IAAI6O,KAAK5O,KAAKmI,OALb,CACT,YAAa,aAAc,YAAa,YAAa,UAAW,UAChE,UAAW,cAG2B,CACtCgK,MAAOnS,KAAK0lB,QACZ0D,aAAcppB,KAAKgpB,YACnBK,aAAcrpB,KAAKkpB,gBAGvB,OAAAzjB,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,qBAAAZ,EAAAA,EAAAA,YAAA,6BACmD7S,GAAe1B,GAAK,CAC3Dc,QAASmD,KAAKN,KAAK,cAAesF,MAAOhF,KAAKN,KAAK,gBAGnE,G,8pBCt5BJ,UAEI2F,KAAM,gBAEN0P,OAAQ,CAEJgH,WAAY,CACRlf,aAAS0B,IAKjB0W,QAAO,WAEH,MAAO,CACHqU,eAAgBtpB,KAExB,EAEAjE,MAAO,CAEH0D,MAAO,CACH8pB,UAAU,GAGd7Y,MAAO,CACH6Y,UAAU,IAKlB/T,SAAU,CAEN7T,IAAG,WAEC,OAAO5B,EAAAA,IAAIf,IAAIgB,KAAKP,MAAOO,KAAK+b,WAAWO,WAC/C,EAEA4D,KAAI,WAEA,OAAOngB,EAAAA,IAAIf,IAAIgB,KAAK+b,WAAY/b,KAAKP,MAAM0iB,MAC/C,EAEA1M,MAAK,WACD,UAAW,iBAAkBha,UACzBia,UAAUC,iBAClB,EAEAC,UAAS,WACL,OAAO5V,KAAKyV,MAAQ,aAChB,WACR,EAEAI,UAAS,WACL,OAAO7V,KAAKyV,MAAQ,YAChB,WACR,EAEAK,QAAO,WACH,OAAO9V,KAAKyV,MAAQ,WAChB,SACR,GAIJ7P,KAAI,WAEA,MAAO,CACHoG,MAAQhM,KAAK+b,WAAW8I,SAEhC,EAEAxY,QAAO,WACP,IAAA1M,EAAA,KACIK,KAAK+d,MAAQ7Z,WAAW,WAEfvE,EAAKoc,WAAW4I,YACjBhlB,EAAKoe,MAAQ7Z,WAAW,WACpBvE,EAAKoc,WAAWiK,KAAKwD,SAAS7pB,EAClC,EAAG,KAGPA,EAAKqM,MAAO,CAChB,EAAG,EACP,EAEAgL,cAAa,WAETiH,aAAaje,KAAK+d,OAElB/d,KAAK+b,WAAWiK,KAAKvD,WAAWziB,KACpC,EAEA8F,QAAS,CAEL2jB,KAAI,WAEA,OAAOzpB,KAAK+b,WAAWiK,KAAK0D,SAAS1pB,KACzC,EAEA+B,OAAM,WAEF,OAAO/B,KAAK+b,WAAWiK,KAAKnE,WAAW7hB,KAC3C,EAEAmoB,YAAW,WAEP,OAAOnoB,KAAK+b,WAAWoM,YAAYnoB,KACvC,EAEAioB,WAAU,WAEN,OAAOjoB,KAAK+b,WAAWkM,WAAWjoB,KACtC,EAEAqnB,YAAW,WAEP,OAAOrnB,KAAK+b,WAAWsL,YAAYrnB,KACvC,EAEA0nB,UAAS,WAEL,OAAO1nB,KAAK+b,WAAW2L,UAAU1nB,KACrC,EAEAmnB,YAAW,WAEP,OAAOnnB,KAAK+b,WAAWoL,YAAYnnB,KACvC,EAEAqoB,WAAU,WAEN,OAAOroB,KAAK+b,WAAWsM,WAAWroB,KACtC,EAEA+T,WAAU,WAEN/T,KAAK+b,WAAWhI,WAAW/T,KAC/B,EAEAgiB,WAAU,WAEN,OAAOhiB,KAAK+b,WAAWiG,WAAWhiB,KACtC,EAEA8T,WAAU,WAEN9T,KAAK+b,WAAWjI,WAAW9T,KAC/B,EAEA2pB,QAAO,SAAC9O,GAEW7Y,EAAAA,IAAIC,KAAK4Y,EAAM7X,QACzBie,QAAQ,8BAMbjhB,KAAK+b,WAAW4L,WAAW3nB,MAEtBa,EAAAA,IAAIqF,IAAIzK,OAAO+jB,QAAS,KACzBxf,KAAK+b,WAAWjI,WAAW9T,MAG/BA,KAAK+b,WAAWlI,MAAM,YAAa7T,MACvC,EAEA4pB,WAAU,WAEN5pB,KAAK+b,WAAW4L,WAAW3nB,MAE3BA,KAAK+b,WAAWlI,MAAM,eAAgB7T,KAC1C,GAIJ8R,cAAa,WAET,IAAIrU,EAAY,CACZ,4BAGJ,IAAOuC,KAAKgM,KACR,OAAAvG,EAAAA,EAAAA,aAAA,aAAoBhI,GAAS,MAGjC,IAAI1B,EAAQ,CACR0D,MAAOO,KAAKP,MACZygB,KAAMlgB,KAAKkgB,KACXuJ,KAAMzpB,KAAKypB,KACX1nB,OAAQ/B,KAAK+B,QAGbkR,EAAiBjT,KAAKoB,OAAM,QAMhC,OAJKpB,KAAK+b,WAAWG,aACjBjJ,EAAiBjT,KAAK+b,WAAWG,aAGrCzW,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfwV,EAAelX,IAG7B,EAEA8tB,aAAY,WAER,IAAIzW,EAAQpT,KAAKP,MAAM2kB,MACnBpkB,KAAK+b,WAAWgJ,WAEpB,IAAO3R,EACH,OAAO,KAGX,IAAIhL,EAAQ,CACRgL,MAAOA,EAAQ,MAGnB,OAAA3N,EAAAA,EAAAA,aAAA,6CACgD2C,GAAK,KAIzD,EAEA8c,aAAY,WAER,IAAOllB,KAAK+b,WAAWmJ,aACnB,OAAO,KAGX,IAAInpB,EAAQ,CAAC,EAMb,OAJKiE,KAAK+b,WAAW4I,WAAa3kB,KAAKmnB,gBACnCprB,EAAM4oB,WAAY,IAGtBlf,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,kCAC6CvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,4CAAAA,EAAAA,EAAAA,aAAA,WAE3BR,KAAK6kB,MAAMnH,QAAM,SAI5C,EAEAyC,aAAY,WAER,IAAOplB,KAAK+b,WAAWqJ,aACnB,OAAO,KAGX,IAAIrpB,EAAK0F,GAAA,GACJ,KAAOuI,EAAAA,IAAIC,QAAQjK,KAAK4V,WAAa5V,KAAK+T,YAG/C,OAAAtO,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,kCAC6CvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,yCAAAA,EAAAA,EAAAA,aAAA,WAE3BR,KAAK6kB,MAAMC,YAAU,SAIhD,EAEA5E,aAAY,WAER,IAAOnlB,KAAK+b,WAAWoJ,aACnB,OAAO,KAGX,IAAIppB,EAAK0F,GAAA,GACJ,KAAOuI,EAAAA,IAAIC,QAAQjK,KAAK4V,WAAa5V,KAAK8T,YAG/C,OAAArO,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,kCAC6CvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,4CAAAA,EAAAA,EAAAA,aAAA,WAE3BR,KAAK6kB,MAAME,SAAO,SAI7C,EAEAjmB,OAAM,WAEF,IAAItG,EAAY,CACZ,mBAGCuC,KAAKmoB,eACN1qB,EAAU8F,KAAK,cAGdvD,KAAKioB,cACNxqB,EAAU8F,KAAK,cAGdvD,KAAKgiB,cACNvkB,EAAU8F,KAAK,cAGdvD,KAAKqoB,cACN5qB,EAAU8F,KAAK,cAGdvD,KAAK0nB,aACNjqB,EAAU8F,KAAK,aAGdvD,KAAKqnB,eACN5pB,EAAU8F,KAAK,eAGnB,IAAIxH,EAAQ,CACR4tB,QAAS3pB,KAAK2pB,QAASC,WAAY5pB,KAAK4pB,YAS5C,OANK5pB,KAAK+b,WAAW4I,YAAe3kB,KAAK+b,WAAW4G,QAAU3iB,KAAKmnB,gBAC/DprB,EAAM4oB,WAAY,GAGtB5oB,EAAM,eAAiBiE,KAAKP,MAAMO,KAAK+b,WAAWO,aAElD7W,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,GAAK,CAC1BiE,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,gBAAVM,IAGd,G,8pBC9UJvE,OAAOipB,cAAe,EAEtB,UAEIrf,KAAM,YAENiD,MAAO,CACHpJ,KAAM,SAGVnD,MAAO,CAEHoW,MAAO,oBAGC,MAAO,EACX,GAGJ+J,WAAY,oBAGJ,OAAO,IACX,GAGJyI,UAAW,oBAGH,OAAO,CACX,EACAzoB,KAAM,CAACqJ,UAGX9I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGXsf,QAAS,oBAGD,OAAO,IACX,GAGJrR,SAAU,oBAGF,MAAO,EACX,GAGJoP,OAAQ,oBAGA,OAAO,CACX,EACAzmB,KAAM,CAACqJ,UAGXiL,MAAO,oBAGC,MAAO,CAAC,UACZ,EACAtU,KAAM,CAACmE,QAGXohB,YAAa,oBAGL,MAAO,CAAC,UACZ,EACAvlB,KAAM,CAACmE,QAGXwf,SAAU,oBAGF,OAAO,SAACxM,GAAM,OAAM,CAAC,CACzB,GAGJwR,SAAU,oBAGF,OAAO,CACX,EACA3oB,KAAM,CAACqJ,UAGXuf,cAAe,oBAGP,OAAO,CACX,EACA5oB,KAAM,CAACqJ,UAGXyW,WAAY,oBAGJ,OAAO,GACX,EACA9f,KAAM,CAACgB,SAGX+e,UAAW,oBAGH,OAAO,GACX,EACA/f,KAAM,CAACgB,SAGXkf,UAAW,oBAGH,OAAO,CACX,EACAlgB,KAAM,CAACgB,SAGXmf,QAAS,oBAGD,OAAO,CACX,EACAngB,KAAM,CAACqJ,UAGX4W,UAAW,oBAGH,OAAO,CACX,EACAjgB,KAAM,CAACgB,SAGXgY,UAAW,oBAGH,OAAO,CACX,EACAhZ,KAAM,CAACqJ,UAGX4P,UAAW,oBAGH,OAAO,CACX,EACAjZ,KAAM,CAACqJ,UAGX6P,QAAS,oBAGD,OAAO,CACX,EACAlZ,KAAM,CAACgB,SAGXmY,QAAS,oBAGD,OAAO,EACX,EACAnZ,KAAM,CAACgB,SAGX8nB,kBAAmB,oBAGX,OAAO,CACX,GAGJ1I,WAAY,oBAGJ,MAAO,IACX,EACApgB,KAAM,CAACoJ,SAGXse,UAAW,oBAGH,MAAO,UACX,EACA1nB,KAAM,CAACoJ,SAGX2f,cAAe,oBAGP,OAAO,CACX,GAGJC,aAAc,oBAGN,OAAO,CACX,EACAhpB,KAAM,CAACqJ,UAGX4f,aAAc,oBAGN,OAAO,CACX,EACAjpB,KAAM,CAACqJ,UAGX+d,cAAe,oBAGP,OAAO,SAACjC,GAAI,OAAKA,CAAI,CACzB,GAGJwC,YAAa,oBAGL,OAAO,CACX,EACA3nB,KAAM,CAACqJ,UAGX6d,WAAY,oBAGJ,OAAO,CACX,GAGJvB,WAAY,oBAGJ,OAAO,CACX,GAGJwD,YAAa,oBAGL,OAAO,kBAAM,CAAI,CACrB,GAGJC,UAAW,oBAGH,OAAO,kBAAM,CAAI,CACrB,GAGJlE,UAAW,oBAGH,OAAO,kBAAM,CAAI,CACrB,GAGJmE,UAAW,oBAGH,OAAO,CACX,EACArpB,KAAM,CAACqJ,UAGXigB,iBAAkB,oBAGV,OAAO,GACX,EACAtpB,KAAM,CAACgB,UAKf+X,QAAO,WAEH,MAAO,CACH8G,WAAY/b,KAEpB,EAEA4F,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QACLsgB,SAAU,GACVwD,QAAS,GACTlD,WAAY,CAAC,EACbmD,UAAW,GACXC,cAAe,KACfE,YAAa9lB,KAAK4kB,QAClBmB,aAAc/lB,KAAKsT,SACnBsO,aAAc5hB,KAAKuT,SAE3B,EAEAyC,YAAW,WAEPhW,KAAKgmB,KAAO,IAAI7F,GAAangB,KACjC,EAEAqM,QAAO,WAEH,IAAI3I,EAAQ1D,KAAKyG,MAAM0f,gBACnB1f,MAAM2f,MAEVpmB,KAAKgmB,KAAKK,SAAS3iB,GAEnB1D,KAAKsmB,OAAO,eAAgBtmB,KAAKumB,cAC7B,CAAEC,MAAM,IAEZxmB,KAAKymB,iBACT,EAEAzP,cAAa,WAEThX,KAAKgmB,KAAKU,aAEV1kB,EAAAA,IAAIC,KAAKC,UAAUkB,IAAI,UAAW,KAAMpD,KAAK2B,IACjD,EAEA6F,MAAO,CAEH2K,MAAK,WAEInS,KAAKglB,mBACNhlB,KAAKqY,WAGTrY,KAAKymB,iBACT,EAEAvE,SAAQ,WAEJliB,KAAK2mB,gBACT,EAEApT,SAAQ,SAAC9T,GAELO,KAAK4hB,aAAeniB,CACxB,EAEAmlB,QAAO,SAACnlB,GAEJO,KAAK8lB,YAAcrmB,CACvB,GAIJqG,QAAS,CAELygB,cAAa,WAET,IAAOvmB,KAAK4hB,aAAa9hB,OACrB,OAAOE,KAAK4lB,cAAgB,KAGhC5lB,KAAK4lB,cAAgB/kB,EAAAA,IAAIoB,KAAKjC,KAAKkiB,SAAQzgB,GAAA,GACtCzB,KAAKsc,WAAatc,KAAK4hB,aAAa,IAE7C,EAEA6E,gBAAe,WAEXzmB,KAAKkiB,SAAWliB,KAAKgmB,KAAK/B,OAAOjkB,KAAKmS,OAEjC1W,OAAOipB,cACRna,QAAQwc,IAAI,gCAAkC/mB,KAAKkiB,SAASpiB,OAEpE,EAEA6mB,eAAc,WAEV3mB,KAAK0lB,QAAU7kB,EAAAA,IAAI8iB,OAAO3jB,KAAKkiB,SAAU,SAACb,GACtC,OAAsB,IAAfA,EAAK+C,KAChB,EACJ,EAEA6C,SAAQ,SAAC3C,GAEL,OAAOzjB,EAAAA,IAAIQ,UAAUrB,KAAK0lB,QAAOjkB,GAAA,GAC5BzB,KAAKsc,WAAagI,GAE3B,EAEA4C,gBAAe,WAEX,OAAOlnB,KAAK8lB,YAILjlB,EAAAA,IAAIQ,UAAUrB,KAAK0lB,QAAOjkB,GAAA,GAC5BzB,KAAKsc,WAAatc,KAAK8lB,YAAY9lB,KAAKsc,eAJjC,CAMhB,EAEAjE,SAAQ,WACR,IADSC,EAACzY,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAAG0Y,EAAC1Y,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAEhBG,KAAKyG,MAAM0f,gBAAgB9N,SAASC,EAAGC,EAC3C,EAEA+E,cAAa,SAAC5M,GAEV1Q,KAAKyG,MAAM0f,gBAAgBxN,eAAejI,EAC9C,EAEAyW,YAAW,SAAC9F,GACZ,IAAA1hB,EAAA,KACQynB,EAAUpnB,KAAKslB,UAMnB,OAJO5kB,EAAAA,IAAI4F,WAAW8gB,KAClBA,EAAU,WAAH,OAASznB,EAAK2lB,SAAS,GAG3B8B,EAAQ/F,EACnB,EAEAgG,YAAW,SAAChG,GAER,OAAOxgB,EAAAA,IAAIqF,IAAIlG,KAAK2lB,UAAWtE,EAAK5hB,MAAMO,KAAKsc,YACnD,EAEAgL,cAAa,SAAC7nB,GACd,IAAA4D,EAAA,KADqB1E,EAAGkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAEvBoe,aAAaje,KAAKunB,SAGlBvnB,KAAK2lB,UAAY,GAEjB9kB,EAAAA,IAAI2mB,UAAUxnB,KAAKmS,MAAOnS,KAAK4jB,UAAW,SAACvC,EAAMkB,GAExCxiB,EAAAA,IAAIf,IAAIqiB,EAAM1iB,GAAO0E,EAAKiZ,cAAgB7c,IAI/CoB,EAAAA,IAAIC,KAAKyhB,EAAS,SAACrC,GACfrf,EAAAA,IAAI+lB,IAAIvjB,EAAK0iB,aAAc7F,EAAK7c,EAAKiZ,YACzC,GAEAzb,EAAAA,IAAI+lB,IAAIvjB,EAAKsiB,UAAWtE,EAAKhe,EAAKiZ,aACtC,GAEOtc,KAAK2lB,UAAU7lB,SAItBE,KAAK+O,UAAU/O,KAAKynB,mBAEpBznB,KAAKunB,QAAUrjB,WAAW,kBACtBb,EAAKsiB,UAAY,EAAE,EAAE3lB,KAAKwlB,kBAE9BxlB,KAAK2mB,iBACT,EAEAc,kBAAiB,WAEb,GAAOznB,KAAK2lB,UAAU7lB,OAAtB,CAIA,IAAI4Q,EAAQ7P,EAAAA,IAAIQ,UAAUrB,KAAK0lB,QAAOjkB,GAAA,GACjCzB,KAAKsc,WAAazb,EAAAA,IAAIyM,MAAMtN,KAAK2lB,aAGtC3lB,KAAKyG,MAAM0f,gBAAgBxN,eAAejI,EAN1C,CAOJ,EAEAgX,UAAS,SAACrG,GAEN,OAAOrhB,KAAKilB,eAAiBjlB,KAAK8lB,aAC9BzE,EAAK5hB,MAAMO,KAAKsc,cAAgBtc,KAAK8lB,YAAY9lB,KAAKsc,WAC9D,EAEAqL,WAAU,SAACtG,GAEUrhB,KAAK8lB,aAClB9lB,KAAK8lB,YAAY9lB,KAAKsc,cAAgB+E,EAAK5hB,MAAMO,KAAKsc,cAM1Dtc,KAAK6T,MAAM,iBACP7T,KAAK8lB,YAAczE,EAAKnB,MAE5BxJ,EAAAA,MAAM4K,KAAK,wBAAyBD,EAAKnB,KAAMlgB,KAAK2B,KACxD,EAEAimB,cAAa,SAAClX,GAEV,IAAIyR,EAAQpiB,EAAAA,IAAIf,IAAIgB,KAAK0lB,QACrB,CAAChV,EAAO,UAEZ,IAAOyR,EACH,OAAOniB,KAAK4nB,cAAc,GAG9B,IAAI1H,EAAOngB,EAAAA,IAAIf,IAAIgB,KAAMmiB,GAEzBniB,KAAKyG,MAAM0f,gBACNxN,eAAejI,GAEpB1Q,KAAK6T,MAAM,iBACP7T,KAAK8lB,YAAc5F,GAEvBxJ,EAAAA,MAAM4K,KAAK,wBAAyBpB,EAAMlgB,KAAK2B,IACnD,EAEAkmB,eAAc,WAEV,GAAO7nB,KAAK0lB,QAAQ5lB,OAApB,CAMA,IAAOE,KAAK8lB,YACR,OAAO9lB,KAAK4nB,cAHJ,GAMZ,IAAIlX,EAAQ7P,EAAAA,IAAIQ,UAAUrB,KAAK0lB,QAAOjkB,GAAA,GACjCzB,KAAKsc,WAAatc,KAAK8lB,YAAY9lB,KAAKsc,eAG7B,IAAX5L,GACDA,IAGCA,GAAS1Q,KAAK0lB,QAAQ5lB,SACvB4Q,EAfQ,GAkBZ1Q,KAAK4nB,cAAclX,EApBnB,CAqBJ,EAEAoX,eAAc,WAEV,GAAO9nB,KAAK0lB,QAAQ5lB,OAApB,CAIA,IAAIioB,EAAQ/nB,KAAK0lB,QAAQ5lB,OAAS,EAElC,IAAOE,KAAK8lB,YACR,OAAO9lB,KAAK4nB,cAAcG,GAG9B,IAAIrX,EAAQ7P,EAAAA,IAAIQ,UAAUrB,KAAK0lB,QAAOjkB,GAAA,GACjCzB,KAAKsc,WAAatc,KAAK8lB,YAAY9lB,KAAKsc,eAG7B,IAAX5L,GACDA,IAGCA,EAAQ,IACTA,EAAQqX,GAGZ/nB,KAAK4nB,cAAclX,EApBnB,CAqBJ,EAEAsX,YAAW,WAEP,MAAO,CAAC,wBAAyBhoB,KAAK2B,IAC1C,EAEAsmB,WAAU,SAAC5G,GACX,IAAA/W,EAAA,KACQ4d,EAAYloB,KAAKqlB,YAMrB,OAJO3kB,EAAAA,IAAI4F,WAAW4hB,KAClBA,EAAY,WAAH,OAAS5d,EAAK+a,WAAW,IAG7B6C,EAAU7G,IAAUrhB,KAAK4lB,eAC9BvE,EAAK5hB,MAAM2kB,QAAUpkB,KAAK4lB,cAAcxB,KAChD,EAEApC,WAAU,SAACX,GAEP,OAAOxgB,EAAAA,IAAIqF,IAAIlG,KAAK4hB,aAAcP,EAAK5hB,MAAMO,KAAKsc,YACtD,EAEAiM,gBAAe,WAMX,OAJc1nB,EAAAA,IAAI8iB,OAAO3jB,KAAK0lB,QAAS,SAACxF,GACpC,OAASA,EAAKkE,KAClB,GAEetkB,SAAWE,KAAK4hB,YACnC,EAEA4G,gBAAe,WAMX,OAJc3nB,EAAAA,IAAI8iB,OAAO3jB,KAAK0lB,QAAS,SAACxF,GACpC,OAASA,EAAKkE,KAClB,GAEetkB,SAAWE,KAAK4hB,cAC3B5hB,KAAK4hB,YACb,EAEA9N,WAAU,SAACuN,GAEFrhB,KAAKioB,WAAW5G,KAIrBxgB,EAAAA,IAAIsO,OAAOnP,KAAK4hB,aAAcP,EAAK5hB,MAAMO,KAAKsc,aAE9Ctc,KAAK6T,MAAM,kBAAmB7T,KAAK4hB,cACvC,EAEAiH,UAAS,WACT,IAAA/d,EAAA,KACQ4a,EAAU7kB,EAAAA,IAAI8iB,OAAO3jB,KAAK0lB,QAAS,SAACxF,GACpC,OAASA,EAAKkE,KAClB,GAEIuE,EAAW9nB,EAAAA,IAAIC,KAAK4kB,EAAS,SAACxF,GAC9B,OAAOA,EAAKpV,EAAKwR,WACrB,GAEA,GAAKqM,EAAS7oB,SAAWE,KAAK4hB,aAAa9hB,OACvC,OAAOE,KAAK6T,MAAM,kBAAmB7T,KAAK4hB,aAAe,IAG7D5hB,KAAK6T,MAAM,kBAAmB7T,KAAK4hB,aAAe+G,EACtD,EAEAI,YAAW,WAEF/oB,KAAK4hB,aAAa9hB,QACnBE,KAAK6T,MAAM,kBAAmB7T,KAAK4hB,aAAe,GAE1D,EAEAoH,YAAW,WAEAhpB,KAAKulB,WAIZvjB,EAAAA,IAAIC,KAAKC,UAAUS,GAAG,UAClB3C,KAAKipB,UAAWjpB,KAAK2B,IAC7B,EAEAunB,cAAa,WAEFlpB,KAAKulB,WAIZvjB,EAAAA,IAAIC,KAAKC,UAAUkB,IAAI,UACnB,KAAMpD,KAAK2B,IACnB,EAEAsnB,UAAS,SAACpO,EAAOxY,GAERL,EAAAA,IAAIC,KAAKI,GAAI4e,QAAQ,WAIL,KAAhBpG,EAAMI,QACPJ,EAAMK,iBACNL,EAAM/X,mBAIW,KAAhB+X,EAAMI,QACPJ,EAAMK,iBACNL,EAAM/X,mBAGd,GAIJqmB,YAAW,WACX,IAAA9d,EAAA,KACI,OAAA5F,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,yBAC4BlR,KAAK8kB,cAAa,sDACpCzZ,EAAKjK,OAAO4D,OAASqG,EAAKjK,OAAO4D,SAAWqG,EAAKzP,MAAM,cAAa,GAGlF,EAEAwY,WAAU,SAACrY,GAEP,OAAA0J,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,iBACuBnR,EAAAA,IAAIoN,OAAOpR,EAAO,CAAC,UAAS,CACvCc,QAASmD,KAAKoB,OAAM,SAGpC,EAEA2C,OAAM,WAEF,IAAItG,EAAY,CACZ,aACA,eAAiBuC,KAAKvD,KACtB,eAAiBuD,KAAK9D,MAGnB8D,KAAKmS,MAAMrS,QACdrC,EAAU8F,KAAK,WAGnB,IAKIxH,EAAQgE,EAAAA,IAAI6O,KAAK5O,KAAKmI,OALb,CACT,YAAa,YAAa,aAAc,YAAa,YAAa,YAClE,UAAW,UAAW,UAAW,cAGK,CACtCgK,MAAOnS,KAAK0lB,QACZ0D,aAAcppB,KAAKgpB,YACnBK,aAAcrpB,KAAKkpB,gBAGvB,OAAAzjB,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,qBAAAZ,EAAAA,EAAAA,YAAA,6BACmD7S,GAAe1B,GAAK,CAC3Dc,QAASmD,KAAKN,KAAK,cAAesF,MAAOhF,KAAKN,KAAK,gBAGnE,G,8pBC7uBJ,UAEI2F,KAAM,gBAEN0P,OAAQ,CAEJgH,WAAY,CACRlf,aAAS0B,IAKjB0W,QAAO,WAEH,MAAO,CACHqU,eAAgBtpB,KAExB,EAEAjE,MAAO,CAEH0D,MAAO,CACH8pB,UAAU,IAKlB/T,SAAU,CAEN7T,IAAG,WAEC,OAAO5B,EAAAA,IAAIf,IAAIgB,KAAKP,MAAOO,KAAK+b,WAAWO,WAC/C,EAEA4D,KAAI,WAEA,OAAOngB,EAAAA,IAAIf,IAAIgB,KAAK+b,WAAY/b,KAAKP,MAAM0iB,MAC/C,EAEA1M,MAAK,WACD,UAAW,iBAAkBha,UACzBia,UAAUC,iBAClB,EAEAC,UAAS,WACL,OAAO5V,KAAKyV,MAAQ,aAChB,WACR,EAEAI,UAAS,WACL,OAAO7V,KAAKyV,MAAQ,YAChB,WACR,EAEAK,QAAO,WACH,OAAO9V,KAAKyV,MAAQ,WAChB,SACR,GAIJ7P,KAAI,WAEA,MAAO,CACHoG,MAAQhM,KAAK+b,WAAW8I,SAEhC,EAEAxY,QAAO,WACP,IAAA1M,EAAA,KACIK,KAAK+d,MAAQ7Z,WAAW,WAEfvE,EAAKoc,WAAW4I,YACjBhlB,EAAKoe,MAAQ7Z,WAAW,WACpBvE,EAAKoc,WAAWiK,KAAKwD,SAAS7pB,EAClC,EAAG,KAGPA,EAAKqM,MAAO,CAChB,EAAG,GACP,EAEAgL,cAAa,WAEFhX,KAAKgM,MACRiS,aAAaje,KAAK+d,OAGtB/d,KAAK+b,WAAWiK,KAAKvD,WAAWziB,KACpC,EAEA8F,QAAS,CAEL2jB,KAAI,WAEA,OAAOzpB,KAAK+b,WAAWiK,KAAK0D,SAAS1pB,KACzC,EAEA+B,OAAM,WAEF,OAAO/B,KAAK+b,WAAWiK,KAAKnE,WAAW7hB,KAC3C,EAEAioB,WAAU,WAEN,OAAOjoB,KAAK+b,WAAWkM,WAAWjoB,KACtC,EAEAqnB,YAAW,WAEP,OAAOrnB,KAAK+b,WAAWsL,YAAYrnB,KACvC,EAEA0nB,UAAS,WAEL,OAAO1nB,KAAK+b,WAAW2L,UAAU1nB,KACrC,EAEAmnB,YAAW,WAEP,OAAOnnB,KAAK+b,WAAWoL,YAAYnnB,KACvC,EAEAgiB,WAAU,WAEN,OAAOhiB,KAAK+b,WAAWiG,WAAWhiB,KACtC,EAEA8T,WAAU,WAEN9T,KAAK+b,WAAWjI,WAAW9T,KAC/B,EAEA2pB,QAAO,WAEH3pB,KAAK+b,WAAW4L,WAAW3nB,MAEtBa,EAAAA,IAAIqF,IAAIzK,OAAO+jB,QAAS,KACzBxf,KAAK+b,WAAWjI,WAAW9T,MAG/BA,KAAK+b,WAAWlI,MAAM,YAAa7T,KACvC,EAEA4pB,WAAU,WAEN5pB,KAAK+b,WAAW4L,WAAW3nB,MAE3BA,KAAK+b,WAAWlI,MAAM,eAAgB7T,KAC1C,GAIJ8R,cAAa,WAET,IAAIrU,EAAY,CACZ,4BAGJ,IAAOuC,KAAKgM,KACR,OAAAvG,EAAAA,EAAAA,aAAA,aAAoBhI,GAAS,MAGjC,IAAI1B,EAAQ,CACR0D,MAAOO,KAAKP,MACZygB,KAAMlgB,KAAKkgB,KACXuJ,KAAMzpB,KAAKypB,KACX1nB,OAAQ/B,KAAK+B,QAGbkR,EAAiBjT,KAAKoB,OAAM,QAMhC,OAJKpB,KAAK+b,WAAWG,aACjBjJ,EAAiBjT,KAAK+b,WAAWG,aAGrCzW,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CAChBwV,EAAelX,IAG5B,EAEAmpB,aAAY,WAER,IAAOllB,KAAK+b,WAAWmJ,aACnB,OAAO,KAGX,IAAInpB,EAAQ,CAAC,EAMb,OAJKiE,KAAK+b,WAAW4I,WAAa3kB,KAAKmnB,gBACnCprB,EAAM4oB,WAAY,IAGtBlf,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,kCAC6CvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,4CAAAA,EAAAA,EAAAA,aAAA,WAE3BR,KAAK6kB,MAAMnH,QAAM,SAI5C,EAEAwC,aAAY,WAER,IAAOnlB,KAAK+b,WAAWoJ,aACnB,OAAO,KAGX,IAAIppB,EAAK0F,GAAA,GACJ,KAAOuI,EAAAA,IAAIC,QAAQjK,KAAK4V,WAAa5V,KAAK8T,YAG/C,OAAArO,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,kCAC6CvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,4CAAAA,EAAAA,EAAAA,aAAA,WAE3BR,KAAK6kB,MAAME,SAAO,SAI7C,EAEAjmB,OAAM,WAEF,IAAItG,EAAY,CACZ,mBAGCuC,KAAKioB,cACNxqB,EAAU8F,KAAK,cAGdvD,KAAKgiB,cACNvkB,EAAU8F,KAAK,cAGdvD,KAAK0nB,aACNjqB,EAAU8F,KAAK,aAGdvD,KAAKqnB,eACN5pB,EAAU8F,KAAK,eAGnB,IAAIxH,EAAQ,CACR4tB,QAAS3pB,KAAK2pB,QACdC,WAAY5pB,KAAK4pB,YASrB,OANK5pB,KAAK+b,WAAW4I,YAAe3kB,KAAK+b,WAAW4G,QAAU3iB,KAAKmnB,gBAC/DprB,EAAM4oB,WAAY,GAGtB5oB,EAAM,eAAiBiE,KAAKP,MAAMO,KAAK+b,WAAWO,aAElD7W,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,GAAK,CAC1BiE,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,gBAAVM,IAGd,GCtQJvE,OAAOipB,cAAe,EAEtB,UAEIrf,KAAM,YAENiD,MAAO,CACHpJ,KAAM,QAGVnD,MAAO,CAEHmkB,KAAM,oBAGE,OAAO,IACX,GAGJhE,WAAY,oBAGJ,OAAO,IACX,GAGJyI,UAAW,oBAGH,OAAO,CACX,EACAzoB,KAAM,CAACqJ,UAGXrJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXkL,MAAO,oBAGC,MAAO,CAAC,UACZ,EACAtU,KAAM,CAACmE,QAGXohB,YAAa,oBAGL,MAAO,CAAC,UACZ,EACAvlB,KAAM,CAACmE,QAGXykB,cAAe,oBAGP,OAAO,CACX,EACA5oB,KAAM,CAACqJ,UAGX+W,WAAY,oBAGJ,MAAO,IACX,EACApgB,KAAM,CAACoJ,SAGXge,cAAe,oBAGP,OAAO,SAACjC,GAAI,OAAKA,CAAI,CACzB,GAGJwC,YAAa,oBAGL,OAAO,CACX,EACA3nB,KAAM,CAACqJ,UAGX6d,WAAY,oBAGJ,OAAO,CACX,GAGJvB,WAAY,oBAGJ,OAAO,CACX,GAGJT,UAAW,oBAGH,OAAO,kBAAM,CAAI,CACrB,IAKRnM,QAAO,WAEH,MAAO,CACHgV,UAAWjqB,KAEnB,EAEA4F,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QAEb,EAEAoU,YAAW,WAEPhW,KAAKgmB,KAAO,IAAI7F,GAAangB,KACjC,EAEAqM,QAAO,WAEHrM,KAAKgmB,KAAKK,SAASrmB,KAAKyW,IAC5B,EAEAO,cAAa,WAEThX,KAAKgmB,KAAKU,YACd,EAEAtS,WAAU,WAEN,OAAK1T,EAAAA,IAAIsF,QAAQhG,KAAKkgB,MACX,KAGJlgB,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,QAASpB,KAAKkgB,KAC3D,EAEAiJ,YAAW,WACX,IAAAxpB,EAAA,KACI,OAAOe,EAAAA,IAAIsF,QAAQhG,KAAKkgB,OAIxBza,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,yBAC4BlR,KAAK8kB,cAAa,sDACpCnlB,EAAKyB,OAAO4D,OAASrF,EAAKyB,OAAO4D,SAAWrF,EAAK/D,MAAM,YAAW,IALjE,IAQf,EAEAmI,OAAM,WAEF,IAAItG,EAAY,CACZ,aACA,eAAiBuC,KAAKvD,KACtB,eAAiBuD,KAAK9D,MAO1B,OAJKwE,EAAAA,IAAIsF,QAAQhG,KAAKkgB,OAClBziB,EAAU8F,KAAK,YAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CAChB,CAACuC,KAAKN,KAAK,aAAVM,GAA2BA,KAAKN,KAAK,cAAVM,KAGzC,GC7LJ,UAEIqF,KAAM,UAEN0P,OAAQ,CAEJmV,QAAS,CACLrtB,aAAS0B,IAKjB0W,QAAO,WAEH,MAAO,CACHiV,QAASlqB,KAEjB,EAEAjE,MAAO,CAEH2pB,QAAS,oBAGD,OAAO,CACX,EACAxpB,KAAM,CAACqJ,UAGX9I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX6kB,QAAS,oBAGD,OAAO,GACX,EACAjuB,KAAM,CAACgB,SAGXktB,SAAU,oBAGF,OAAO,GACX,EACAluB,KAAM,CAACgB,UAKf0I,KAAI,WAEA,MAAO,CACHykB,YAAarqB,KAAK0lB,QAE1B,EAEA5f,QAAS,CAELwkB,WAAU,WAIN,GAFAtqB,KAAKuqB,OAASvM,KAAK3G,MAEdrX,KAAK0lB,QACN,OAAO1lB,KAAKqqB,YAAcrqB,KAAK0lB,QAGnC1lB,KAAKwqB,YACT,EAEAA,WAAU,WACV,IAAA7qB,EAAA,KACQ4qB,EAASvM,KAAK3G,MAAQrX,KAAKuqB,OAE/B,GAAKA,EAASvqB,KAAKmqB,QACf,OAAOnqB,KAAKyqB,aAAaF,GAG7BvqB,KAAK0qB,QAAUxmB,WAAW,kBAAMvE,EAAK0qB,aAAc,CAAK,EACpDrqB,KAAKoqB,SACb,EAEAK,aAAY,WAAa,IAAZF,EAAM1qB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,EAClBa,EAAAA,IAAIwC,MAAMlD,KAAKwqB,WAAYxqB,KAAKmqB,QAAUI,EAAS,GACvD,GAIJ/iB,MAAO,CAEHke,QAAO,WAEH1lB,KAAKsqB,YACT,GAIJje,QAAO,WAEHrM,KAAKsqB,YACT,EAEAvmB,OAAM,WAEF,IAAItG,EAAY,CACZ,WACA,aAAeuC,KAAKvD,KACpB,aAAeuD,KAAK9D,MAOxB,OAJK8D,KAAKqqB,aACN5sB,EAAU8F,KAAK,WAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,WAGhD,GCzEemE,QA3DnB,MCAA,IAEIF,KAAM,WAENtJ,MAAO,CAEHC,WAAY,oBAGJ,OAAO,CACX,EACAE,KAAM,CAACgB,SAGXkW,MAAO,oBAGC,MAAO,EACX,EACAlX,KAAM,CAACgB,OAAQoI,SAGnBqlB,KAAM,oBAGE,MAAO,EACX,EACAzuB,KAAM,CAACoJ,SAGXslB,SAAU,oBAGF,OAAO,EACX,EACA1uB,KAAM,CAACgB,SAGXgd,SAAU,oBAGF,OAAO,CACX,EACAhe,KAAM,CAACgB,SAGXsT,MAAO,oBAGC,MAAO,EACX,EACAtU,KAAM,CAACmE,QAGX1D,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXrJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGXulB,SAAU,oBAGF,MAAO,OACX,EACA3uB,KAAM,CAACoJ,SAGXwlB,aAAc,oBAGN,OAAO,CACX,EACA5uB,KAAM,CAACgB,UAKfsY,SAAU,CAENC,MAAK,WAED,UAAU,iBAAkBha,UACxBia,UAAUC,iBAClB,EAEAC,UAAS,WAEL,OAAO5V,KAAKyV,MAAQ,aAChB,WACR,EAEAI,UAAS,WAEL,OAAO7V,KAAKyV,MAAQ,YAChB,WACR,EAEAK,QAAO,WAEH,OAAO9V,KAAKyV,MAAQ,WAChB,SACR,GAIJ7P,KAAI,WAEA,MAAO,CACHmlB,WAAW,EAAOllB,UAAW7F,KAAKhE,WAE1C,EAEAwL,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,GAIJ4M,QAAO,WACP,IAAA1M,EAAA,KACIK,KAAKqW,SAAW,IAAIC,eAAe,WAC/B3W,EAAKqrB,mBACT,GAEAhrB,KAAKqW,SAASG,QAAQxW,KAAKyW,KAErBzW,KAAKhE,YACPgE,KAAKgrB,oBAGTtU,EAAAA,MAAMC,KAAK,oBAAqB,WAC5BhX,EAAKsrB,kBAAiB1qB,MAAtBZ,EAAIE,UACR,EAAGG,KAAK4W,EAAEjV,KAEV+U,EAAAA,MAAMC,KAAK,gBAAiB,WACxBhX,EAAKurB,WAAU3qB,MAAfZ,EAAIE,UACR,EAAGG,KAAK4W,EAAEjV,KAEV3B,KAAKmrB,cACT,EAEAC,UAAS,WAELprB,KAAKqW,SAASY,aAEdP,EAAAA,MAAMQ,OAAO,oBACTlX,KAAK4W,EAAEjV,KAEX+U,EAAAA,MAAMQ,OAAO,gBACTlX,KAAK4W,EAAEjV,IACf,EAEAmE,QAAS,CAELklB,kBAAiB,WACjB,IAAA3nB,EAAA,KACI,IAAKrB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKxT,OAAO,aAA/B,CAIA,IAAIoU,EAAMrX,KAAKyW,IAAIW,wBAEd1W,EAAAA,IAAI6W,QAAQvX,KAAKykB,MAAQ,CAAC,EAAGpN,KAIlCrX,KAAKykB,KAAOpN,EAEZG,cAAcxX,KAAKyX,UAEnBzX,KAAKyX,SAAWvT,WAAW,WACvBb,EAAKgoB,aACT,EAAG,GAdH,CAeJ,EAEAH,WAAU,SAAC1a,GAEP,GAAM3P,EAAAA,IAAIqF,IAAIsK,EAAOxQ,KAAKwQ,QAIpBxQ,KAAK6F,WAAc7F,KAAKwQ,MAAM1Q,OAApC,CAIAE,KAAK+qB,WAAY,EAEjB,IAAI3iB,EAAQ,CACRgL,MAAOpT,KAAK6F,UAAY,KAAM8kB,KAAM,YAGxC3oB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKrU,IAAIgG,EARvB,CASJ,EAEA6iB,kBAAiB,SAAC5oB,GAETL,EAAAA,IAAIC,KAAKI,GAAI2kB,SAAShnB,KAAKyW,MAC5BzW,KAAKqrB,aAEb,EAEAA,YAAW,WAEP,IAAIjY,EAAQpR,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKrD,QAE1BA,IAAUpT,KAAK6F,YAIpB7F,KAAK6T,MAAM,cAAe7T,KAAK6F,UAAYuN,GAE3CpT,KAAKmrB,eACT,EAEAA,aAAY,WAER,IAAI/iB,EAAQ,CAAC,EAEU,SAAlBpI,KAAK6qB,WACNziB,EAAMqS,UAAY,eAAHhY,OAAkBzC,KAAK6F,UAAY7F,KAAK8qB,aAAY,QAGhD,UAAlB9qB,KAAK6qB,WACNziB,EAAMqS,UAAY,cAAHhY,OAAiBzC,KAAK6F,UAAY7F,KAAK8qB,aAAY,QAGtE9oB,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAMkc,QAAQvgB,IAAIgG,EACpC,EAEAwS,cAAa,SAACC,GAEV,OAAM7a,KAAKyV,MAIJoF,EAAMC,QAAQ,IAAMD,EAAME,eAAe,GAHrCF,CAIf,EAEAyQ,gBAAe,SAACzQ,GAENha,EAAAA,IAAIqF,IAAI,CAAC,EAAG,GAAI2U,EAAMI,SAI5BJ,EAAMK,iBACNL,EAAM/X,kBAED9C,KAAKwQ,MAAM1Q,QACZ4W,EAAAA,MAAM4K,KAAK,gBAAiBthB,KAAKwQ,OAGrCxO,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKtT,SAAS,UAC5BnB,EAAAA,IAAIC,KAAKC,SAASC,MAAMgB,SAAS,UAEjCnB,EAAAA,IAAIC,KAAKC,UAAUS,GAAG3C,KAAK8V,QACvBpV,EAAAA,IAAI4U,UAAUtV,KAAKurB,cAAe,IAAKvrB,KAAK4W,EAAEjV,KAElDK,EAAAA,IAAIC,KAAKC,UAAUS,GAAG3C,KAAK6V,UACvBnV,EAAAA,IAAI4U,UAAUtV,KAAKwrB,gBAAiB,IAAKxrB,KAAK4W,EAAEjV,KACxD,EAEA6pB,gBAAe,SAAC3Q,GAEZ7a,KAAK0b,QAAWjgB,OAAOse,WACnB/Z,KAAK4a,cAAcC,GAAOa,QAE9B,IAAIrG,EAAUrT,EAAAA,IAAIC,KAAKjC,KAAKyW,KACvB6E,OAAO,SAERmQ,EAAUzpB,EAAAA,IAAIC,KAAKjC,KAAKyW,KACvB4D,OAAO,SAERqR,EAAe1rB,KAAK0b,QAAU+P,EAAUpW,EACnB,GAApBrV,KAAK8qB,aAEL9qB,KAAK4qB,WACNc,EAAchc,KAAKzS,IAAIyuB,EACnB1rB,KAAK4qB,SAAW5qB,KAAK8qB,eAGxB9qB,KAAKka,WACNwR,EAAchc,KAAK1S,IAAI0uB,EACnB1rB,KAAKka,SAAWla,KAAK8qB,eAG7BvgB,QAAQwc,IAAI,SAEZ,IAAI3e,EAAQ,CACRqS,UAAW,eAAFhY,OAAiBipB,EAAc1rB,KAAK8qB,aAAY,QAG7D9oB,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAMkc,QAAQvgB,IAAIgG,EACpC,EAEAmjB,cAAa,SAAC1Q,GAQV,GANAA,EAAMK,iBACNL,EAAM/X,kBAENd,EAAAA,IAAIC,KAAKC,UAAUkB,IAAIpD,KAAK8V,QAAS,KAAM9V,KAAK4W,EAAEjV,KAClDK,EAAAA,IAAIC,KAAKC,UAAUkB,IAAIpD,KAAK6V,UAAW,KAAM7V,KAAK4W,EAAEjV,KAE9C3B,KAAK0b,QAAX,CAIA,IAAIrG,EAAUrT,EAAAA,IAAIC,KAAKjC,KAAKyW,KACvB6E,OAAO,SAERmQ,EAAUzpB,EAAAA,IAAIC,KAAKjC,KAAKyW,KACvB4D,OAAO,SAERqR,EAAc1rB,KAAK0b,QAAU+P,EAAUpW,EAClB,GAApBrV,KAAK8qB,aAEL9qB,KAAK4qB,WACNc,EAAchc,KAAKzS,IAAIyuB,EAAa1rB,KAAK4qB,WAGxC5qB,KAAKka,WACNwR,EAAchc,KAAK1S,IAAI0uB,EAAa1rB,KAAKka,WAG7Cla,KAAK6F,UAAY6J,KAAK4H,MAAMoU,GAE5B1pB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKmB,YAAY,UAE/B,IAAIxP,EAAQ,CACRqS,UAAW,eAAFhY,OAAiBipB,EAAc1rB,KAAK8qB,aAAY,QAG7D9oB,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAMkc,QAAQvgB,IAAIgG,GAEhC,IAAIujB,EAAa,CACbvY,MAAOpT,KAAK6F,UAAY,KAAM8kB,KAAM,YAGxC3oB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKrU,IAAIupB,UAEhB3rB,KAAK0b,QAEP1b,KAAKwQ,MAAM1Q,QACZ4W,EAAAA,MAAM4K,KAAK,iBAAkBthB,KAAKwQ,OAGtCxQ,KAAK+qB,WAAY,EAEjB/qB,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UA3CrC,CA4CJ,EAEA+lB,iBAAgB,SAAC/Q,GAEPha,EAAAA,IAAIqF,IAAI,CAAC,EAAG,GAAI2U,EAAMI,SAI5BJ,EAAMK,iBACNL,EAAM/X,kBAED9C,KAAKwQ,MAAM1Q,QACZ4W,EAAAA,MAAM4K,KAAK,gBAAiBthB,KAAKwQ,OAGrCxO,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKtT,SAAS,UAC5BnB,EAAAA,IAAIC,KAAKC,SAASC,MAAMgB,SAAS,UAEjCnB,EAAAA,IAAIC,KAAKC,UAAUS,GAAG3C,KAAK8V,QACvBpV,EAAAA,IAAI4U,UAAUtV,KAAK6rB,eAAgB,IAAK7rB,KAAK4W,EAAEjV,KAEnDK,EAAAA,IAAIC,KAAKC,UAAUS,GAAG3C,KAAK6V,UACvBnV,EAAAA,IAAI4U,UAAUtV,KAAK8rB,iBAAkB,IAAK9rB,KAAK4W,EAAEjV,KACzD,EAEAmqB,iBAAgB,SAACjR,GAEb7a,KAAK0b,QAAU1b,KAAK4a,cAAcC,GAAOa,QAEzC,IAAIrG,EAAUrT,EAAAA,IAAIC,KAAKjC,KAAKyW,KACvB6E,OAAO,QAERmQ,EAAUzpB,EAAAA,IAAIC,KAAKjC,KAAKyW,KACvB4D,OAAO,QAERqR,EAAe1rB,KAAK0b,QAAU+P,EAAUpW,EACnB,GAApBrV,KAAK8qB,aAEL9qB,KAAK4qB,WACNc,EAAchc,KAAKzS,IAAIyuB,EACnB1rB,KAAK4qB,SAAW5qB,KAAK8qB,eAGxB9qB,KAAKka,WACNwR,EAAchc,KAAK1S,IAAI0uB,EACnB1rB,KAAKka,SAAWla,KAAK8qB,eAG7B,IAAI1iB,EAAQ,CACRqS,UAAW,cAAFhY,OAAgBipB,EAAc1rB,KAAK8qB,aAAY,QAG5D9oB,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAMkc,QAAQvgB,IAAIgG,EACpC,EAEAyjB,eAAc,SAAChR,GAQX,GANAA,EAAMK,iBACNL,EAAM/X,kBAENd,EAAAA,IAAIC,KAAKC,UAAUkB,IAAIpD,KAAK6V,UAAW,KAAM7V,KAAK4W,EAAEjV,KACpDK,EAAAA,IAAIC,KAAKC,UAAUkB,IAAIpD,KAAK8V,QAAS,KAAM9V,KAAK4W,EAAEjV,KAE5C3B,KAAK0b,QAAX,CAIA,IAAIrG,EAAUrT,EAAAA,IAAIC,KAAKjC,KAAKyW,KACvB6E,OAAO,QAERmQ,EAAUzpB,EAAAA,IAAIC,KAAKjC,KAAKyW,KACvB4D,OAAO,QAERqR,EAAe1rB,KAAK0b,QAAU+P,EAAUpW,EACnB,GAApBrV,KAAK8qB,aAEL9qB,KAAK4qB,WACNc,EAAchc,KAAKzS,IAAIyuB,EAAa1rB,KAAK4qB,WAGxC5qB,KAAKka,WACNwR,EAAchc,KAAK1S,IAAI0uB,EAAa1rB,KAAKka,WAG7Cla,KAAK6F,UAAY6J,KAAK4H,MAAMoU,GAE5B1pB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKmB,YAAY,UAE/B,IAAIxP,EAAQ,CACRqS,UAAW,cAAFhY,OAAgBipB,EAAc1rB,KAAK8qB,aAAY,QAG5D9oB,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAMkc,QAAQvgB,IAAIgG,GAEhC,IAAIujB,EAAa,CACbvY,MAAOpT,KAAK6F,UAAY,KAAM8kB,KAAM,YAGxC3oB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKrU,IAAIupB,UAEhB3rB,KAAK0b,QAEP1b,KAAKwQ,MAAM1Q,QACZ4W,EAAAA,MAAM4K,KAAK,iBAAkBthB,KAAKwQ,OAGtCxQ,KAAK+qB,WAAY,EAEjB/qB,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UA3CrC,CA4CJ,GAIJqf,aAAY,WAER,GAAKllB,KAAKrD,SACN,OAAO,KAGX,IAIIZ,EAAQ,CAAC,EAcb,MAZuB,UAAlBiE,KAAK6qB,WACN9uB,EAAM,KAAOiO,EAAAA,IAAIC,QAAQjK,KAAK4V,YAAc5V,KAAK4rB,kBAG9B,SAAlB5rB,KAAK6qB,WACN9uB,EAAM,KAAOiO,EAAAA,IAAIC,QAAQjK,KAAK4V,YAAc5V,KAAKsrB,iBAGhDtrB,KAAK8qB,eACN/uB,EAAMqX,MAAQpT,KAAK8qB,aAAe,OAGtCrlB,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,oBAlBgB,CACZ,sBAkBwCvU,GAAK,KAErD,EAEAgI,OAAM,WAEF,IAAItG,EAAY,CACZ,YACA,cAAgBuC,KAAK9D,KACrB,cAAgB8D,KAAK6qB,UAGrBziB,EAAQ,CAAC,EAEP1H,EAAAA,IAAIsF,QAAQhG,KAAK2qB,QACnBviB,EAAY,KAAIpI,KAAK2qB,MAGzB,IAAIvX,EAAQpT,KAAKoT,MA0BjB,OAxBK1S,EAAAA,IAAIqrB,SAAS3Y,KACdA,GAAgB,MAGd1S,EAAAA,IAAIsF,QAAQhG,KAAKoT,SACnBhL,EAAa,MAAIpI,KAAKoT,OAGrBpT,KAAK+qB,WAAa/qB,KAAK6F,YACxBuC,EAAY,KAAI,OAAH3F,OAAUzC,KAAK6F,UAAS,OAGpC7F,KAAK+qB,WAAa/qB,KAAK6F,YACxBuC,EAAa,MAAI,GAAH3F,OAAMzC,KAAK6F,UAAS,OAGjC7F,KAAK4qB,WACNxiB,EAAM,aAAe,GAAH3F,OAAMzC,KAAK4qB,SAAQ,OAGpC5qB,KAAKka,WACN9R,EAAM,aAAe,GAAH3F,OAAMzC,KAAKka,SAAQ,QAGzCzU,EAAAA,EAAAA,aAAA,aACgBhI,EAAS,MAAS2K,GAAK,CAC9B,CAACpI,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,UAAYpB,KAAKN,KAAK,eAAVM,KAG5D,GCtiBJ,UAEIqF,KAAM,WAEN4P,QAAO,WAEH,MAAO,CACH+W,SAAUhsB,KAElB,EAEA+U,OAAQ,CAEJiX,SAAU,CACNnvB,aAAS0B,IAKjBxC,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJoX,MAAO,oBAGC,OAAO,CACX,EACAlX,KAAM,CAACgB,SAGXP,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGX0mB,OAAQ,oBAGA,OAAO,CACX,EACA/vB,KAAM,CAACqJ,UAGX9J,OAAQ,oBAGA,OAAO,CACX,EACAS,KAAM,CAACqJ,UAGX2mB,QAAS,oBAGD,MAAO,OACX,EACAhwB,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX6mB,MAAO,oBAGC,MAAO,MACX,EACAjwB,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXulB,SAAU,oBAGF,MAAO,eACX,EACA3uB,KAAM,CAACoJ,SAGX6J,OAAQ,oBAGA,OAAO,CACX,EACAjT,KAAM,CAACqJ,UAGX6mB,YAAa,oBAGL,OAAO,CACX,EACAlwB,KAAM,CAACqJ,UAGX8mB,WAAY,oBAGJ,OAAO,CACX,EACAnwB,KAAM,CAACqJ,UAGX+mB,aAAc,oBAGN,OAAO,CACX,EACApwB,KAAM,CAACqJ,UAGX+P,UAAW,oBAGH,OAAO,EACX,EACApZ,KAAM,CAACgB,UAKf0I,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QACLiE,WAAW,EACX6V,QAAS,EACTL,QAAS,EACTrY,OAAQ,KACRupB,SAAS,EAEjB,EAEA/kB,MAAO,CAEHxL,WAAU,WAENgE,KAAK6F,UAAY7F,KAAKhE,UAC1B,GAIJga,YAAW,WAEPhW,KAAK6F,UAAY7F,KAAKhE,UAC1B,EAEAqQ,QAAO,WACP,IAAA1M,EAAA,KACIK,KAAKgD,OAAShB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAK+V,WAAWxtB,IAAI,GAE1B,YAAjBgB,KAAKksB,UACNlsB,KAAKgD,OAAShB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKmJ,SAAS5gB,IAAI,IAGlD,IAAI1C,EAAU,CACVqF,IAAK3B,KAAK2B,IACVqB,OAAQhD,KAAKgD,OACbipB,OAAQjsB,KAAKisB,OACbpB,SAAU7qB,KAAK6qB,SACf1b,OAAQnP,KAAKmP,OACb+c,QAASlsB,KAAKksB,QACd9Y,MAAOpT,KAAKoT,MACZgZ,YAAapsB,KAAKosB,YAClBC,WAAYrsB,KAAKqsB,YAGhBrsB,KAAKgsB,WACN1vB,EAAQsjB,OAAS5f,KAAKgsB,SAASS,OAGnCzsB,KAAKysB,MAAQzsB,KAAK0sB,QAAQ9nB,OAAO5E,KAAKyW,IAAKna,GAE3C0D,KAAKysB,MAAM9pB,GAAG,OAAQ,YACM,IAAnBhD,EAAKkG,WACNlG,EAAKkU,MAAM,oBAAqBlU,EAAKkG,WAAY,EAEzD,GAEA7F,KAAKysB,MAAM9pB,GAAG,QAAS,YACK,IAAnBhD,EAAKkG,WACNlG,EAAKkU,MAAM,oBAAqBlU,EAAKkG,WAAY,EAEzD,GAEA7F,KAAKsmB,OAAO,YAAa,WACrB3mB,EAAKkG,UAAYlG,EAAK8sB,MAAMzM,OAASrgB,EAAK8sB,MAAMxM,MACpD,GAEAje,EAAAA,IAAIC,KAAKC,SAASC,MAAMyC,OAAO5E,KAAKyW,IACxC,EAEAO,cAAa,WAEThX,KAAK0sB,QAAQ3qB,OAAO,CAAEJ,IAAK3B,KAAK2B,MAEhC3B,KAAKyW,IAAI1U,QACb,EAEA+D,QAAS,CAEL6mB,OAAM,WAEF,OAAO3sB,KAAK6F,SAChB,EAEA+mB,KAAI,WAEA5sB,KAAKysB,MAAMG,MACf,EAEA7pB,MAAK,WAED/C,KAAKysB,MAAMxM,MACf,GAIJ3N,WAAU,WAEN,OAAKtS,KAAKoB,OAAOyrB,IACN7sB,KAAKoB,OAAOyrB,OAGvBpnB,EAAAA,EAAAA,aAAA,kCAESzF,KAAKoB,OAAO0rB,SAAMrnB,EAAAA,EAAAA,aAAA,mCAEVzF,KAAKoB,OAAO0rB,YACXrnB,EAAAA,EAAAA,aAAA,iCAGLzF,KAAKoB,OAAM,YAEfpB,KAAKoB,OAAO2rB,SAAMtnB,EAAAA,EAAAA,aAAA,mCAEVzF,KAAKoB,OAAO2rB,YAKjC,EAEAhpB,OAAM,WAEF,IAAItG,EAAY,CACZ,YACA,cAAgBuC,KAAK9D,KACrB,cAAgB8D,KAAKvD,KACrB,cAAgBuD,KAAK6qB,UAGnB7qB,KAAK6F,WACPpI,EAAU8F,KAAK,YAGnB,IAAIypB,EAAWhtB,KAAKhE,WAkBpB,OAhBK0E,EAAAA,IAAIiK,OAAO3K,KAAKhE,cACjBgxB,EAAWhtB,KAAK6F,WAGf7F,KAAKssB,eACNU,GAAW,GAGVA,GACDvvB,EAAU8F,KAAK,WAGdvD,KAAKmsB,OACN1uB,EAAU8F,KAAK,YAAcvD,KAAKmsB,QAGtC1mB,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CAChBuvB,GAAYhtB,KAAKN,KAAK,aAAVM,IAGzB,GC/SJ,IAEIqF,KAAM,gBAEN0P,OAAQ,CACJiX,SAAU,CACNnvB,aAAS0B,IAIjBxC,MAAO,CAEHU,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,UAMfkQ,SAAU,CAENyX,SAAQ,WAEJ,OAAKjtB,KAAKgsB,SACChsB,KAAKgsB,SAASvvB,KAGlBuD,KAAKvD,IAChB,GAIJsH,OAAM,WAEF,IAAItG,EAAY,CACZ,kBACA,oBAAsBuC,KAAKitB,UAG/B,OAAAxnB,EAAAA,EAAAA,aAAA,eACkBhI,GAAS,EAAAgI,EAAAA,EAAAA,aAAA,aACXzF,KAAKoB,OAAM,aAG/B,GC9CJ,IAEIiE,KAAM,iBAEN0P,OAAQ,CACJiX,SAAU,CACNnvB,aAAS0B,IAIjBxC,MAAO,CAEHG,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGX4nB,MAAO,oBAGC,OAAO,CACX,EACAhxB,KAAM,CAACqJ,UAGXonB,OAAQ,oBAGA,OAAO,CACX,EACAzwB,KAAM,CAACqJ,UAGX5I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGX3H,KAAM,oBAGE,MAAO,EACX,EACA1B,KAAM,CAACoJ,SAGXzH,aAAc,oBAGN,MAAO,OACX,EACA3B,KAAM,CAACoJ,SAGX6nB,MAAO,oBAGC,MAAO,EACX,EACAjxB,KAAM,CAACoJ,SAGX8nB,cAAe,oBAGP,MAAO,QACX,EACAlxB,KAAM,CAACoJ,SAGX+nB,WAAY,oBAGJ,OAAO,CACX,EACAnxB,KAAM,CAACqJ,WAMfiQ,SAAU,CAENyX,SAAQ,WAEJ,OAAKjtB,KAAKgsB,SACChsB,KAAKgsB,SAASvvB,KAGlBuD,KAAKvD,IAChB,GAIJqJ,QAAS,CAEL6jB,QAAO,SAAC9O,GAEC7a,KAAKgsB,UAAYhsB,KAAKqtB,YACvBrtB,KAAKgsB,SAASjpB,QAGlB/C,KAAK6T,MAAM,YAAagH,EAC5B,GAIJyS,YAAW,WAEP,IAAOttB,KAAKmtB,MACR,OAAO,KAGX,IAAI1vB,EAAY,CACZ,UACA,YAAcuC,KAAKotB,eAGvB,OAAA3nB,EAAAA,EAAAA,aAAA,aAAoBhI,EAAS,IAAOuC,KAAKmtB,OAAK,KAClD,EAEAxpB,WAAU,WAEN,IAAO3D,KAAKpC,KACR,OAAO,KAGX,IAAIH,EAAY,CACZ,SACA,WAAauC,KAAKnC,cAKtB,OAFAJ,EAAU8F,KAAKvD,KAAKpC,OAEpB6H,EAAAA,EAAAA,aAAA,WAAkBhI,GAAS,KAC/B,EAEA8vB,cAAa,WAET,OAAKvtB,KAAKoB,OAAOyrB,IACN7sB,KAAKoB,OAAOyrB,OAGvBpnB,EAAAA,EAAAA,aAAA,aACYzF,KAAKoB,OAAM,WAE3B,EAEA2C,OAAM,WAEF,IAAItG,EAAY,CACZ,mBACA,qBAAuBuC,KAAK9D,KAC5B,qBAAuB8D,KAAKitB,UAG3BjtB,KAAK2sB,QACNlvB,EAAU8F,KAAK,YAGdvD,KAAKktB,OACNzvB,EAAU8F,KAAK,WAGdvD,KAAKrD,UACNc,EAAU8F,KAAK,cAGnB,IAAIxH,EAAQgE,EAAAA,IAAI0M,MAAMzM,KAAKiB,QAU3B,OAROjB,KAAKrD,WACRZ,EAAM4tB,QAAU3pB,KAAK2pB,SAGpB3pB,KAAKrD,WACNZ,EAAMY,UAAW,IAGrB8I,EAAAA,EAAAA,aAAA,KAAA6K,EAAAA,EAAAA,YAAA,OACc7S,EAAS,2BAAgC1B,GAAK,CAClDiE,KAAKN,KAAK,cAAVM,GACAA,KAAKN,KAAK,gBAAVM,GACAA,KAAKN,KAAK,aAAVM,IAGd,G,+sBCxMG,I,SAAMwtB,GAAa,kB,EAAA,SAAAA,K,4FAAAhsB,CAAA,KAAAgsB,EAAA,E,EAAA,EAAA7uB,IAAA,gBAAAc,MAItB,WACI,UAAW,iBAAkBhE,UAAUia,UAAUC,iBACrD,GAAC,CAAAhX,IAAA,iBAAAc,MAED,WAEI,MAAO,QACX,GAAC,CAAAd,IAAA,gBAAAc,MAED,WAEI,OAAKO,KAAKytB,gBACC,aAGJ,WACX,GAAC,CAAA9uB,IAAA,gBAAAc,MAED,WAEI,OAAKO,KAAKytB,gBACC,aAGJ,WACX,GAAC,CAAA9uB,IAAA,kBAAAc,MAED,WAEI,OAAKO,KAAKytB,gBACC,aAIf,GAAC,CAAA9uB,IAAA,oBAAAc,MAED,WAEI,OAAKO,KAAKytB,gBACC,aAGJ,WACX,GAAC,CAAA9uB,IAAA,oBAAAc,MAED,WAEI,OAAKO,KAAKytB,gBACC,YAGJ,WACX,GAAC,CAAA9uB,IAAA,kBAAAc,MAED,WAEI,OAAKO,KAAKytB,gBACC,WAGJ,SACX,K,EAjEsB,O,2FAiErB,CAjEqB,G,GAAbD,G,GAEM,iB,SAFO,Y,+FAqEnB/xB,OAAO+xB,GAAcnpB,SACxB5I,OAAO+xB,GAAcnpB,OAASmpB,IAGlC,Y,80BCtEA/xB,OAAOiyB,WAAa,CAAC,EAEd,IAAMC,GAAc,kB,4GAAA1O,CAAA,SAAA0O,K,4FAAAnsB,CAAA,KAAAmsB,EAAA,SAAAhvB,IAAA,QAAAc,MAMvB,WACA,IAAAE,EAAA,KASI,OARAqC,EAAAA,IAAIC,KAAKxG,QAAQkH,GAAG6qB,GAAcI,oBAAqBltB,EAAAA,IAAImtB,SAAS,SAACjrB,GACjEjD,EAAKmuB,oBAAoBlrB,EAC7B,EAAG,KAEHZ,EAAAA,IAAIC,KAAKxG,QAAQkH,GAAG6qB,GAAcO,iBAAkBrtB,EAAAA,IAAImtB,SAAS,SAACjrB,GAC9DjD,EAAKquB,sBAAsBprB,EAC/B,EAAG,KAEI5C,IACX,GAAC,CAAArB,IAAA,SAAAc,MAED,SAAc4C,EAAI6d,GAMd,OAJOzkB,OAAOiyB,WAAWxN,EAAKve,OAC1BlG,OAAOiyB,WAAWxN,EAAKve,KAAO,IAAIssB,GAAe5rB,EAAI6d,IAGlDzkB,OAAOiyB,WAAWxN,EAAKve,IAClC,GAAC,CAAAhD,IAAA,SAAAc,MAED,SAAcygB,GAELzkB,OAAOiyB,WAAWxN,EAAKve,MACxBlG,OAAOiyB,WAAWxN,EAAKve,KAAKuV,gBAGzBzb,OAAOiyB,WAAWxN,EAAKve,IAClC,GAAC,CAAAhD,IAAA,aAAAc,MAED,SAAkB4C,GAEd,IAAKxB,EAAAA,IAAIqF,IAAIlG,KAAK4kB,QAASviB,GAA3B,CAIA,IAAIkgB,EAAUlgB,EAAG6rB,UAEjBrtB,EAAAA,IAAIC,KAAKd,KAAK4kB,QAAS,SAACA,GACpBA,EAAQuJ,cAAc5L,EAC1B,GAEA1hB,EAAAA,IAAI+lB,IAAI5mB,KAAK4kB,QAASviB,EARtB,CASJ,GAAC,CAAA1D,IAAA,aAAAc,MAED,WAEI,OAAOoB,EAAAA,IAAI4jB,KAAKzkB,KAAK4kB,QACzB,GAAC,CAAAjmB,IAAA,eAAAc,MAED,SAAoB4C,GAEhB,OAAOxB,EAAAA,IAAIkB,OAAO/B,KAAK4kB,QAASviB,EACpC,GAAC,CAAA1D,IAAA,sBAAAc,MAED,SAA2Bob,GAEvB,IAAI+J,EAAU/jB,EAAAA,IAAI4jB,KAAKzkB,KAAK4kB,SAE5B,IAAKlkB,EAAAA,IAAIsF,QAAQ4e,GAAjB,CAIA,IAAAwJ,EAA8BxJ,EAAQtoB,QAAhC+F,EAAE+rB,EAAF/rB,GAAIW,EAAMorB,EAANprB,OAAQkpB,EAAOkC,EAAPlC,QAEdmC,EAAMrsB,EAAAA,IAAIC,KAAK4Y,EAAM7X,QAAQie,QAAQje,GACrCsrB,EAAMtsB,EAAAA,IAAIC,KAAK4Y,EAAM7X,QAAQie,QAAQ5e,GAErC8G,IAAaklB,KAAUC,EAEtB1J,EAAQc,UAAYvc,IAIR,YAAZ+iB,GAA4BmC,GAIjCzJ,EAAQ3E,KAAK,QAjBb,CAkBJ,GAAC,CAAAthB,IAAA,wBAAAc,MAED,SAA6Bob,GAEzB,IAAI0T,EAAW1tB,EAAAA,IAAI8iB,OAAO3jB,KAAK4kB,QAAS,CACpCwH,aAAa,IAGjBvrB,EAAAA,IAAIC,KAAKytB,EAAU,SAAC3J,GAChBA,EAAQ3E,KAAK,SACjB,EACJ,IAAC,CAjGsB,GAmG1Bxe,GAnGYksB,GAAc,QAER,WAASlsB,GAFfksB,GAAc,UAIN,IAiGdlyB,OAAOkyB,GAAetpB,SACzB5I,OAAOkyB,GAAetpB,OAASspB,IAGnC3rB,EAAAA,IAAI4a,MAAM,WACP+Q,GAAea,OAClB,GAEA,Y,80BC9GO,IAAMP,GAAc,WAmCtB,O,4GAAAhP,CAXD,SAAAgP,EAAY5rB,GACZ,IADgB/F,EAAOuD,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,CAAC,G,4FAAC2B,CAAA,KAAAysB,GAAAxsB,GAAA,gBApBlB,GAAKA,GAAA,eAEL,CACNme,OAAQ,KACR5c,OAAQ,KACRipB,QAAQ,EACRC,QAAS,QACT/c,QAAQ,EACR0b,SAAU,gBACVzX,OAAQ,EACRgZ,aAAa,EACbC,YAAY,IACf5qB,GAAA,cAEQ,CACL6W,EAAG,EAAGC,EAAG,IACZ9W,GAAA,cAEQ,CAAC,GAINzB,KAAK1D,QAAUyD,EAAAA,IAAIiB,OAAOhB,KAAK1D,QAASA,EAAS,CAC7C+F,GAAAA,IAGG/F,EAAQqF,MACXrF,EAAQqF,KAAMC,EAAAA,EAAAA,SAGlB5B,KAAK2W,MACT,EAAC,EAAAhY,IAAA,OAAAc,MAED,WACA,IAAAE,EAAA,KACI8uB,EAAuBzuB,KAAK1D,QAAtBqF,EAAG8sB,EAAH9sB,IAAKuqB,EAAOuC,EAAPvC,QAEM,UAAZA,GACDlqB,EAAAA,IAAIC,KAAKC,SAASC,MAAMQ,GAAG6qB,GAAckB,gBACrChuB,EAAAA,IAAI4U,UAAU,SAAC1S,GAAC,OAAKjD,EAAKgvB,QAAQ/rB,EAAE,EAAE,IAAK,CAAEjB,IAAAA,IAGpC,UAAZuqB,GACDlqB,EAAAA,IAAIC,KAAKC,SAASC,MAAMQ,GAAG6qB,GAAcoB,gBACrCluB,EAAAA,IAAImtB,SAAS,SAACjrB,GAAC,OAAKjD,EAAKgqB,QAAQ/mB,EAAE,EAAE,IAAK,CAAEjB,IAAAA,IAGnC,YAAZuqB,GACDlqB,EAAAA,IAAIC,KAAKC,SAASC,MAAMQ,GAAG6qB,GAAcqB,kBACrCnuB,EAAAA,IAAImtB,SAAS,SAACjrB,GAAC,OAAKjD,EAAKmvB,UAAUlsB,EAAE,EAAE,IAAK,CAAEjB,IAAAA,GAE1D,GAAC,CAAAhD,IAAA,SAAAc,MAED,WAEI,IAAAsvB,EAAuB/uB,KAAK1D,QAAtBqF,EAAGotB,EAAHptB,IAAKuqB,EAAO6C,EAAP7C,QAEM,UAAZA,GACDlqB,EAAAA,IAAIC,KAAKC,UAAUkB,IAAIoqB,GAAckB,gBACjC,KAAM,CAAE/sB,IAAAA,IAGC,UAAZuqB,GACDlqB,EAAAA,IAAIC,KAAKC,UAAUkB,IAAIoqB,GAAcoB,gBACjC,KAAM,CAAEjtB,IAAAA,IAGC,YAAZuqB,GACDlqB,EAAAA,IAAIC,KAAKC,UAAUkB,IAAIoqB,GAAcqB,kBACjC,KAAM,CAAEltB,IAAAA,GAEpB,GAAC,CAAAhD,IAAA,UAAAc,MAED,WAEI,IAAMmgB,EAAW5f,KAAK1D,QAAhBsjB,OAEN,OAAKlf,EAAAA,IAAIsF,QAAQ4Z,GACN,GAGJ/e,EAAAA,IAAI2C,MAAMoc,EAAOsO,UAAW,CAC/BtO,EAAOtjB,QAAQqF,KAEvB,GAAC,CAAAhD,IAAA,gBAAAc,MAED,SAAcyuB,GAEV,IAAAc,EAA0BhvB,KAAK1D,QAAzBqF,EAAGqtB,EAAHrtB,IAAeqtB,EAAV3C,aAEUxrB,EAAAA,IAAIqF,IAAIgoB,EAASvsB,IAItC3B,KAAKigB,KAAK,QACd,GAAC,CAAAthB,IAAA,KAAAc,MAED,SAAGob,EAAOzQ,GAENpK,KAAKiL,OAAO4P,GAASzQ,CACzB,GAAC,CAAAzL,IAAA,MAAAc,MAED,SAAIob,UAEO7a,KAAKiL,OAAO4P,EACvB,GAAC,CAAAlc,IAAA,OAAAc,MAED,WACA,IAAA4D,EAAA,KADKwX,EAAKhb,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,UAEJG,KAAKyX,UACND,cAAcxX,KAAKyX,UAGvBzX,KAAKyX,SAAWvT,WAAW,WACvBb,EAAK4rB,UAAUpU,EACnB,EAAG,IACP,GAAC,CAAAlc,IAAA,YAAAc,MAED,WACA,IAAA6K,EAAA,KADUuQ,EAAKhb,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,UAEd,GAAKG,KAAK0lB,QACN,OAAO1lB,KAAKkvB,iBAGhB,IAAM7sB,EAAOrC,KAAK1D,QAAZ+F,GAENL,EAAAA,IAAIC,KAAKI,GAAIod,KAAK,aAAc,QAE3B/e,EAAAA,IAAI4F,WAAWtG,KAAKiL,OAAa,OAClCjL,KAAKiL,OAAa,KAAE1K,MAAM,CAAC,EAAG,CAACsa,IAGnChX,sBAAsB,WAClByG,EAAK4kB,gBACT,GAEArrB,sBAAsB,WAClByG,EAAK6kB,oBACT,GAEAnvB,KAAK0lB,SAAU,EAEfiI,GAAehG,WAAW3nB,KAC9B,GAAC,CAAArB,IAAA,OAAAc,MAED,WACA,IAAAqL,EAAA,KADK+P,EAAKhb,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,UAEJG,KAAKyX,UACND,cAAcxX,KAAKyX,UAGvBzX,KAAKyX,SAAWvT,WAAW,WACvB4G,EAAKskB,UAAUvU,EACnB,EAAG,GACP,GAAC,CAAAlc,IAAA,YAAAc,MAED,WACA,IADUob,EAAKhb,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,UAERwC,EAAOrC,KAAK1D,QAAZ+F,GAENL,EAAAA,IAAIC,KAAKI,GAAIod,KAAK,aAAc,MAE3B/e,EAAAA,IAAI4F,WAAWtG,KAAKiL,OAAc,QACnCjL,KAAKiL,OAAc,MAAE1K,MAAM,CAAC,EAAG,CAACsa,IAGpC7a,KAAKqvB,uBAELrvB,KAAK0lB,SAAU,EAEfiI,GAAe2B,aAAatvB,KAChC,GAAC,CAAArB,IAAA,UAAAc,MAED,SAAQob,GAEJ,IAAA0U,EAAqBvvB,KAAK1D,QAApB+F,EAAEktB,EAAFltB,GAAIW,EAAMusB,EAANvsB,OAENqrB,EAAMrsB,EAAAA,IAAIC,KAAK4Y,EAAM7X,QAAQie,QAAQje,GACrCsrB,EAAMtsB,EAAAA,IAAIC,KAAK4Y,EAAM7X,QAAQie,QAAQ5e,GAErC8G,IAAaklB,KAAUC,EAE3B,GAAKtuB,KAAK0lB,UAAYvc,EAItB,OAAOA,OAIPnJ,KAAKivB,UAAU,SAHJjvB,KAAKovB,UAAU,QAI9B,GAAC,CAAAzwB,IAAA,UAAAc,MAED,SAAQob,GAEJ,IAAA2U,EAAqBxvB,KAAK1D,QAApB+F,EAAEmtB,EAAFntB,GAAIW,EAAMwsB,EAANxsB,OAIV,GAF8B,IAAhB6X,EAAMI,OAA+B,IAAhBJ,EAAMI,MAEzC,CAIA,IAAIoT,EAAMrsB,EAAAA,IAAIC,KAAK4Y,EAAM7X,QAAQie,QAAQje,GACrCsrB,EAAMtsB,EAAAA,IAAIC,KAAK4Y,EAAM7X,QAAQie,QAAQ5e,GAEzC,GAAKrC,KAAK0lB,QACN,OAAO1lB,KAAK1D,QAAQ6S,QAAUkf,GAAOruB,KAAKovB,UAAU,SAGxD,IAAIjmB,IAAaklB,KAAUC,EAEtBtuB,KAAK0lB,UAAYvc,GAItBnJ,KAAKivB,UAAU,QAff,CAgBJ,GAAC,CAAAtwB,IAAA,YAAAc,MAED,SAAUob,GAEN,IAAA4U,EAAqBzvB,KAAK1D,QAApB+F,EAAEotB,EAAFptB,GAAIW,EAAMysB,EAANzsB,OAIV,GAF8B,IAAhB6X,EAAMI,MAEpB,CAIA,IAAIoT,EAAMrsB,EAAAA,IAAIC,KAAK4Y,EAAM7X,QAAQie,QAAQje,GACrCsrB,EAAMtsB,EAAAA,IAAIC,KAAK4Y,EAAM7X,QAAQie,QAAQ5e,GAEzCrC,KAAK0vB,OAAOpX,EAAIuC,EAAMa,QACtB1b,KAAK0vB,OAAOnX,EAAIsC,EAAMQ,QAEtB,IAAIlS,IAAaklB,KAAUC,EAEtBnlB,IACD0R,EAAMK,iBACNL,EAAM/X,mBAGHqG,GAIPnJ,KAAKivB,UAAU,UAnBf,CAoBJ,GAAC,CAAAtwB,IAAA,qBAAAc,MAED,WACA,IAAA4L,EAAA,KACUhJ,EAAOrC,KAAK1D,QAAZ+F,GAENrC,KAAKqW,SAAW,IAAIC,eAAe,WAC/BjL,EAAK6jB,gBACT,GAEAlvB,KAAKqW,SAASG,QAAQnU,EAC1B,GAAC,CAAA1D,IAAA,uBAAAc,MAED,WAESO,KAAKqW,UACNrW,KAAKqW,SAASY,YAEtB,GAAC,CAAAtY,IAAA,iBAAAc,MAED,WAEI,IAAAkwB,EAA4B3vB,KAAK1D,QAA3B+F,EAAEstB,EAAFttB,GAAIW,EAAM2sB,EAAN3sB,OAAQoQ,EAAKuc,EAALvc,MAElB7D,EAAuB,CACnBvP,KAAK4vB,kBAAmB5tB,EAAAA,IAAIC,KAAKC,SAASC,MAAMkY,UAD/CiB,EAAM/L,EAAA,GAAE8K,EAAM9K,EAAA,GAInBvN,EAAAA,IAAIC,KAAKI,GAAIod,KAAK,gBAAiBnE,EAAOuP,UAEnCpvB,OAAOo0B,SACVp0B,OAAOo0B,OAAS,KAGpB,IAAIznB,EAAQrI,EAAAA,IAAIiB,OAAOgB,EAAAA,IAAIC,KAAKI,GAAID,MAAO,CACvC,UAAY3G,OAAOo0B,SACnB,IAAYngB,KAAK4H,MAAMgE,EAAO/C,EAAI8B,EAAOC,KAAO,KAChD,KAAY5K,KAAK4H,MAAMgE,EAAOhD,EAAI+B,EAAOE,MAAQ,OAGjDpD,EAAOnU,EAAOoU,yBAEF,IAAXhE,IACDhL,EAAMgL,MAAQ1D,KAAK4H,MAAMH,EAAK/D,OAAS,MAG3CpR,EAAAA,IAAIC,KAAKI,GAAID,IAAIgG,GAEVA,EAAM,sBACTA,EAAM,oBAAsB,GAAH3F,OAAM0U,EAAK/D,MAAK,QAGtChL,EAAM,mBAAqBpG,EAAAA,IAAIC,KAAKI,GAAI0X,eAC3C3R,EAAM,kBAAoB,GAAH3F,OAAMJ,EAAGwV,YAAW,OAGxCzP,EAAM,uBACTA,EAAM,qBAAuB,GAAH3F,OAAM0U,EAAK9D,OAAM,QAGxCjL,EAAM,oBAAsBpG,EAAAA,IAAIC,KAAKI,GAAIiX,gBAC5ClR,EAAM,mBAAqB,GAAH3F,OAAMJ,EAAGyV,aAAY,OAGjD9V,EAAAA,IAAIC,KAAKI,GAAID,IAAIgG,EACrB,GAAC,CAAAzJ,IAAA,sBAAAc,MAED,SAAoBorB,GACpB,IAD8BjrB,EAAQC,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAErCiwB,EAAkD9vB,KAAK1D,QAAjD+F,EAAEytB,EAAFztB,GAAIW,EAAM8sB,EAAN9sB,OAAQkpB,EAAO4D,EAAP5D,QAAS9Y,EAAK0c,EAAL1c,MAAOgZ,EAAW0D,EAAX1D,YAE9B2D,EAAa/sB,EAAOoU,wBAEP,YAAZ8U,IACD6D,EAAa,CACTzV,IAAKta,KAAK0vB,OAAOnX,EAAGgC,KAAMva,KAAK0vB,OAAOpX,EAAGlF,MAAO,EAAGC,OAAQ,IAInE,IAAI2c,EAAa3tB,EAAG+U,yBAEJ,IAAXhE,IACD4c,EAAW5c,MAAQ2c,EAAW3c,OAGlC,IAAI6c,EAAO,CAGP1T,MAAOwT,EAAWzV,IAAM0V,EAAW3c,OAGnCmJ,IAAKuT,EAAWzV,IAAMyV,EAAW1c,QAIjC6c,EAAO,CAGP3T,MAAOwT,EAAWxV,KAGlB4V,OAAQJ,EAAWxV,KAA2B,GAAnBwV,EAAW3c,MACd,GAAnB4c,EAAW5c,MAGhBoJ,IAAKuT,EAAWxV,KAAOwV,EAAW3c,MAC9B4c,EAAW5c,OAIfkI,EAAS,CAAEhD,EAAG,EAAGC,EAAG,GAEN,cAAbsS,IACDvP,EAAS,CAAEhD,EAAG4X,EAAK3T,MAAOhE,EAAG0X,EAAK1T,QAGpB,eAAbsO,IACDvP,EAAS,CAAEhD,EAAG4X,EAAKC,OAAQ5X,EAAG0X,EAAK1T,QAGrB,YAAbsO,IACDvP,EAAS,CAAEhD,EAAG4X,EAAK1T,IAAKjE,EAAG0X,EAAK1T,QAGlB,iBAAbsO,IACDvP,EAAS,CAAEhD,EAAG4X,EAAK3T,MAAOhE,EAAG0X,EAAKzT,MAGpB,kBAAbqO,IACDvP,EAAS,CAAEhD,EAAG4X,EAAKC,OAAQ5X,EAAG0X,EAAKzT,MAGrB,eAAbqO,IACDvP,EAAS,CAAEhD,EAAG4X,EAAK1T,IAAKjE,EAAG0X,EAAKzT,MAGpC,IAAI4T,EAAUvF,EAETA,EAAS5kB,MAAM,cAChBmqB,EAAUA,EAAQvoB,QAAQ,WAAY,YAGrCgjB,EAAS5kB,MAAM,iBAChBmqB,EAAUA,EAAQvoB,QAAQ,cAAe,SAG7C,IAAIwoB,EAAS/U,EAAO/C,EAAIyX,EAAW3c,OAC/B5X,OAAO6d,aAAegC,EAAO/C,EAAI,EAErC,OAAK6T,GAAeiE,IAAYzwB,EACrBI,KAAKswB,oBAAoBF,EAAS9U,IAGxC1b,GAAYywB,IACb/U,EAAS1b,GAGR0b,EAAO/C,EAAI,IACZ+C,EAAO/C,EAAI,GAGV+C,EAAO/C,EAAIyX,EAAW3c,OAAS5X,OAAO6d,cACvCgC,EAAO/C,EAAI9c,OAAO6d,YAAc0W,EAAW3c,QAG1CiI,EAAOhD,EAAI,IACZgD,EAAOhD,EAAI,GAGVgD,EAAOhD,EAAI0X,EAAW5c,MAAQ3X,OAAOse,aACtCuB,EAAOhD,EAAI7c,OAAOse,WAAaiW,EAAW5c,OACrC3X,OAAOse,WAAa7X,SAASC,KAAK0V,cAGtCwY,IACDxF,EAAW,QAGR9qB,EAAAA,IAAIiB,OAAOsa,EAAQ,CAAEuP,SAAAA,IAChC,GAAC,CAAAlsB,IAAA,oBAAAc,MAED,SAAkBorB,GAClB,IAD4BjrB,EAAQC,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAEnC0wB,EAAkDvwB,KAAK1D,QAAjD+F,EAAEkuB,EAAFluB,GAAIW,EAAMutB,EAANvtB,OAAQkpB,EAAOqE,EAAPrE,QAAS9Y,EAAKmd,EAALnd,MAAOgZ,EAAWmE,EAAXnE,YAE9B2D,EAAa/sB,EAAOoU,wBAEP,YAAZ8U,IACD6D,EAAa,CACTzV,IAAKta,KAAK0vB,OAAOnX,EAAGgC,KAAMva,KAAK0vB,OAAOpX,EAAGlF,MAAO,EAAGC,OAAQ,IAInE,IAAI2c,EAAa3tB,EAAG+U,yBAEJ,IAAXhE,IACD4c,EAAW5c,MAAQ2c,EAAW3c,OAGlC,IAAI6c,EAAO,CAGP1T,MAAOwT,EAAWzV,IAGlB6V,OAAQJ,EAAWzV,IAA2B,GAApByV,EAAW1c,OACZ,GAApB2c,EAAW3c,OAGhBmJ,IAAKuT,EAAWzV,IAAMyV,EAAW1c,OAC7B2c,EAAW3c,QAIf6c,EAAO,CAGP3T,MAAOwT,EAAWxV,KAAOyV,EAAW5c,MAGpCoJ,IAAKuT,EAAWxV,KAAOwV,EAAW3c,OAIlCkI,EAAS,CAAEhD,EAAG,EAAGC,EAAG,GAEN,eAAbsS,IACDvP,EAAS,CAAEhD,EAAG4X,EAAK3T,MAAOhE,EAAG0X,EAAK1T,QAGpB,gBAAbsO,IACDvP,EAAS,CAAEhD,EAAG4X,EAAK3T,MAAOhE,EAAG0X,EAAKE,SAGpB,aAAbtF,IACDvP,EAAS,CAAEhD,EAAG4X,EAAK3T,MAAOhE,EAAG0X,EAAKzT,MAGpB,gBAAbqO,IACDvP,EAAS,CAAEhD,EAAG4X,EAAK1T,IAAKjE,EAAG0X,EAAK1T,QAGlB,iBAAbsO,IACDvP,EAAS,CAAEhD,EAAG4X,EAAK1T,IAAKjE,EAAG0X,EAAKE,SAGlB,cAAbtF,IACDvP,EAAS,CAAEhD,EAAG4X,EAAK1T,IAAKjE,EAAG0X,EAAKzT,MAGpC,IAAI4T,EAAUvF,EAETA,EAAS5kB,MAAM,eAChBmqB,EAAUA,EAAQvoB,QAAQ,YAAa,WAGtCgjB,EAAS5kB,MAAM,gBAChBmqB,EAAUA,EAAQvoB,QAAQ,aAAc,UAG5C,IAAIwoB,EAAS/U,EAAOhD,EAAI0X,EAAW5c,MAC/B3X,OAAOse,YAAcuB,EAAOhD,EAAI,EAEpC,OAAK8T,GAAeiE,IAAYzwB,EACrBI,KAAKwwB,kBAAkBJ,EAAS9U,IAGtC1b,GAAYywB,IACb/U,EAAS1b,GAGR0b,EAAO/C,EAAI,IACZ+C,EAAO/C,EAAI,GAGV+C,EAAO/C,EAAIyX,EAAW3c,OAAU5X,OAAO6d,cACxCgC,EAAO/C,EAAI9c,OAAO6d,YAAc0W,EAAW3c,QAG1CiI,EAAOhD,EAAI,IACZgD,EAAOhD,EAAI,GAGVgD,EAAOhD,EAAI0X,EAAW5c,MAAQ3X,OAAOse,aACtCuB,EAAOhD,EAAI7c,OAAOse,WAAaiW,EAAW5c,OACrC3X,OAAOse,WAAa7X,SAASC,KAAK0V,cAGtCwY,IACDxF,EAAW,QAGR9qB,EAAAA,IAAIiB,OAAOsa,EAAQ,CAAEuP,SAAAA,IAChC,GAAC,CAAAlsB,IAAA,kBAAAc,MAED,WAEI,IAAAgxB,EAA8BzwB,KAAK1D,QAA7B+F,EAAEouB,EAAFpuB,GAAI+Q,EAAKqd,EAALrd,MAAOyX,EAAQ4F,EAAR5F,SAOjB,OAJKzX,EAAQ,GACTpR,EAAAA,IAAIC,KAAKI,GAAID,IAAI,CAAEgR,MAAO,GAAF3Q,OAAK2Q,EAAK,QAGjCyX,EAAS5kB,MAAM,mBACTjG,KAAKswB,oBAAoBzF,GAG/BA,EAAS5kB,MAAM,mBACTjG,KAAKwwB,kBAAkB3F,QAGlCtgB,QAAQC,MAAM,qBAAD/H,OAAsBooB,EAAQ,oBAC/C,IAAC,CApjBsB,GAsjB1BppB,GAtjBYwsB,GAAc,QAER,WAsjBZxyB,OAAOwyB,GAAe5pB,SACzB5I,OAAOwyB,GAAe5pB,OAAS4pB,IAGnC,YC/jBA,UAEI5oB,KAAM,SAEN0P,OAAQ,CAEJC,WAAY,CACRnY,aAAS0B,IAKjBxC,MAAO,CAEHC,WAAY,oBAGJ,OAAO,CACX,EACAE,KAAM,CAACqJ,UAGX0mB,OAAQ,oBAGA,OAAO,CACX,EACA/vB,KAAM,CAACqJ,UAGX8I,OAAQ,oBAGA,OAAO,CACX,EACAnS,KAAM,CAACqJ,UAGXqT,SAAU,oBAGF,OAAO,IACX,GAGJjc,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGX6N,MAAO,oBAGC,MAAO,KACX,EACAlX,KAAM,CAACoJ,SAGX+N,OAAQ,oBAGA,MAAO,MACX,EACAnX,KAAM,CAACoJ,SAGXorB,MAAO,oBAGC,MAAO,EACX,EACAx0B,KAAM,CAACoJ,SAGX6mB,MAAO,oBAGC,MAAO,MACX,EACAjwB,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXulB,SAAU,oBAGF,MAAO,eACX,EACA3uB,KAAM,CAACoJ,SAGXqrB,SAAU,oBAGF,OAAO,CACX,EACAz0B,KAAM,CAACqJ,UAGXqrB,YAAa,oBAGL,OAAO,CACX,EACA10B,KAAM,CAACqJ,WAKfiC,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,EAEAoG,UAAS,WAEL7F,KAAK6wB,qBACT,GAIJ5b,QAAO,WAEH,MAAO,CACH6b,OAAQ9wB,KAEhB,EAEA4F,KAAI,WAEA,MAAO,CACH5C,OAAQ,KAAM6C,WAAW,EAEjC,EAEAwG,QAAO,WACP,IAAA1M,EAAA,KACIK,KAAKgD,OAAShB,EAAAA,IAAIC,KAAKjC,KAAK4Y,UAAY5Y,KAAKyW,KACxC+V,WAAWxtB,IAAI,GAEpBgD,EAAAA,IAAIC,KAAKC,SAASC,MAAMQ,GAAG,YACvB3C,KAAK+wB,WAAY/wB,KAAK4W,EAAEjV,KAE5BK,EAAAA,IAAIC,KAAKC,SAASC,MAAMQ,GAAG,UACvB3C,KAAKgxB,aAAchxB,KAAK4W,EAAEjV,KAMzB3B,KAAKhE,YACN0E,EAAAA,IAAIwC,MALQ,WACZvD,EAAKkG,WAAY,CACrB,EAGyB,KAGzB7D,EAAAA,IAAIC,KAAKC,SAASC,MAAMyC,OAAO5E,KAAKyW,IACxC,EAEAO,cAAa,WAEThX,KAAKyW,IAAI1U,QACb,EAEAqpB,UAAS,WAELppB,EAAAA,IAAIC,KAAKC,SAASC,MAAMiB,IAAI,YACxB,KAAMpD,KAAK4W,EAAEjV,KAEjBK,EAAAA,IAAIC,KAAKC,SAASC,MAAMiB,IAAI,UACxB,KAAMpD,KAAK4W,EAAEjV,IACrB,EAEAmE,QAAS,CAELmrB,UAAS,WACT,IADUC,EAAKrxB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,IAAAA,UAAA,GAAU6H,EAAM7H,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAEzBG,KAAK6F,aAIL7F,KAAK2wB,UAAYO,KAClBlxB,KAAK6F,WAAY,GAGrB7F,KAAK6T,MAAM,qBAAqB,EAAMnM,GAC1C,EAEAypB,WAAU,WACV,IADWD,EAAKrxB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,IAAAA,UAAA,GAAU6H,EAAM7H,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAE/B,GAAOG,KAAK6F,UAAZ,CAIA,IAAO7F,KAAKqO,OACR,OAAOrO,KAAK6T,MAAM,QAASnM,IAG1B1H,KAAK2wB,UAAYO,KAClBlxB,KAAK6F,WAAY,GAGrB7F,KAAK6T,MAAM,qBAAqB,EAAOnM,EAVvC,CAWJ,EAEA0pB,mBAAkB,WAEdnT,aAAaje,KAAKunB,SAElBvlB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKmB,YAAY,UACnC,EAEAiZ,oBAAmB,WAEf,IAAO7wB,KAAK6F,UACR,OAAO7F,KAAKoxB,qBAGhB31B,OAAOo0B,QAAU,EAEjB7tB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKgJ,KAAK,aACpBhkB,OAAOo0B,QAEX7tB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKrU,IAAI,CACnB,UAAW3G,OAAOo0B,SAGtB7vB,KAAKqxB,qBACT,EAEAA,oBAAmB,WACnB,IAAAhuB,EAAA,KACI,IAAOrD,KAAK6F,UACR,OAAO7F,KAAKoxB,qBAGhBpxB,KAAKunB,QAAUrjB,WAAW,WACtBlC,EAAAA,IAAIC,KAAKoB,EAAKoT,KAAKtT,SAAS,UAChC,EAAG,IACP,EAEA4tB,WAAU,SAAClW,EAAOxY,GAEd,IAAKrC,KAAKrD,UAA4B,IAAhBke,EAAMI,MAA5B,CAIA,IAAI9R,IAAYnH,EAAAA,IAAIC,KAAKI,GAAI4e,QAAQjhB,KAAKgD,QAE1C,IAAOmG,GAAYnJ,KAAK6F,aAInB7F,KAAK6F,WAAa7F,KAAK2wB,WACxBxnB,GAAWnH,EAAAA,IAAIC,KAAKI,GAAI4e,QAAQjhB,KAAKyG,MAAM6qB,WAG1CnoB,IAAWnJ,KAAK6F,WAIrB,OAAOsD,OAIFnJ,KAAKisB,QACNjsB,KAAKixB,WAAU,EAAM,aAJdjxB,KAAKmxB,YAAW,EAAO,SAjBlC,CAuBJ,EAEAH,aAAY,SAACnW,EAAOxY,GAEhB,GAAOrC,KAAK6F,WAA6B,KAAhBgV,EAAMI,MAA/B,CAIA,IAIIsW,EAAUvvB,EAAAA,IAAIC,KAAK,2BAClBnB,KALc,SAACgB,GAChB,OAAOE,EAAAA,IAAIC,KAAKH,GAAO2d,KAAK,aAChC,GAKI/O,EAAQ1O,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKgJ,KAAK,cAE/B5e,EAAAA,IAAI4jB,KAAK8M,EAAQnf,UAAY1B,GAIlC1Q,KAAKmxB,YAAW,EAAO,SAfvB,CAgBJ,GAIJP,YAAW,WACX,IAAAtmB,EAAA,KACI,IAAOtK,KAAK4wB,cAAiB5wB,KAAK2wB,SAC9B,OAAO,KAGX,IAAI50B,EAAQ,CACR4tB,QAAS,WAAF,OAAQrf,EAAK6mB,YAAW,EAAO,SAAS,GAGnD,OAAA1rB,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,yBACoCvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,cACpBR,KAAK6kB,MAAM0H,OAAK,OAGzC,EAEAC,aAAY,WAER,OAAOzxB,KAAKoB,OAAO0rB,QAAY9sB,KAAK0wB,OAIpCjrB,EAAAA,EAAAA,aAAA,iCAEU,CAACzF,KAAKoB,OAAO0rB,QAAU9sB,KAAKoB,OAAO0rB,OAAO,CAAEqE,WAAYnxB,KAAKmxB,cAAiBnxB,KAAK0wB,MAAO1wB,KAAKN,KAAK,cAAVM,MALzF,IAQf,EAEA0xB,aAAY,WAER,OAAO1xB,KAAKoB,OAAO2rB,QAInBtnB,EAAAA,EAAAA,aAAA,iCAEUzF,KAAKoB,OAAO2rB,OAAO,CAAEoE,WAAYnxB,KAAKmxB,eALrC,IAQf,EAEA7e,WAAU,WACV,IAAAxH,EAAA,KACQ6mB,GAAQlsB,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,yCAC8B,EAAI,sDACpCpG,EAAK1J,OAAM,SAAY0J,EAAK1J,OAAM,QAAS,CAAE+vB,WAAYrmB,EAAKqmB,aAAa,IAQrF,OAJKnxB,KAAKoB,OAAOe,OACbwvB,EAAW3xB,KAAKoB,OAAOe,KAAK,CAAEgvB,WAAYnxB,KAAKmxB,eAGnD1rB,EAAAA,EAAAA,aAAA,+BAEUksB,GAGd,EAEAC,YAAW,WAEP,IAAO5xB,KAAK6F,UACR,OAAO,KAGX,IAAIuC,EAAQ,CACRgL,MAAOpT,KAAKoT,MAAOC,OAAQrT,KAAKqT,QAGhCwe,EAAY,CACZ7xB,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,aAAVM,GACAA,KAAKN,KAAK,eAAVM,IAGJ,OAAAyF,EAAAA,EAAAA,aAAA,oCACuC2C,GAAK,CAClCpI,KAAKoB,OAAOyrB,IAAM7sB,KAAKoB,OAAOyrB,MAAQgF,GAGpD,EAEAC,eAAc,WAEV,OAAArsB,EAAAA,EAAAA,aAAA,sDAGJ,EAEA1B,OAAM,WAEKtI,OAAOo0B,SACVp0B,OAAOo0B,OAAS,KAGpB,IAAIpyB,EAAY,CACZ,UACA,YAAcuC,KAAKvD,KACnB,YAAcuD,KAAK6qB,UAGlB7qB,KAAKmsB,OACN1uB,EAAU8F,KAAK,YAAcvD,KAAKmsB,OAGjCnsB,KAAK6F,WACN7F,KAAKqxB,sBAGJrxB,KAAK4wB,aACNnzB,EAAU8F,KAAK,cAGZvD,KAAK6F,WACRpI,EAAU8F,KAAK,YAGnB,IAAIsuB,EAAY,KAMhB,OAJK7xB,KAAK6F,YACNgsB,EAAY7xB,KAAKN,KAAK,cAAVM,KAGhByF,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACf,CAACo0B,EAAW7xB,KAAKN,KAAK,iBAAVM,KAG1B,GCpbJ,UAEIqF,KAAM,UAENtJ,MAAO,CAEHG,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGX5H,KAAM,oBAGE,OAAO,CACX,EACAxB,KAAM,CAACqJ,UAGXwsB,MAAO,oBAGC,OAAO,CACX,EACA71B,KAAM,CAACqJ,UAGX+R,MAAO,oBAGC,OAAO,CACX,EACApb,KAAM,CAACqJ,UAGX5H,OAAQ,oBAGA,OAAO,CACX,EACAzB,KAAM,CAACqJ,UAGX5I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGX3H,KAAM,oBAGE,OAAO,IACX,GAGJC,aAAc,oBAGN,MAAO,QACX,EACA3B,KAAM,CAACoJ,SAGXxH,WAAY,oBAGJ,MAAO,QACX,EACA5B,KAAM,CAACoJ,UAKf3B,WAAU,WAEN,IAAO3D,KAAKpC,KACR,OAAO,KAGX,IAAIH,EAAY,CACZ,SACA,WAAauC,KAAKnC,cAKtB,OAFAJ,EAAU8F,KAAKvD,KAAKpC,OAEpB6H,EAAAA,EAAAA,aAAA,WAAkBhI,GAAS,KAC/B,EAEAsG,OAAM,WAEF,IAAItG,EAAY,CACZ,WACA,aAAeuC,KAAKvD,KACpB,aAAeuD,KAAK9D,MAGnB8D,KAAKpC,MACNH,EAAU8F,KAAK,kBAGdvD,KAAK+xB,OACNt0B,EAAU8F,KAAK,mBAGdvD,KAAKtC,MACND,EAAU8F,KAAK,kBAGdvD,KAAKsX,OACN7Z,EAAU8F,KAAK,mBAGdvD,KAAKrC,QACNF,EAAU8F,KAAK,oBAGdvD,KAAKrD,UACNc,EAAU8F,KAAK,cAGnB,IAAIxH,EAAQ,CACRkM,MAAOxK,GAGNuC,KAAKrD,WACNZ,EAAMY,UAAW,GAGrB,IAAIk1B,EAAY,GAchB,MAZ2B,WAAtB7xB,KAAKnC,cACNg0B,EAAUtuB,KAAKvD,KAAKN,KAAK,aAAVM,IAGdA,KAAKoB,OAAM,UAAcpB,KAAKrC,QAC/Bk0B,EAAUtuB,MAAIkC,EAAAA,EAAAA,aAAC,OAAD,MAASzF,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,aAGlC,UAAtBpB,KAAKnC,cACNg0B,EAAUtuB,KAAKvD,KAAKN,KAAK,aAAVM,KAGZ6I,EAAAA,EAAAA,GAAE7I,KAAKlC,WAAY/B,EAAO81B,EACrC,GCjKJ,IAEIxsB,KAAM,eAENtJ,MAAO,CAEHU,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,UAKfvB,OAAM,WAEF,IAAItG,EAAY,CACZ,iBACA,mBAAqBuC,KAAKvD,MAE9B,OAAAgJ,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,WAGhD,GCxBJ,UAEIiE,KAAM,SAEN0P,OAAQ,CAEJid,MAAO,CACHn1B,aAAS0B,GAGb0zB,UAAW,CACPp1B,aAAS0B,IAKjB2zB,cAAc,EAEdn2B,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJE,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX1H,KAAM,oBAGE,MAAO,EACX,EACA1B,KAAM,CAACoJ,SAGXzH,aAAc,oBAGN,MAAO,OACX,EACA3B,KAAM,CAACoJ,SAGXrH,aAAc,oBAGN,OAAO,IACX,EACA/B,KAAM,CAACqJ,UAGX9I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXxH,WAAY,oBAGJ,MAAO,MACX,EACA5B,KAAM,CAACoJ,SAGX3I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXjI,YAAa,oBAGL,MAAO,EACX,EACApB,KAAM,CAACoJ,UAKfkQ,SAAU,CAEN2c,aAAY,WACR,OAAOnyB,KAAKiyB,UAAYjyB,KAAKiyB,UAAUt1B,SAASqD,KAAKrD,UACjDqD,KAAKrD,QACb,GAIJiJ,KAAI,WAEA,MAAO,CACHsnB,OAAO,EAAOrnB,UAAW7F,KAAKhE,YAAc,GAEpD,EAEAwL,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,GAIJqG,QAAS,CAELssB,YAAW,SAACvX,IAEHA,EAAMa,SAAWb,EAAMQ,UACxBrb,KAAK6T,MAAM,aAAcgH,EAEjC,EAEAwX,QAAO,SAACxX,GAEJ7a,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAYgV,EAAM7X,OAAOvD,MACtC,EAEAwpB,UAAS,SAACpO,GAEN7a,KAAK6T,MAAM,UAAWgH,GAED,KAAhBA,EAAMI,QAIXJ,EAAMK,iBAEClb,KAAKgyB,OAIZhyB,KAAKgyB,MAAMM,SAASzX,GACxB,EAEA0X,QAAO,SAAC1X,GAEJ7a,KAAKktB,OAAQ,EACbltB,KAAK6T,MAAM,QAASgH,EACxB,EAEA2X,OAAM,SAAC3X,GAEH7a,KAAKktB,OAAQ,EACbltB,KAAK6T,MAAM,OAAQgH,EACvB,GAIJlX,WAAU,WAEN,IAAM3D,KAAKpC,KACP,OAAO,KAGX,IAAIjB,EAAWqD,KAAKmyB,aAEO,OAAtBnyB,KAAK/B,eACNtB,EAAWqD,KAAK/B,cAGpB,IAAIlC,EAAQ,CACRG,KAAM,QACN0B,KAAMoC,KAAKpC,KACXnB,KAAMuD,KAAKvD,KACXkB,QAAQ,EACRhB,SAAUA,GAOd,OAJMA,IACFZ,EAAM4tB,QAAU3pB,KAAKoyB,cAGzB3sB,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAAqBnV,EAAK,KAC9B,EAEA8Y,YAAW,WAEP,IAAI9Y,EAAQgE,EAAAA,IAAIoN,OAAOnN,KAAKiB,OAAQ,CAChC,QAAS,UAcb,OAXAlB,EAAAA,IAAIiB,OAAOjF,EAAO,CACd0D,MAAOO,KAAK6F,UACZ3J,KAAM8D,KAAKlC,WACXnB,SAAUqD,KAAKmyB,aACf70B,YAAa0C,KAAK1C,YAClB+0B,QAASryB,KAAKqyB,QACdE,QAASvyB,KAAKuyB,QACdC,OAAQxyB,KAAKwyB,OACbvJ,UAAWjpB,KAAKipB,aAGbpgB,EAAAA,EAAAA,GAAE,QAAS9M,EACtB,EAEAgI,OAAM,WAEF,IAAItG,EAAY,CACZ,UACA,YAAcuC,KAAKvD,KACnB,YAAcuD,KAAK9D,MAGlB8D,KAAKpC,OACNH,EAAU8F,KAAK,iBACf9F,EAAU8F,KAAK,iBAAmBvD,KAAKnC,eAGtCmC,KAAKmyB,cACN10B,EAAU8F,KAAK,cAGdvD,KAAKktB,OACNzvB,EAAU8F,KAAK,WAGnB,IAAIxH,EAAQgE,EAAAA,IAAI6O,KAAK5O,KAAKiB,OAAQ,CAAC,SAAU,CACzCgH,MAAOjI,KAAKQ,KAAK/C,KAGjBo0B,EAAY,GAYhB,MAV2B,WAAtB7xB,KAAKnC,cACNg0B,EAAUtuB,KAAKvD,KAAKN,KAAK,aAAVM,IAGnB6xB,EAAUtuB,KAAKvD,KAAKN,KAAK,cAAVM,IAEY,UAAtBA,KAAKnC,cACNg0B,EAAUtuB,KAAKvD,KAAKN,KAAK,aAAVM,KAGZ6I,EAAAA,EAAAA,GAAE,MAAO9M,EAAO81B,EAC3B,GC3PJ,UAEIxsB,KAAM,eAEN6sB,cAAc,EAEdnd,OAAQ,CAEJkd,UAAW,CACPp1B,aAAS0B,IAMjBxC,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJc,WAAY,oBAGJ,OAAO,IACX,GAGJE,IAAK,oBAGG,OAAO,CACX,EACAd,KAAM,CAACgB,SAGXD,IAAK,oBAGG,OAAOC,OAAOC,SAClB,EACAjB,KAAM,CAACgB,SAGXI,YAAa,oBAGL,MAAO,EACX,EACApB,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX3I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXxI,UAAW,oBAGH,OAAO,CACX,EACAb,KAAM,CAACqJ,UAGXnI,SAAU,oBAGF,OAAO,CACX,EACAlB,KAAM,CAACgB,SAGXG,UAAW,oBAGH,OAAO,CACX,EACAnB,KAAM,CAACgB,SAGXK,OAAQ,oBAGA,MAAO,QACX,EACArB,KAAM,CAACoJ,SAGX9H,SAAU,oBAGF,OAAO7B,EAAAA,OAAOC,MAAM,IACxB,EACAM,KAAM,CAACoJ,UAKfkQ,SAAU,CAEN2c,aAAY,WAER,OAAOnyB,KAAKiyB,UAAYjyB,KAAKiyB,UAAUt1B,SAASqD,KAAKrD,UACjDqD,KAAKrD,QACb,GAIJ6K,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,GAIJmG,KAAI,WAEA,MAAO,CACHsnB,OAAO,EAAOrnB,UAAW7F,KAAKhE,WAEtC,EAEA8J,QAAS,CAEL2sB,MAAK,WAEDzyB,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UAAY7F,KAAKlD,WAC1D,EAEA41B,SAAQ,WACR,IADSjzB,EAAKI,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAMb,OAJKa,EAAAA,IAAIiK,OAAOlL,KACZA,EAAQO,KAAKhE,YAGZ0E,EAAAA,IAAIsF,QAAQvG,GACNO,KAAKhD,IAGTmnB,EAAAA,IAAG,MAAO1kB,EACrB,EAEAkzB,gBAAe,WAEX,GAAKjyB,EAAAA,IAAIsF,QAAQhG,KAAK6F,WAClB,OAAO,KAGX,IAAIpG,EAAQ0kB,EAAAA,IAAI5mB,OAAOyC,KAAK6F,UACxB7F,KAAKxC,SAAU,IAAKwC,KAAK3C,WAE7B,OAAO1B,EAAAA,OAAOC,MAAMoE,KAAKzC,OAAQ,CAAE2hB,MAAOzf,GAC9C,EAEAmzB,SAAQ,WAECC,MAAM7yB,KAAK6F,aACZ7F,KAAK6F,UAAY,GAGrB,IAAIpG,EAAQO,KAAK6F,UAAY7F,KAAK5C,SAE7B4C,KAAK/C,IAAMwC,IAIhBA,EAAQ0kB,EAAAA,IAAG,MAAO1kB,GAAOqzB,QAAQ9yB,KAAK3C,WAEtC2C,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAYse,EAAAA,IAAG,MAAO1kB,IACnC,EAEAszB,WAAU,WACV,IAAApzB,EAAA,KACIse,aAAaje,KAAKgzB,aAClBxb,cAAcxX,KAAKizB,cAEnBjzB,KAAK4yB,WAEL5yB,KAAKkzB,YAAchvB,WAAW,WAC1BvE,EAAKwzB,aAAejW,YAAYvd,EAAKizB,SAAU,IACnD,EAAG,KAEH5wB,EAAAA,IAAIC,KAAKxG,QAAQkH,GAAG,UAAW3C,KAAKozB,SAAU,CAC1CzxB,IAAK3B,KAAK4W,EAAEjV,IAAM,QAE1B,EAEAyxB,SAAQ,SAACvY,GAELA,EAAMK,iBACNL,EAAM/X,kBAENmb,aAAaje,KAAKkzB,aAClB1b,cAAcxX,KAAKmzB,cAEnBnxB,EAAAA,IAAIC,KAAKxG,QAAQ2H,IAAI,UAAW,KAAM,CAClCzB,IAAK3B,KAAK4W,EAAEjV,IAAM,QAE1B,EAEA0xB,SAAQ,WAECR,MAAM7yB,KAAK6F,aACZ7F,KAAK6F,UAAY,GAGrB,IAAIpG,EAAQO,KAAK6F,UAAY7F,KAAK5C,SAE7B4C,KAAKhD,IAAMyC,IAIhBA,EAAQ0kB,EAAAA,IAAG,MAAO1kB,GAAOqzB,QAAQ9yB,KAAK3C,WAEtC2C,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UAAYse,EAAAA,IAAG,MAAO1kB,IAC/D,EAEA6zB,WAAU,WACV,IAAAjwB,EAAA,KACI4a,aAAaje,KAAKkzB,aAClB1b,cAAcxX,KAAKmzB,cAEnBnzB,KAAKqzB,WAELrzB,KAAKgzB,YAAc9uB,WAAW,WAC1Bb,EAAK4vB,aAAe/V,YAAY7Z,EAAKgwB,SAAU,IACnD,EAAG,KAEHrxB,EAAAA,IAAIC,KAAKxG,QAAQkH,GAAG,UAAW3C,KAAKuzB,SAAU,CAC1C5xB,IAAK3B,KAAK4W,EAAEjV,IAAM,QAE1B,EAEA4xB,SAAQ,SAAC1Y,GAELA,EAAMK,iBACNL,EAAM/X,kBAENmb,aAAaje,KAAKgzB,aAClBxb,cAAcxX,KAAKizB,cAEnBjxB,EAAAA,IAAIC,KAAKxG,QAAQ2H,IAAI,UAAW,KAAM,CAClCzB,IAAK3B,KAAK4W,EAAEjV,IAAM,QAE1B,EAEAsnB,UAAS,SAACpO,GAEe,KAAhBA,EAAMI,OACPjb,KAAKqyB,QAAQxX,EAErB,EAEA0X,QAAO,SAAC1X,GAEJ7a,KAAKktB,OAAQ,CACjB,EAEAsF,OAAM,SAAC3X,GAEH7a,KAAKqyB,QAAQxX,GAEb7a,KAAKktB,OAAQ,CACjB,EAEAmF,QAAO,SAACxX,GAEJ,IAAIpb,EAAQob,EAAM7X,OAAOvD,MAEpBA,EAAMwG,MAAM,4BACbxG,EAAQO,KAAKzC,OAAOsK,QAAQ,SAAUpI,IAG1C,IAAIlC,EAASyC,KAAKzC,OAAOsK,QAAQ,SAAQ,wBAGrC2rB,EAAQ,IAAIC,OAAO,IAADhxB,OAAKlF,EAAM,MAE7B0I,EAAQxG,EAAMwG,MAAMutB,GAExB,IAAMvtB,EACF,OAAO4U,EAAM7X,OAAOvD,MAAQO,KAAK2yB,kBAGrClzB,EAAQwG,EAAM,GAAG4B,QAAQ,IAAK,KACzBA,QAAQ,KAAM,KAEnBpI,EAAQ0kB,EAAAA,IAAG,MAAO1kB,GAAOqzB,QAAQ9yB,KAAK3C,YAEzB2C,KAAKhD,MACdyC,EAAQO,KAAKhD,KAGZyC,EAAQO,KAAK/C,MACdwC,EAAQO,KAAK/C,KAGjB+C,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAYse,EAAAA,IAAG,MAAO1kB,IAE/Bob,EAAM7X,OAAOvD,MAAQO,KAAK2yB,iBAC9B,GAIJe,WAAU,WAEN,IAAI/2B,EAAWqD,KAAKmyB,cAChBnyB,KAAK6F,WAAa7F,KAAKhD,IAEvBjB,EAAQ,CACRG,KAAM,QACNO,KAAMuD,KAAKvD,KACXmB,KAAM,cACND,QAAQ,EACRhB,SAAUA,EACVg3B,YAAa3zB,KAAKszB,YAGtB,OAAA7tB,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAAqBnV,EAAK,KAC9B,EAEA63B,WAAU,WAEN,IAAIj3B,EAAWqD,KAAKmyB,cAChBnyB,KAAK6F,WAAa7F,KAAK/C,IAEvBlB,EAAQ,CACRG,KAAM,QACNO,KAAMuD,KAAKvD,KACXmB,KAAM,aACND,QAAQ,EACRhB,SAAUA,EACVg3B,YAAa3zB,KAAK+yB,YAGtB,OAAAttB,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAAqBnV,EAAK,KAC9B,EAEA8Y,YAAW,WAEP,IAAI9Y,EAAQgE,EAAAA,IAAIoN,OAAOnN,KAAKiB,OAAQ,CAChC,QAAS,UAYb,OATAlB,EAAAA,IAAIiB,OAAOjF,EAAO,CACd0D,MAAOO,KAAK2yB,kBACZh2B,SAAUqD,KAAKmyB,aACf70B,YAAa0C,KAAK1C,YAClB2rB,UAAWjpB,KAAKipB,UAChBsJ,QAASvyB,KAAKuyB,QACdC,OAAQxyB,KAAKwyB,UAGV3pB,EAAAA,EAAAA,GAAE,QAAS9M,EACtB,EAEA83B,YAAW,WAEP,IAAM7zB,KAAKjD,WAAa2D,EAAAA,IAAIsF,QAAQhG,KAAK6F,WACrC,OAAO,KAGX,IAAI9J,EAAQ,CAAC,EAMb,OAJMiE,KAAKmyB,eACPp2B,EAAM43B,YAAc3zB,KAAKyyB,QAG7BhtB,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,6CACwDvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,WAC3CR,KAAK6kB,MAAM0H,OAAK,OAGtC,EAEAztB,OAAM,WAEF,IAAItG,EAAY,CACZ,iBACA,mBAAqBuC,KAAK9D,KAC1B,mBAAqB8D,KAAKvD,MAmB9B,OAhBKiE,EAAAA,IAAIsF,QAAQhG,KAAKhE,aAClByB,EAAU8F,KAAK,WAGdvD,KAAKjD,WACNU,EAAU8F,KAAK,eAGdvD,KAAKktB,OACNzvB,EAAU8F,KAAK,WAGdvD,KAAKmyB,cACN10B,EAAU8F,KAAK,eAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CAChBuC,KAAKN,KAAK,aAAVM,GACAA,KAAKN,KAAK,cAAVM,GACAA,KAAKN,KAAK,cAAVM,GACAA,KAAKN,KAAK,aAAVM,IAGb,GCpbJ,UAEIqF,KAAM,YAEN6sB,cAAc,EAEdn2B,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJE,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGX3I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXjI,YAAa,oBAGL,MAAO,EACX,EACApB,KAAM,CAACoJ,SAGXgM,SAAU,oBAGF,OAAO,CACX,EACApV,KAAM,CAACqJ,UAGXuuB,QAAS,oBAGD,OAAO,EACX,EACA53B,KAAM,CAACgB,SAGXmU,QAAS,oBAGD,OAAO,CACX,EACAnV,KAAM,CAACgB,SAGX62B,UAAW,oBAGH,OAAO,CACX,EACA73B,KAAM,CAACgB,UAKfsK,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,GAIJqG,QAAS,CAELkuB,WAAU,SAACnZ,GAEP7a,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAYgV,EAAM7X,OAAOvD,MACtC,GAIJmG,KAAI,WAEA,MAAO,CACHC,UAAW7F,KAAKhE,YAAc,GAEtC,EAEA6Y,YAAW,WAEP,IAAI9Y,EAAQgE,EAAAA,IAAIoN,OAAOnN,KAAKiB,OAAQ,CAAC,QAAS,UAE9ClB,EAAAA,IAAIiB,OAAOjF,EAAO,CACd0D,MAAgBO,KAAK6F,UACrBouB,KAAgBj0B,KAAKqR,QACrB1U,SAAgBqD,KAAKrD,SACrBW,YAAgB0C,KAAK1C,YACrB+0B,QAAgBryB,KAAKg0B,aAGD,IAAnBh0B,KAAK+zB,YACNh4B,EAAMg4B,UAAY/zB,KAAK+zB,WAG3B,IAAIG,GAAel0B,KAAK6F,UAAUI,MAAM,QAAU,IAAInG,OAAS,EAM/D,OAJKE,KAAKsR,UAAYvV,EAAMk4B,KAAOC,IAC/Bn4B,EAAMk4B,KAAOC,GAAel0B,KAAK8zB,QAAUI,EAAcl0B,KAAK8zB,UAG3DjrB,EAAAA,EAAAA,GAAE,WAAY9M,EACzB,EAEAgI,OAAM,WAEF,IAAItG,EAAY,CACZ,aACA,eAAiBuC,KAAKvD,KACtB,eAAiBuD,KAAK9D,MAGrB8D,KAAKrD,UACNc,EAAU8F,KAAK,cAGnB,IAAIxH,EAAQgE,EAAAA,IAAI6O,KAAK5O,KAAKiB,OAAQ,CAAC,SAAU,CACzCgH,MAAOjI,KAAKQ,KAAK/C,KAGrB,OAAOoL,EAAAA,EAAAA,GAAE,MAAO9M,EAAO,CAACiE,KAAKN,KAAK,cAAVM,IAC5B,GC1JoE,SAAAuL,GAAAC,GAAA,yBAAAA,GAAA,oBAAA3M,OAAAM,UAAAsM,SAAApM,KAAAmM,MAAAE,EAAAA,EAAAA,SAAAF,EAAA,CAExE,UAEInG,KAAM,UAEN0P,OAAQ,CAEJkd,UAAW,CACPp1B,aAAS0B,IAKjBxC,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJc,WAAY,oBAGJ,OAAO,IACX,GAGJZ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX6mB,MAAO,oBAGC,MAAO,MACX,EACAjwB,KAAM,CAACoJ,SAGX6uB,KAAM,oBAGE,OAAO,CACX,EACAj4B,KAAM,CAACqJ,UAGX9I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXulB,SAAU,oBAGF,MAAO,cACX,EACA3uB,KAAM,CAACoJ,SAGX8uB,SAAU,oBAGF,OAAO,CACX,EACAl4B,KAAM,CAACqJ,UAGX2G,SAAU,oBAGF,OAAO,CACX,EACAhQ,KAAM,CAACqJ,UAGX5I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXxI,UAAW,oBAGH,OAAO,CACX,EACAb,KAAM,CAACqJ,UAGXjI,YAAa,oBAGL,OAAO3B,EAAAA,OAAOC,MAAM,gBACxB,EACAM,KAAM,CAACoJ,SAGX+uB,UAAW,oBAGH,MAAO,UACX,EACAn4B,KAAM,CAACoJ,SAGXgvB,cAAe,oBAGP,MAAO,gBACX,EACAp4B,KAAM,CAACoJ,SAGXivB,aAAc,oBAGN,MAAO,4BACX,EACAr4B,KAAM,CAACoJ,SAGXuL,YAAa,oBAGL,OAAO,CACX,EACA3U,KAAM,CAACqJ,UAGXjJ,QAAS,oBAGD,MAAO,EACX,EACAJ,KAAM,CAACmE,MAAOxB,SAGlB21B,aAAc,oBAGN,MAAO,QACX,EACAt4B,KAAM,CAACoJ,SAGXwL,aAAc,oBAGN,MAAO,QACX,EACA5U,KAAM,CAACoJ,SAGXmvB,gBAAiB,oBAGT,MAAO,MACX,EACAv4B,KAAM,CAACoJ,UAKfkQ,SAAU,CAEN2c,aAAY,WAER,OAAOnyB,KAAKiyB,UAAYjyB,KAAKiyB,UAAUt1B,SAASqD,KAAKrD,UACjDqD,KAAKrD,QACb,EAEAqI,MAAK,WAED,OAAOtE,EAAAA,IAAIsF,QAAQhG,KAAK6F,UAC5B,EAEA6uB,OAAM,WACN,IAAA/0B,EAAA,KAUI,OAAyB,IATZkB,EAAAA,IAAI8iB,OAAO3jB,KAAK20B,SAAU,SAAChwB,GAEpC,OAAKjE,EAAAA,IAAIE,QAAQjB,EAAKkG,WACXhF,EAAAA,IAAIqF,IAAIvG,EAAKkG,UAAWlB,EAAQlF,OAGpCkF,EAAQlF,QAAUE,EAAKkG,SAClC,GAEc/F,MAClB,GAIJ8F,KAAI,WAEA,MAAO,CACHC,UAAW7F,KAAKhE,WAChB44B,UAAW50B,KAAKlD,WAChBowB,OAAO,EACP2H,OAAQ,GACRnkB,OAAS,EACTikB,SAAU,GACVG,SAAU,GAElB,EAEA9e,YAAW,WAEFhW,KAAKm0B,MACNn0B,KAAK+0B,kBAGJ/0B,KAAKo0B,WAAa1zB,EAAAA,IAAIE,QAAQZ,KAAK6F,aACpC7F,KAAK6F,UAAY,IAGhB7F,KAAKo0B,WAAa1zB,EAAAA,IAAIE,QAAQZ,KAAKlD,cACpCkD,KAAK40B,UAAY,IAGrB50B,KAAKg1B,eACT,EAEA/f,QAAO,WAEH,MAAO,CACHggB,QAASj1B,KAEjB,EAEAwH,MAAO,CAEHxL,WAAU,SAACyD,IAEDO,KAAKo0B,UAAY1zB,EAAAA,IAAIE,QAAQnB,KAC/BA,EAAQ,MAGPO,KAAKo0B,WAAa1zB,EAAAA,IAAIE,QAAQnB,KAC/BA,EAAQ,IAGZO,KAAK6F,UAAYpG,CACrB,EAEAo1B,OAAM,WAEF70B,KAAKg1B,eACT,EAEA9H,MAAK,WACL,IAAA7pB,EAAA,KACIrD,KAAK+O,UAAU,kBAAM1L,EAAK6xB,iBAAiB,EAC/C,GAIJpvB,QAAS,CAEL2sB,MAAK,WACL,IADM5X,EAAKhb,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAELgb,IACDA,EAAMK,iBACNL,EAAM/X,mBAGV9C,KAAKm1B,aAELn1B,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAYhF,EAAAA,IAAI4L,MAAMzM,KAAK40B,WACxC,EAEAG,gBAAe,WACf,IAAAzqB,EAAA,KACItK,KAAK20B,SAAW9zB,EAAAA,IAAIC,KAAKd,KAAK1D,QAAS,SAACmD,EAAOiR,GAE3C,IAAI9K,EAAO,CACPwvB,OAAQ31B,EAAO41B,OAAQ3kB,GAGvB4kB,EAAS,CACTt3B,MAAO+B,EAAAA,IAAIf,IAAI4G,EAAM0E,EAAKwG,cAC1BrR,MAAOM,EAAAA,IAAIf,IAAI4G,EAAM0E,EAAKkqB,eAG9B,OAAOz0B,EAAAA,IAAIiB,OAAOs0B,EAAQ,CACtBC,UAAWD,EAAOt3B,MAAO6H,UAAWyvB,EAAO71B,OAEnD,EACJ,EAEA+1B,UAAS,SAACF,GAENz0B,EAAAA,IAAI+lB,IAAI5mB,KAAK20B,SAAUW,EACnB,CAAEzvB,UAAWyvB,EAAOzvB,WAC5B,EAEA4vB,aAAY,SAACH,GAETz0B,EAAAA,IAAIkB,OAAO/B,KAAK20B,SACZ,CAAE9uB,UAAWyvB,EAAOzvB,WAC5B,EAEA6vB,WAAU,WAEN11B,KAAK0Q,OAAU,EACf1Q,KAAK60B,OAAS,EAClB,EAEAM,WAAU,WACV,IADWta,EAAKhb,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAEVgb,GACDA,EAAMK,iBAGVlb,KAAKktB,OAAQ,CACjB,EAEAyI,aAAY,WAEF31B,KAAKktB,QACPltB,KAAKktB,OAAQ,EAErB,EAEA0I,aAAY,SAAC/a,GAET7a,KAAK60B,OAASha,EAAM7X,OAAOvD,KAC/B,EAEAo2B,eAAc,SAAChb,GAEX,IAAM7a,KAAKktB,MACP,OAAOltB,KAAK21B,eAGK,KAAhB9a,EAAMI,OACPjb,KAAK81B,iBAGY,KAAhBjb,EAAMI,OACPjb,KAAK+1B,aAGY,KAAhBlb,EAAMI,OACPjb,KAAKg2B,YAEb,EAEAhB,cAAa,WAIT,GAFAh1B,KAAK0Q,OAAU,EAEVhQ,EAAAA,IAAIsF,QAAQhG,KAAK60B,QAClB,OAAO70B,KAAK80B,SAAW90B,KAAK20B,SAGhC,IAAIsB,EAAc,IAAIxC,OAAOzzB,KAAK60B,OAAQ,KAE1C70B,KAAK80B,SAAWj0B,EAAAA,IAAI8iB,OAAO3jB,KAAK20B,SAAU,SAACW,GACvC,OAAO50B,EAAAA,IAAIkN,OAAO0nB,EAAOt3B,OAAS,IAAIiI,MAAMgwB,EAChD,EACJ,EAEAC,aAAY,SAACz2B,GACb,IADoBob,EAAKhb,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAExB,KAAKa,EAAAA,IAAIsF,QAAQvG,IAIZob,GAAyB,IAAhBA,EAAMI,OAApB,CAIKJ,GACDA,EAAMK,iBAGV,IAAIrV,EAAY7F,KAAK6F,UAEhB7F,KAAKo0B,UACNp0B,KAAKm1B,aAGHn1B,KAAKo0B,WACPvuB,EAAYpG,GAGXO,KAAKo0B,UACNvzB,EAAAA,IAAIsO,OAAOtJ,EAAWpG,GAG1BO,KAAKyG,MAAM0vB,QAAQpzB,QAEnB,IAAIqzB,EAAap2B,KAAK6F,YAAcA,EAE/B7F,KAAKo0B,WAAa1zB,EAAAA,IAAIE,QAAQZ,KAAKhE,cACpCo6B,GAAa,IAGXp2B,KAAKo0B,UAAY1zB,EAAAA,IAAIE,QAAQZ,KAAKhE,cACpCo6B,GAAa,GAGZA,GAILp2B,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAYA,EArCrB,CAsCJ,EAEAwwB,eAAc,SAAC52B,GAEX,IAAI61B,EAASz0B,EAAAA,IAAIoB,KAAKjC,KAAK20B,SACvB,CAAE9uB,UAAWpG,IAEjB,OAAM61B,GAAUt1B,KAAK6Q,YACVpR,EAGL61B,GAAWt1B,KAAK6Q,YAIfykB,EAAOC,UAHHv1B,KAAKpE,MAAMoE,KAAKs0B,cAI/B,EAEAyB,WAAU,WAEN,IAAIO,EAAWt2B,KAAK0Q,MAAQ,EAEvB4lB,EAAW,IACZA,EAAWt2B,KAAK80B,SAASh1B,OAAS,GAGtCE,KAAK0Q,MAAQ4lB,EAEbt2B,KAAKu2B,iBACT,EAEAP,WAAU,WAEN,IAAIM,EAAWt2B,KAAK0Q,MAAQ,EAEvB4lB,EAAWt2B,KAAK80B,SAASh1B,OAAS,IACnCw2B,EAAW,GAGft2B,KAAK0Q,MAAQ4lB,EAEbt2B,KAAKu2B,iBACT,EAEAT,eAAc,WAEV,GAAK91B,KAAK6Q,aAAe7Q,KAAK60B,OAC1B,OAAO70B,KAAKw2B,eAGhB,IAAIjjB,EAAW1S,EAAAA,IAAI7B,IAAIgB,KAAK80B,SACxB90B,KAAK0Q,OAEqB,IAAzB1Q,KAAK80B,SAASh1B,SACfyT,EAAW1S,EAAAA,IAAIyM,MAAMtN,KAAK80B,WAGxBvhB,IAAYA,EAAS5W,UAI3BqD,KAAKk2B,aAAa3iB,EAAS1N,UAC/B,EAEA2wB,aAAY,WAERx2B,KAAKk2B,aAAal2B,KAAK60B,QAEvB70B,KAAK60B,OAAS,EAClB,EAEA0B,gBAAe,WAEX,GAAMv2B,KAAKktB,MAAX,CAIA,IAAI3Z,EAAW1S,EAAAA,IAAI7B,IAAIgB,KAAK80B,SACxB90B,KAAK0Q,OAEH6C,IAIDvT,KAAKyG,MAAM4W,WACZrd,KAAKyG,MAAM4W,UAAU1E,eAAe,iBAADlW,OAAkB8Q,EAASqD,EAAEjV,IAAG,OAGlE3B,KAAKyG,MAAMgwB,eACZz2B,KAAKyG,MAAMgwB,cAAcnZ,cAActd,KAAK0Q,OAdhD,CAgBJ,EAEAwkB,gBAAe,WAEX,GAAMl1B,KAAKktB,MAAX,CAIA,IAAIztB,EAAQO,KAAK6F,UAMjB,GAJKnF,EAAAA,IAAIE,QAAQZ,KAAK6F,aAClBpG,EAAQoB,EAAAA,IAAIyM,MAAMtN,KAAK6F,YAGrBpG,EAAN,CAIA,IAAIiR,EAAQ7P,EAAAA,IAAIQ,UAAUrB,KAAK20B,SAAU,CACrC9uB,UAAWpG,IAGf,GAAMiR,EAAN,CAIK1Q,KAAKyG,MAAMgwB,eACZz2B,KAAKyG,MAAMgwB,cAAcnZ,cAAc5M,EAAO,GAGlD,IAAIgmB,EAAS,iBAAHj0B,OAAoB1C,EAAAA,IAAIf,IAAIgB,KAAK20B,SAASjkB,GAAQ,QAAS,GAAE,MAElE1Q,KAAKyG,MAAM4W,WACZrd,KAAKyG,MAAM4W,UAAU1E,eAAe+d,EAAQ,EAThD,CARA,CAVA,CA6BJ,GAIJC,iBAAgB,WAEZ,IAAM32B,KAAKjD,WAAa2D,EAAAA,IAAIsF,QAAQhG,KAAK6F,WACrC,OAAO,KAGX,IAAI9J,EAAQ,CAAC,EAMb,OAJMiE,KAAKmyB,eACPp2B,EAAM43B,YAAc3zB,KAAKyyB,QAG7BhtB,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,uCACkDvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,WACrCR,KAAK6kB,MAAM0H,OAAK,OAGtC,EAEAoF,iBAAgB,WAEZ,OAAAnxB,EAAAA,EAAAA,aAAA,+CAAAA,EAAAA,EAAAA,aAAA,WAEkBR,KAAK6kB,MAAM+M,WAAS,OAG1C,EAEAC,gBAAe,SAACr3B,GAChB,IAAAqL,EAAA,KAKQ/O,EAAQ,CACRkM,MAAOhD,KAAK6kB,MAAM0H,OAGhBxxB,KAAKmyB,eACPp2B,EAAM43B,YAAc,SAAC9Y,GAAK,OAAK/P,EAAKorB,aAAaz2B,EAAOob,EAAM,GAGlE,IAAIkc,GAAStxB,EAAAA,EAAAA,aAAA,aACFzF,KAAKq2B,eAAe52B,KAG/B,OAAAgG,EAAAA,EAAAA,aAAA,aAhBgB,CACZ,mBAgBqB,CAChB,CAACsxB,GAAStxB,EAAAA,EAAAA,aAAA,IAAS1J,EAAK,QAGrC,EAEAi7B,oBAAmB,WAEf,IAAI1pB,EAAQzM,EAAAA,IAAIyM,MAAMtN,KAAK6F,WAE3B,IAAMyH,EACF,OAAO,KAGX,IAAI2pB,EAAYj3B,KAAKN,KAAK,kBAAVM,CAA6BsN,GAE7C,GAA+B,IAA1BtN,KAAK6F,UAAU/F,OAChB,OAAOm3B,EAGX,IAAI/X,EAAQlf,KAAK6F,UAAU/F,OAAS,EAQpC,MAAO,CACHm3B,GAPYxxB,EAAAA,EAAAA,aAAA,iCAAAA,EAAAA,EAAAA,aAAA,aAEDzF,KAAKof,OAAOpf,KAAKu0B,aAAcrV,OAOlD,EAEAgY,iBAAgB,WAChB,IAAA7rB,EAAA,KACI,OAAM3K,EAAAA,IAAIE,QAAQZ,KAAK6F,WAIlB7F,KAAKkM,SACClM,KAAKN,KAAK,sBAAVM,GAGJa,EAAAA,IAAIC,KAAKd,KAAK6F,UAAW,SAACpG,GAC7B,OAAO4L,EAAK3L,KAAK,kBAAV2L,CAA6B5L,EACxC,GATW,IAUf,EAEA03B,eAAc,WAEV,IAAIC,EAAe12B,EAAAA,IAAIsF,QAAQhG,KAAK6F,aAC/BnF,EAAAA,IAAIqrB,SAAS/rB,KAAK6F,WAEnB9J,EAAQ,CACR0D,MAAOO,KAAK60B,OACZv3B,YAAa0C,KAAK1C,YAClBX,SAAUqD,KAAKmyB,aACfI,QAASvyB,KAAK21B,aACdtD,QAASryB,KAAK41B,aACd3M,UAAWjpB,KAAK61B,gBAGd71B,KAAKktB,QACPnxB,EAAM0D,MAAQ,MAGZ23B,IACFr7B,EAAMuB,YAAc,MAGxB,IAAI+5B,GAAS5xB,EAAAA,EAAAA,aAAA,kCAAAA,EAAAA,EAAAA,aAAA,SAAA6K,EAAAA,EAAAA,YAAA,cAEkBvU,GAAK,QAIpC,MAAO,CACHiE,KAAKN,KAAK,mBAAVM,IAA+ByF,EAAAA,EAAAA,aAAA,iCAGtB,CAACzF,KAAKN,KAAK,mBAAVM,GAAiCq3B,KAG3Cr3B,KAAKN,KAAK,mBAAVM,GAER,EAEAs3B,aAAY,WAER,IAAIF,EAAe12B,EAAAA,IAAIsF,QAAQhG,KAAK6F,aAC/BnF,EAAAA,IAAIqrB,SAAS/rB,KAAK6F,WAEnB0xB,EAAav3B,KAAKq2B,eAClBr2B,KAAK6F,WAEJuxB,IACDG,EAAa,MAGjB,IAAIx7B,EAAQ,CACR0D,MAAOO,KAAK60B,OACZv3B,YAAa0C,KAAK1C,YAClBX,SAAUqD,KAAKmyB,aACfI,QAASvyB,KAAK21B,aACdtD,QAASryB,KAAK41B,aACd3M,UAAWjpB,KAAK61B,gBAepB,OAZM71B,KAAK60B,QAAU70B,KAAK00B,SACtB34B,EAAM0D,MAAQO,KAAK6F,WAGjB7F,KAAKktB,QACPnxB,EAAM0D,MAAQ83B,GAGZH,IACFr7B,EAAMuB,YAAci6B,GAGjB,CACHv3B,KAAKN,KAAK,mBAAVM,IAA+ByF,EAAAA,EAAAA,aAAA,kCAAAA,EAAAA,EAAAA,aAAA,SAAA6K,EAAAA,EAAAA,YAAA,cAGAvU,GAAK,QAGpCiE,KAAKN,KAAK,mBAAVM,GAER,EAEAw3B,cAAa,WAET,IAAI/5B,EAAY,CACZ,qBAGCuC,KAAKo0B,UACN32B,EAAU8F,KAAK,cAGnB,IAAIk0B,EAAcz3B,KAAKN,KAAK,gBAM5B,OAJKM,KAAKo0B,WACNqD,EAAcz3B,KAAKN,KAAK,oBAG5B+F,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CAAGg6B,KAEhC,EAEA5Y,YAAW,WACX,IAAApN,EAAAe,EACQklB,GAASjyB,EAAAA,EAAAA,aAAA,mDAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,uBAEe,GAAI3F,GAAAkG,EAAGzR,KAAKpE,MAAMoE,KAAKq0B,YAAU5iB,EAAA,2BAAAA,EAAA,MAI7D,IAAMzR,KAAK80B,SAASh1B,OAChB,OAAO43B,EAGX,GAAK13B,KAAKm0B,KACN,OAAOn0B,KAAKN,KAAK,kBAAVM,GAGX,IAAI1D,EAAUyD,EAAAA,IAAIe,KAAKd,KAAK80B,SAAU,SAACQ,EAAQ5kB,GAC3C,OAAO4kB,EAAO51B,KAAK,eAAZ41B,CAA4B5kB,EACvC,GAEI3U,EAAQ,CACRU,KAAMuD,KAAKvD,MAGf,OAAAgJ,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,eAAAZ,EAAAA,EAAAA,YAAA,0DAC4EvU,GAAKwP,GAAAiH,EACxEzS,EAAAA,IAAI43B,OAAOr7B,IAAQkW,EAAA,2BAAAA,EAAA,GAGhC,EAEAolB,iBAAgB,SAACn4B,EAAOiR,GACxB,IAAApF,EAAA,KACQ7N,EAAY,GAEZo6B,EAAmB73B,KAAKo0B,UACxBvzB,EAAAA,IAAIqF,IAAIlG,KAAK6F,UAAWpG,EAAMA,OAE7Bo4B,GACDp6B,EAAU8F,KAAK,YAGnB,IAAIu0B,GAAmB93B,KAAKo0B,UACxBp0B,KAAK6F,YAAcpG,EAAMA,MAExBq4B,GACDr6B,EAAU8F,KAAK,YAGdvD,KAAK0Q,QAAUyT,EAAAA,IAAG,IAAKzT,IACxBjT,EAAU8F,KAAK,WAGnB,IAAIxH,EAAQ,CACR,KAAQiE,KAAK9D,KACb,YAAgB8D,KAAKo0B,SAGzBr4B,YAAuB,SAAC6G,GACpB0I,EAAK4qB,aAAaz2B,EAAMA,MAAOmD,EACnC,GAMA,OAJKk1B,GAAkBD,KACnB97B,EAAM6B,KAAOqH,KAAK6kB,MAAME,UAG5BvkB,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,mBAAAZ,EAAAA,EAAAA,YAAA,OAC2B7S,GAAe1B,GAAK,2BACtC0D,EAAMzB,MAAK,GAGxB,EAEA+5B,gBAAe,WACf,IAAArmB,EAAA,KACQ3V,EAAQ,CACRoW,MAAOnS,KAAK80B,SAAU1f,QAAS,EAAGkH,WAAY,YAGlDvgB,WAAmB,SAAAwT,GAAsB,IAAnB9P,EAAK8P,EAAL9P,MAAOiR,EAAKnB,EAALmB,MACzB,OAAOgB,EAAKhS,KAAK,mBAAVgS,CAA8BjS,EAAOiR,EAChD,GAEA,OAAAjL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,qBAAAZ,EAAAA,EAAAA,YAAA,8DACsFvU,GAAK,KAE/F,EAEAi8B,cAAa,WACb,IAAAjmB,EAAA,KACQtU,EAAY,CACZ,qBAGCuC,KAAKm0B,MACN12B,EAAU8F,KAAK,aAGnB,IAAIxH,EAAQ,CACRkM,MAAOxK,EACPyuB,QAAS,QACT9Y,OAAS,EACT6Y,QAAQ,EACRxvB,KAAMuD,KAAKvD,KACXouB,SAAU7qB,KAAK6qB,SACfuB,aAAa,EACbzvB,SAAUqD,KAAKmyB,aACf8F,QAASj4B,KAAK01B,YAGlB,OAAAjwB,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aAAAZ,EAAAA,EAAAA,YAAA,0BACoCyB,EAAKmb,MAAK,+BAAA/b,GAAA,OAAVY,EAAKmb,MAAK/b,CAAA,GAAMpV,GAAK,CAC9C8wB,IAAK7sB,KAAKN,KAAK,gBAG9B,EAEAw4B,cAAa,WACb,IAAAhmB,EAAA,KACI,GAAKlS,KAAKm0B,KACN,OAAO,KAGX,GAAKzzB,EAAAA,IAAIsF,QAAQhG,KAAK1D,SAClB,OAAO0D,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,UAa7C,OAAOrB,EAAAA,IAAI43B,OAAO53B,EAAAA,IAAIe,KAAKd,KAAK1D,QAVb,SAAC84B,EAAQC,GAExB,IAAIt5B,EAAQ,CACRiC,MAAO+B,EAAAA,IAAIf,IAAI,CAAEo2B,OAAAA,EAAQC,OAAAA,GAAUnjB,EAAKpB,aAAc,MACtDrR,MAAOM,EAAAA,IAAIf,IAAI,CAAEo2B,OAAAA,EAAQC,OAAAA,GAAUnjB,EAAKsiB,aAAc,OAG1D,OAAA/uB,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,iBAA2BnV,EAAK,KACpC,GAGJ,EAEAgI,OAAM,WAEF,IAAItG,EAAY,CACZ,WACA,aAAeuC,KAAK9D,KACpB,aAAe8D,KAAKvD,MAsBxB,OAnBmBiE,EAAAA,IAAIsF,QAAQhG,KAAK6F,aAC/BnF,EAAAA,IAAIqrB,SAAS/rB,KAAK6F,YAGnBpI,EAAU8F,KAAK,WAGdvD,KAAKjD,WACNU,EAAU8F,KAAK,eAGdvD,KAAKktB,OACNzvB,EAAU8F,KAAK,WAGdvD,KAAKmyB,cACN10B,EAAU8F,KAAK,eAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,EAAS,QAAWuC,KAAKm1B,YAAU,CAC1Cn1B,KAAKN,KAAK,gBAAVM,GACAA,KAAKN,KAAK,gBAAVM,GACAA,KAAKN,KAAK,gBAAVM,IAGb,GC35BJ,IAEIqF,KAAM,gBAEN6sB,cAAc,EAEdnd,OAAQ,CAEJkgB,QAAS,CACLp4B,aAAS0B,IAKjBxC,MAAO,CAEH0D,MAAO,oBAGC,MAAO,EACX,GAGJzB,MAAO,oBAGC,OAAO,IACX,GAGJm6B,UAAW,oBAGH,OAAO,IACX,GAGJC,UAAW,oBAGH,OAAO,IACX,GAGJz7B,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,WAKfiQ,SAAU,CAEN3P,UAAS,WAEL,OAAKnF,EAAAA,IAAIsF,QAAQhG,KAAKm4B,WACXn4B,KAAKP,MAGTM,EAAAA,IAAIf,IAAIgB,KAAKP,MAAOO,KAAKm4B,UACpC,EAEA5C,UAAS,WAEL,OAAK70B,EAAAA,IAAIsF,QAAQhG,KAAKo4B,WACXp4B,KAAKhC,MAGT+B,EAAAA,IAAIf,IAAIgB,KAAKP,MAAOO,KAAKo4B,UACpC,GAIJ/rB,QAAO,WAEIrM,KAAKi1B,QAAQd,MAChBn0B,KAAKi1B,QAAQO,UAAUx1B,KAE/B,EAEAgX,cAAa,WAEFhX,KAAKi1B,QAAQd,MAChBn0B,KAAKi1B,QAAQQ,aAAaz1B,KAElC,EAEA8F,QAAS,CAELuyB,WAAU,SAACxd,GAEPA,EAAMK,iBAEe,IAAhBL,EAAMI,QAINjb,KAAKrD,UAIVqD,KAAKi1B,QAAQiB,aAAal2B,KAAK6F,UAC3BgV,GACR,GAIJyd,aAAY,SAAC5nB,GACb,IAAA/Q,EAAA,KAEQlC,EAAY,GAEZo6B,EAAmB73B,KAAKi1B,QAAQb,UAChCvzB,EAAAA,IAAIqF,IAAIlG,KAAKi1B,QAAQpvB,UAAW7F,KAAK6F,WAEpCgyB,GACDp6B,EAAU8F,KAAK,YAGnB,IAAIu0B,GAAmB93B,KAAKi1B,QAAQb,UAChCp0B,KAAKi1B,QAAQpvB,YAAc7F,KAAK6F,UAE/BiyB,GACDr6B,EAAU8F,KAAK,YAGdvD,KAAKi1B,QAAQvkB,QAAUyT,EAAAA,IAAG,IAAKzT,IAChCjT,EAAU8F,KAAK,WAGnB,IAAIxH,EAAQ,CACR,SAAYiE,KAAKrD,SACjB,YAAeqD,KAAKq4B,WACpB,KAAQr4B,KAAKi1B,QAAQ/4B,KACrB,YAAgB8D,KAAKi1B,QAAQb,UAUjC,OAPK0D,GAAkBD,KACnB97B,EAAM6B,KAAOqH,KAAK6kB,MAAME,SAI5BjuB,EAAM,eAAiBiE,KAAK4W,EAAEjV,KAE9B8D,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,mBAAAZ,EAAAA,EAAAA,YAAA,OAC2B7S,GAAe1B,GAAK,2BACrC4D,EAAKyB,OAAM,SAAYzB,EAAKyB,OAAM,WAAczB,EAAK41B,UAAS,GAG5E,EAEAxxB,OAAM,WAEF,OAAO,IACX,GC7JJ,UAEIsB,KAAM,YAEN0P,OAAQ,CAEJwjB,eAAgB,CACZ17B,aAAS0B,IAKjBxC,MAAO,CAEHC,WAAY,oBAGJ,OAAO,CACX,EACAE,KAAM,CAACqJ,UAGX9F,MAAO,oBAGC,OAAO,IACX,GAGJ+4B,aAAc,oBAGN,OAAO,CACX,EACAt8B,KAAM,CAACqJ,UAGX5I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXrJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXmzB,aAAc,oBAGN,OAAO,CACX,EACAv8B,KAAM,CAACqJ,UAGXmzB,OAAQ,oBAGA,OAAO,CACX,EACAx8B,KAAM,CAACqJ,WAKfiQ,SAAU,CAENmjB,aAAY,WAER,OAAS34B,KAAK04B,OACV14B,KAAKu4B,eAAeK,cADD54B,KAAK64B,WAEhC,EAEAC,iBAAgB,WAEZ,OAAS94B,KAAK04B,OACV14B,KAAKu4B,eAAeQ,mBADD/4B,KAAKy4B,YAEhC,EAEAO,aAAY,WAER,OAASh5B,KAAK04B,OACV14B,KAAKu4B,eAAeU,eADDj5B,KAAKrD,QAEhC,GAIJiJ,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QAAQi3B,YAAa74B,KAAKhE,WAEvC,EAEAwL,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK64B,cAChB74B,KAAK64B,YAAcp5B,EAE3B,GAIJuW,YAAW,WAEFhW,KAAKu4B,iBACNv4B,KAAK64B,YAAc74B,KAAKu4B,eAAeW,UAAUl5B,KAAKP,OAE9D,EAEA4M,QAAO,WACP,IAAA1M,EAAA,KACWK,KAAKu4B,iBAAkBv4B,KAAK04B,SAInC14B,KAAKsmB,OAAO,2BAA4B,WACpC3mB,EAAKk5B,YAAcl5B,EAAK44B,eAAeW,UAAUv5B,EAAKF,MAC1D,GAEAO,KAAKu4B,eAAeY,YAAYn5B,MACpC,EAEAgX,cAAa,WAEJhX,KAAKu4B,iBAAoBv4B,KAAK04B,QAC/B14B,KAAKu4B,eAAea,eAAep5B,KAE3C,EAEA8F,QAAS,CAELqJ,OAAM,WAEFnP,KAAK6T,MAAM,oBAAqB7T,KAAK64B,aAAgB74B,KAAK64B,YAC9D,EAEAQ,MAAK,WAEIr5B,KAAKu4B,gBACNv4B,KAAKu4B,eAAee,cAAct5B,MAGtCA,KAAK6T,MAAM,oBAAqB7T,KAAK64B,aAAc,EACvD,EAEAU,QAAO,WAEEv5B,KAAKu4B,gBACNv4B,KAAKu4B,eAAeiB,gBAAgBx5B,MAGxCA,KAAK6T,MAAM,oBAAqB7T,KAAK64B,aAAc,EACvD,EAEAY,gBAAe,WAENz5B,KAAKu4B,gBACNv4B,KAAKu4B,eAAemB,cAAc15B,MAGtCA,KAAK6T,MAAM,oBAAqB7T,KAAK64B,aAAc,EACvD,EAEAc,gBAAe,SAAC9e,GAKZ,IAHiB7a,KAAKg5B,cAAiBh5B,KAAKw4B,cACxCx4B,KAAK64B,YAET,CAMA,GAFAhe,EAAMK,iBAEDL,EAAM+e,SACP,OAAO55B,KAAKy5B,kBAGXz5B,KAAKu4B,gBACNv4B,KAAKu4B,eAAesB,eAAe75B,MAGvCA,KAAK6T,MAAM,oBAAqB7T,KAAK64B,aAAgB74B,KAAK64B,YAZ1D,CAaJ,EAEAiB,iBAAgB,aAEK95B,KAAKg5B,cAAiBh5B,KAAKw4B,cACxCx4B,KAAK64B,cAMT74B,KAAKu4B,eAAewB,WACxB,EAEAC,gBAAe,WAEX,IAAIhQ,EAAUhqB,KAAKu4B,eAAeW,UAAUl5B,KAAKP,OAE5CO,KAAK64B,cAAgB7O,GAI1BhqB,KAAK6T,MAAM,oBAAqB7T,KAAK64B,YAAc7O,EACvD,GAIJiQ,eAAc,WAEV,IAAIC,EAAYl6B,KAAKoB,OAAOq3B,cACxBz4B,KAAKoB,OAAOq3B,eAETyB,IACHA,GAASz0B,EAAAA,EAAAA,aAAA,WAAcR,KAAK6kB,MAAM2O,cAAY,OAGlD,IAAI0B,EAAYn6B,KAAKoB,OAAO4oB,SACxBhqB,KAAKoB,OAAO4oB,UAMhB,OAJOmQ,IACHA,GAAS10B,EAAAA,EAAAA,aAAA,WAAcR,KAAK6kB,MAAME,SAAO,QAG7CvkB,EAAAA,EAAAA,aAAA,sCAEUzF,KAAK84B,iBAAmBoB,EAAYC,GAGlD,EAEAC,YAAW,WAEP,OAAOp6B,KAAKkB,KAAK,YAAgBlB,KAAKkB,KAAK,UAI3CuE,EAAAA,EAAAA,aAAA,mCAEUzF,KAAKoB,OAAM,WAAcpB,KAAKoB,OAAOpD,UALpC,IAQf,EAEA+F,OAAM,WAEF,IAAItH,EAAOuD,KAAKvD,KAEXuD,KAAKu4B,iBACN97B,EAAOuD,KAAKu4B,eAAe97B,MAG/B,IAAIgB,EAAY,CACZ,aACA,eAAiBhB,EACjB,eAAiBuD,KAAK9D,MAGrB8D,KAAKw4B,cACN/6B,EAAU8F,KAAK,aAGdvD,KAAK24B,cACNl7B,EAAU8F,KAAK,aAGdvD,KAAK84B,kBACNr7B,EAAU8F,KAAK,kBAGdvD,KAAKg5B,cACNv7B,EAAU8F,KAAK,cAGdvD,KAAK24B,cAAgB34B,KAAKw4B,cAC3B33B,EAAAA,IAAIkB,OAAOtE,EAAW,cAG1B,IAAI1B,EAAQgE,EAAAA,IAAI0M,MAAMzM,KAAKiB,QAU3B,OARKjB,KAAK04B,SACN38B,EAAM43B,YAAc3zB,KAAK85B,kBAGtB95B,KAAK04B,SACR38B,EAAM43B,YAAc3zB,KAAK25B,kBAG7Bl0B,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,GAAK,CAC1B,CAACiE,KAAKN,KAAK,iBAAVM,GAA+BA,KAAKN,KAAK,cAAVM,KAG9C,GCxTJ,IAEIqF,KAAM,iBAEN4P,QAAO,WAEH,MAAO,CACHsjB,eAAgBv4B,KAExB,EAEAjE,MAAO,CAEHC,WAAY,oBAGJ,MAAO,EACX,EACAE,KAAM,CAACmE,QAGX5D,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGX+0B,MAAO,oBAGC,MAAO,YACX,EACAn+B,KAAM,CAACoJ,UAKfkQ,SAAU,CAENojB,cAAa,WAMT,OAJc/3B,EAAAA,IAAI8iB,OAAO3jB,KAAK20B,SAAU,SAAC2F,GACrC,OAAOA,EAASzB,WACpB,GAEe/4B,SAAWE,KAAK20B,SAAS70B,QACX,IAAzBE,KAAK20B,SAAS70B,MACtB,EAEAi5B,mBAAkB,WAEd,IAAI/O,EAAUhqB,KAAK20B,SAAShR,OAAO,SAAC2W,GAChC,OAAOA,EAASzB,WACpB,GAEA,OAAO7O,EAAQlqB,SAAWE,KAAK20B,SAAS70B,QACjB,IAAnBkqB,EAAQlqB,MAChB,EAEAm5B,eAAc,WAEV,OAAgC,IAAzBj5B,KAAK20B,SAAS70B,MACzB,GAIJ8F,KAAI,WAEA,MAAO,CACHC,UAAW7F,KAAKhE,WAChB0U,OAAQ,EACRikB,SAAU,GAElB,EAEAntB,MAAO,CAEHxL,WAAU,YAEDgE,KAAK6F,UAAY7F,KAAKhE,cACvBgE,KAAK6F,UAAY7F,KAAKhE,WAG9B,GAIJ8J,QAAS,CAELqzB,YAAW,SAACmB,GAERt6B,KAAK0Q,OAAS,EAEd7P,EAAAA,IAAI+lB,IAAI5mB,KAAK20B,SAAU2F,EAAU,CAC7B34B,IAAK24B,EAAS34B,MAGlB3B,KAAK20B,SAAW9zB,EAAAA,IAAIuR,KAAKpS,KAAK20B,SAAU,OAC5C,EAEAyE,eAAc,SAACkB,GAEXt6B,KAAK0Q,OAAS,EAEd7P,EAAAA,IAAIkB,OAAO/B,KAAK20B,SAAU,CACtBhzB,IAAK24B,EAAS34B,KAEtB,EAEAk4B,eAAc,SAACS,GACf,IADyBC,IAAI16B,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,KAAAA,UAAA,GAErB6Q,EAAQ7P,EAAAA,IAAIQ,UAAUrB,KAAK20B,SAAU,CACrChzB,IAAK24B,EAAS34B,MAGX24B,EAASzB,cACZ74B,KAAK0Q,MAAQA,GAGjB7P,EAAAA,IAAIsO,OAAOnP,KAAK6F,UAAWy0B,EAAS76B,OAE7B86B,GAIPv6B,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UACzC,EAEAyzB,cAAa,SAACgB,GACd,IADwBC,IAAI16B,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,KAAAA,UAAA,GAExBgB,EAAAA,IAAI+lB,IAAI5mB,KAAK6F,UAAWy0B,EAAS76B,OAE1B86B,GAIPv6B,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UACzC,EAEA2zB,gBAAe,SAACc,GAChB,IAD0BC,IAAI16B,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,KAAAA,UAAA,GAE1BgB,EAAAA,IAAIkB,OAAO/B,KAAK6F,UAAWy0B,EAAS76B,OAE7B86B,GAIPv6B,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UACzC,EAEA6zB,cAAa,SAACY,GACd,IAAA36B,EAAA,KACI,IAAqB,IAAhBK,KAAK0Q,MACN,OAAO1Q,KAAK65B,eAAeS,GAAU,GAGzC,IAAI5pB,EAAQ7P,EAAAA,IAAIQ,UAAUrB,KAAK20B,SAAU,CACrChzB,IAAK24B,EAAS34B,MAGd64B,EAAax6B,KAAK20B,SAASpW,MAAMve,KAAK0Q,MAAOA,EAAQ,GAEpDA,EAAQ1Q,KAAK0Q,QACd8pB,EAAax6B,KAAK20B,SAASpW,MAAM7N,EAAO1Q,KAAK0Q,MAAQ,IAGzD1Q,KAAK0Q,OAAS,EAEd7P,EAAAA,IAAIC,KAAK05B,EAAY,SAACF,GAClB36B,EAAK25B,cAAcgB,GAAU,EACjC,GAEAz5B,EAAAA,IAAIC,KAAK05B,EAAY,SAACF,GAClBA,EAASN,iBACb,GAEAh6B,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UACzC,EAEAk0B,UAAS,WAEL/5B,KAAK44B,cAAgB54B,KAAKy6B,aAAez6B,KAAK06B,UAClD,EAEAA,SAAQ,WACR,IAAAr3B,EAAA,KACIxC,EAAAA,IAAIC,KAAKd,KAAK20B,SAAU,SAAC2F,GACrBj3B,EAAKi2B,cAAcgB,GAAU,EACjC,GAEAz5B,EAAAA,IAAIC,KAAKd,KAAK20B,SAAU,SAAC2F,GACrBA,EAASN,iBACb,GAEAh6B,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UACzC,EAEA40B,WAAU,WACV,IAAAnwB,EAAA,KACIzJ,EAAAA,IAAIC,KAAKd,KAAK20B,SAAU,SAAC2F,GACrBhwB,EAAKkvB,gBAAgBc,GAAU,EACnC,GAEAz5B,EAAAA,IAAIC,KAAKd,KAAK20B,SAAU,SAAC2F,GACrBA,EAASN,iBACb,GAEAh6B,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UACzC,EAEAqzB,UAAS,SAACz5B,GAEN,OAAOoB,EAAAA,IAAIqF,IAAIlG,KAAK6F,UAAWpG,EACnC,GAIJsE,OAAM,WAEF,IAAItG,EAAY,CACZ,mBACA,qBAAuBuC,KAAKvD,KAC5B,qBAAuBuD,KAAKq6B,OAGhC,OAAA50B,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CAChBuC,KAAKoB,OAAM,WAGxB,GCxOJ,UAEIiE,KAAM,SAENiD,MAAO,CACHpJ,KAAM,WAGV6V,OAAQ,CAEJ4lB,YAAa,CACT99B,aAAS0B,IAKjBxC,MAAO,CAEH0D,MAAO,oBAGC,OAAO,IACX,GAGJuqB,QAAS,oBAGD,OAAO,CACX,EACA9tB,KAAM,CAACqJ,UAGX5I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGX9I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,UAKfkQ,SAAU,CAEN7T,IAAG,WAEC,OAAO3B,KAAK4W,EAAEjV,GAClB,GAIJiE,KAAI,WAEA,MAAO,CACHizB,YAAa74B,KAAKgqB,QAE1B,EAEAxiB,MAAO,CAEHwiB,QAAO,WAEEhqB,KAAKgqB,UAAYhqB,KAAK64B,cACvB74B,KAAK64B,YAAc74B,KAAKgqB,QAEhC,GAIJhU,YAAW,WAEFhW,KAAK26B,cACN36B,KAAK64B,YAAc74B,KAAK26B,YAAYzB,UAAUl5B,KAAKP,OAE3D,EAEA4M,QAAO,WAEErM,KAAK26B,aACN36B,KAAK26B,YAAYC,SAAS56B,KAElC,EAEAgX,cAAa,WAEJhX,KAAK26B,aACN36B,KAAK26B,YAAYE,YAAY76B,KAErC,EAEA8F,QAAS,CAELuzB,MAAK,WAEIr5B,KAAK26B,aACN36B,KAAK26B,YAAYG,WAAW96B,MAGhCA,KAAK6T,MAAM,oBAAqB7T,KAAK64B,aAAc,EACvD,EAEAmB,gBAAe,WAEX,IAAIhQ,EAAUhqB,KAAK26B,YAAYzB,UAAUl5B,KAAKP,OAEzCO,KAAK64B,cAAgB7O,GAI1BhqB,KAAK6T,MAAM,oBAAqB7T,KAAK64B,YAAc7O,EACvD,GAIJ+Q,YAAW,WAEP,OAAAt1B,EAAAA,EAAAA,aAAA,iCAAAA,EAAAA,EAAAA,aAAA,mBAKJ,EAEA20B,YAAW,WAEP,OAAOp6B,KAAKoB,OAAM,SAAcpB,KAAKoB,OAAOpD,OAI5CyH,EAAAA,EAAAA,aAAA,gCAEUzF,KAAKoB,OAAM,WAAcpB,KAAKoB,OAAOpD,UALpC,IAQf,EAEA+F,OAAM,WAEF,IAAItG,EAAY,CACZ,UACA,YAAcuC,KAAKvD,KACnB,YAAcuD,KAAK9D,MAGlB8D,KAAK64B,aACNp7B,EAAU8F,KAAK,aAGdvD,KAAKrD,UACNc,EAAU8F,KAAK,cAGnB,IAAIxH,EAAQgE,EAAAA,IAAI0M,MAAMzM,KAAKiB,QAM3B,OAJOjB,KAAKrD,WACRZ,EAAM43B,YAAc3zB,KAAKq5B,QAG7B5zB,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,GAAK,CAC1BiE,KAAKN,KAAK,cAAVM,GACAA,KAAKN,KAAK,cAAVM,IAGd,GCrLJ,IAEIqF,KAAM,cAEN4P,QAAO,WAEH,MAAO,CACH0lB,YAAa36B,KAErB,EAEAjE,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJS,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGX+0B,MAAO,oBAGC,MAAO,YACX,EACAn+B,KAAM,CAACoJ,UAKfM,KAAI,WAEA,MAAO,CACHC,UAAW7F,KAAKhE,WAChB24B,SAAU,GAElB,EAEAntB,MAAO,CAEHxL,WAAU,WAEDgE,KAAKhE,aAAegE,KAAK6F,YAC1B7F,KAAK6F,UAAY7F,KAAKhE,WAE9B,GAIJ8J,QAAS,CAEL80B,SAAQ,SAACI,GAELn6B,EAAAA,IAAI+lB,IAAI5mB,KAAK20B,SAAUqG,EAAO,CAC1Br5B,IAAKq5B,EAAMr5B,KAEnB,EAEAk5B,YAAW,SAACG,GAERn6B,EAAAA,IAAIkB,OAAO/B,KAAK20B,SAAU,CACtBhzB,IAAKq5B,EAAMr5B,KAEnB,EAEAm5B,WAAU,SAACE,GAEPh7B,KAAK6F,UAAYm1B,EAAMv7B,MAEvBoB,EAAAA,IAAIC,KAAKd,KAAK20B,SAAU,SAACqG,GACrBA,EAAMhB,iBACV,GAEAh6B,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UACzC,EAEAqzB,UAAS,SAACz5B,GAEN,OAAOO,KAAK6F,YAAcpG,CAC9B,GAIJsE,OAAM,WAEF,IAAItG,EAAY,CACZ,gBACA,kBAAoBuC,KAAKvD,KACzB,kBAAoBuD,KAAKq6B,OAG7B,OAAA50B,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,WAGhD,G,muBCxGJ,UAEIiE,KAAM,UAENtJ,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJi/B,MAAO,oBAGC,OAAO,CACX,EACA/+B,KAAM,CAACqJ,UAGX21B,MAAO,oBAGC,OAAO,CACX,GAGJC,OAAQ,oBAGA,MAAO,EACX,EACAj/B,KAAM,CAACmE,QAGXrD,IAAK,oBAGG,OAAO,CACX,EACAd,KAAM,CAACgB,SAGXD,IAAK,oBAGG,OAAO,GACX,EACAf,KAAM,CAACgB,SAGXhB,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGX3I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,WAKfK,KAAI,WAEA,MAAO,CACH8K,MAAO,EAAG0C,MAAO,KAAMvN,UAAW,CAAC,KAAM,MAEjD,EAEA2P,SAAU,CAENoD,SAAQ,WAEJ,MAAO,gBAAPnW,OAAuBzC,KAAK0Q,MAAK,KACrC,EAEA0qB,OAAM,WAEF,OAAO16B,EAAAA,IAAIE,QAAQZ,KAAKk7B,OAASr6B,EAAAA,IAAIyM,MAAMtN,KAAKk7B,OAASl7B,KAAKhD,GAClE,EAEAq+B,OAAM,WAEF,OAAO36B,EAAAA,IAAIE,QAAQZ,KAAKk7B,OAASr6B,EAAAA,IAAI4jB,KAAKzkB,KAAKk7B,OAASl7B,KAAK/C,GACjE,EAEAq+B,OAAM,WAEF,OAAOt7B,KAAKq7B,OAASr7B,KAAKo7B,MAC9B,EAEA3lB,MAAK,WACD,UAAW,iBAAkBha,UACzBia,UAAUC,iBAClB,EAEAC,UAAS,WACL,OAAO5V,KAAKyV,MAAQ,aAChB,WACR,EAEAI,UAAS,WACL,OAAO7V,KAAKyV,MAAQ,YAChB,WACR,EAEAK,QAAO,WACH,OAAO9V,KAAKyV,MAAQ,WAChB,SACR,GAGJjO,MAAO,CAEHxL,WAAU,WAENgE,KAAKu7B,gBACT,GAIJlvB,QAAO,WAEHrK,EAAAA,IAAIC,KAAKxG,QAAQkH,GAAG,SAChBjC,EAAAA,IAAI0pB,SAASpqB,KAAKw7B,SAAU,KAAMx7B,KAAK4W,EAAEjV,KAE7C3B,KAAKw7B,WACLx7B,KAAKu7B,gBACT,EAEAnQ,UAAS,WAELppB,EAAAA,IAAIC,KAAKxG,QAAQ2H,IAAI,SACjB,KAAMpD,KAAK4W,EAAEjV,IACrB,EAEAmE,QAAS,CAEL01B,SAAQ,WAEJx7B,KAAKoT,MAAQpR,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKrD,OACpC,EAEAmoB,eAAc,WAEV,IAAI97B,EAAQO,KAAKhE,WASjB,OAPK0E,EAAAA,IAAIiK,OAAOlL,KACZA,EAAQO,KAAKq7B,QAEV36B,EAAAA,IAAIE,QAAQnB,KACfA,EAAQ,CAACO,KAAKo7B,OAAQ37B,IAGnBO,KAAK6F,UAAYpG,CAC5B,EAEAg8B,cAAa,WAET,IAAIh8B,EAAQO,KAAK6F,UAEV7F,KAAKi7B,QACRx7B,EAAQO,KAAK6F,UAAU,IAG3B7F,KAAK6T,MAAM,oBAAqBpU,EACpC,EAEAi8B,UAAS,SAACj8B,GAEN,OAAO0kB,EAAAA,IAAIwX,MAAM37B,KAAKoT,MAAQpT,KAAKs7B,QAAU77B,EAAQO,KAAKo7B,QAAS,GAAK,IAC5E,EAEAQ,YAAW,SAACn8B,GAER,MAAO,yBAA2BO,KAAK07B,UAAUj8B,GAAS,IAC9D,EAEAo8B,UAAS,WAEL,OAAO1X,EAAAA,IAAIwX,MAAM37B,KAAKoT,MAAQpT,KAAKs7B,QAAUt7B,KAAK6F,UAAU,GAAK7F,KAAKo7B,QAAS,GAAK,IACxF,EAEAU,YAAW,WAEP,OAAO3X,EAAAA,IAAIwX,MAAM37B,KAAKoT,MAAQpT,KAAKs7B,QAAUt7B,KAAK6F,UAAU,GAAK7F,KAAK6F,UAAU,IAAK,GAAK,IAC9F,EAEAk2B,YAAW,WAEP,MAAO,cAAgB/7B,KAAK87B,cAArB,2BACwB97B,KAAK67B,YAAc,IACtD,EAEAG,gBAAe,SAAC5oB,GAChB,IAAAzT,EAAA,KACI,GAAKe,EAAAA,IAAIqrB,SAAS/rB,KAAKk7B,OACnB,OAAO/W,EAAAA,IAAI7M,MAAMlE,EAAQpT,KAAKk7B,OAASl7B,KAAKk7B,MAGhD,IAAID,EAAQp6B,EAAAA,IAAI4jB,KAAKzkB,KAAKk7B,OACtBr6B,EAAAA,IAAIyM,MAAMtN,KAAKk7B,OAEfe,EAAOp7B,EAAAA,IAAIC,KAAKd,KAAKk7B,MAAO,SAACgB,GAC7B,OAAOxsB,KAAKysB,IAAKlB,EAAQ,IAAM7nB,EAAS8oB,EAAOv8B,EAAKy7B,OACxD,GAEI1qB,EAAQ7P,EAAAA,IAAIQ,UAAU46B,EAAMvsB,KAAK1S,IAAGuD,MAARmP,KAAI+Q,GAAQwb,KAE5C,OAAOj8B,KAAKk7B,MAAMxqB,EACtB,EAEAkK,cAAa,SAACC,GAEV,OAAO7a,KAAKyV,MAILoF,EAAMC,QAAQ,IAAMD,EAAME,eAAe,GAHrCF,CAIf,EAEA8Y,YAAW,SAAC9Y,GAEH7a,KAAKrD,UAIHkE,EAAAA,IAAIqF,IAAI,CAAC,EAAG,GAAI2U,EAAMI,SAI7BJ,EAAMK,iBACNL,EAAM/X,kBAENd,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKxU,KAAKjC,KAAK4Y,UAAUzV,SAAS,UAChDnB,EAAAA,IAAIC,KAAKC,SAASC,MAAMgB,SAAS,UAEjCnB,EAAAA,IAAIC,KAAKC,UAAUS,GAAG3C,KAAK8V,QACvBpV,EAAAA,IAAI4U,UAAUtV,KAAKo8B,UAAW,IAAKp8B,KAAK4W,EAAEjV,KAE9CK,EAAAA,IAAIC,KAAKC,UAAUS,GAAG3C,KAAK6V,UACvBnV,EAAAA,IAAI4U,UAAUtV,KAAKq8B,YAAa,IAAKr8B,KAAK4W,EAAEjV,KACpD,EAEA06B,YAAW,SAACxhB,GAER7a,KAAK0b,QAAU1b,KAAK4a,cAAcC,GAAOa,QAEzC,IAAIrG,EAAUrT,EAAAA,IAAIC,KAAKjC,KAAKyW,KACvB6E,OAAO,QAERghB,GAAiBt8B,KAAK0b,QAAUrG,GAAWrV,KAAKoT,MAAQ,IAExDmpB,EAAev8B,KAAKg8B,gBAAgBM,GAEnCC,EAAev8B,KAAKo7B,SACrBmB,EAAev8B,KAAKo7B,QAGnBmB,EAAev8B,KAAKq7B,SACrBkB,EAAev8B,KAAKq7B,QAGxB,IAAImB,EAAUx8B,KAAK6F,UAAU,GAAK7F,KAAKk7B,MAEnB,IAAfl7B,KAAK0Q,OAAe6rB,EAAeC,IACpCD,EAAeC,GAGnB,IAAIC,EAAUz8B,KAAK6F,UAAU,GAAK7F,KAAKk7B,MAEnB,IAAfl7B,KAAK0Q,OAAe6rB,EAAeE,IACpCF,EAAeE,GAGnBz8B,KAAK6F,UAAU7F,KAAK0Q,OAAS6rB,CACjC,EAEAH,UAAS,SAACvhB,GAENA,EAAMK,iBACNL,EAAM/X,kBAENd,EAAAA,IAAIC,KAAKC,UAAUkB,IAAIpD,KAAK8V,QAAS,KAAM9V,KAAK4W,EAAEjV,KAClDK,EAAAA,IAAIC,KAAKC,UAAUkB,IAAIpD,KAAK6V,UAAW,KAAM7V,KAAK4W,EAAEjV,KAEpDK,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKxU,KAAKjC,KAAK4Y,UAAUhB,YAAY,UACnD5V,EAAAA,IAAIC,KAAKC,SAASC,MAAMyV,YAAY,UAEpC5X,KAAKy7B,eACT,GAIJvW,aAAY,SAACzlB,EAAOiR,GACpB,IAAArN,EAAA,KACQq5B,EAAc,CACd,aAAcj9B,EACd,aAAciR,EACdtI,MAAOpI,KAAK47B,YAAYn8B,GAG5Bi9B,YAA6B,SAAC7hB,GAC1BxX,EAAKswB,YAAY9Y,EAAOxX,EAAKqN,MAAQA,EACzC,GAEAnB,EAAqB,CACjB1O,EAAAA,IAAIQ,UAAUrB,KAAKk7B,MAAOz7B,GAAQM,EAAAA,IAAIf,IAAIgB,KAAKm7B,OAAQx8B,EAAKc,IAD3Dd,EAAG4Q,EAAA,GAAEotB,EAAOptB,EAAA,GAIjB,OAAA9J,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,yCACgDqsB,GAAaD,GAAW,EAAAj3B,EAAAA,EAAAA,aAAA,mBAI5E,EAEAm3B,cAAa,WACb,IAAAtyB,EAAA,KACQqtB,EAAS92B,EAAAA,IAAI4L,MAAMzM,KAAK6F,WAM5B,OAJO7F,KAAKi7B,cACDtD,EAAO,GAGX92B,EAAAA,IAAIC,KAAK62B,EAAQ,SAACl4B,EAAOiR,GAC5B,OAAOpG,EAAK5K,KAAK,eAAV4K,CAA0B7K,EAAOiR,EAC5C,EACJ,EAEAmsB,UAAS,WAEL,IAAIC,EAAW,CACX10B,MAAOpI,KAAK+7B,eAGhB,OAAAt2B,EAAAA,EAAAA,aAAA,gCAAAA,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,0BAEyCwsB,GAAQ,OAGrD,EAEA/4B,OAAM,WAEF,IAAItG,EAAY,CACZ,WACA,aAAeuC,KAAK9D,KACpB,aAAe8D,KAAKvD,MAWxB,OARKuD,KAAKi7B,OACNx9B,EAAU8F,KAAK,WAGdvD,KAAKrD,UACNc,EAAU8F,KAAK,eAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKN,KAAK,YAAVM,GACAA,KAAKN,KAAK,gBAAVM,IAGd,GC7XJ,UAEIqF,KAAM,UAEN0P,OAAQ,CAEJkd,UAAW,CACPp1B,aAAS0B,IAKjBxC,MAAO,CAEHC,WAAY,oBAGJ,OAAO,CACX,GAGJG,QAAS,oBAGD,OAAO,CACX,GAGJC,SAAU,oBAGF,OAAO,CACX,GAGJC,OAAQ,oBAGA,MAAO,SACX,GAGJG,QAAS,oBAGD,MAAO,SACX,GAGJC,KAAM,oBAGE,MAAO,IACX,GAGJE,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,WAKfiQ,SAAU,CAEN2c,aAAY,WACR,OAAOnyB,KAAKiyB,UAAYjyB,KAAKiyB,UAAUt1B,SAASqD,KAAKrD,UACjDqD,KAAKrD,QACb,GAIJiJ,KAAI,WAEA,MAAO,CACHC,UAAW7F,KAAKhE,WAExB,EAEA8J,QAAS,CAELirB,WAAU,WAEN,IAAIlrB,EAAY7F,KAAK7D,QAEhB6D,KAAK6F,YAAc7F,KAAK7D,UACzB0J,EAAY7F,KAAK5D,UAGrB4D,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UAAYA,EACrD,GAIJ2B,MAAO,CAEHxL,WAAU,WAEDgE,KAAKhE,aAAegE,KAAK6F,YAC1B7F,KAAK6F,UAAY7F,KAAKhE,WAE9B,GAIJ+gC,aAAY,WAER,IAIIhhC,EAAQ,CAAC,EAMb,OAJOiE,KAAKmyB,eACRp2B,EAAM43B,YAAc3zB,KAAK+wB,aAG7BtrB,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OAVgB,CACZ,qBAU2BvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,mBAIxC,EAEA20B,YAAW,WAEP,IAAOp6B,KAAKoB,OAAM,QACd,OAAO,KAGX,IAIIrF,EAAQ,CAAC,EAMb,OAJOiE,KAAKmyB,eACRp2B,EAAM43B,YAAc3zB,KAAK+wB,aAG7BtrB,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OAVgB,CACZ,oBAU2BvU,GAAK,CAC1BiE,KAAKoB,OAAM,WAGzB,EAEA2C,OAAM,WAEF,IAAItG,EAAY,CACZ,WACA,aAAeuC,KAAKvD,MAuBxB,OApBKuD,KAAK6F,YAAc7F,KAAK7D,SACzBsB,EAAU8F,KAAK,aAAevD,KAAK3D,QAGlC2D,KAAK6F,YAAc7F,KAAK5D,UACzBqB,EAAU8F,KAAK,aAAevD,KAAKxD,SAGlCwD,KAAK6F,YAAc7F,KAAK7D,SACzBsB,EAAU8F,KAAK,QAGdvD,KAAK6F,YAAc7F,KAAK5D,UACzBqB,EAAU8F,KAAK,SAGdvD,KAAKmyB,cACN10B,EAAU8F,KAAK,eAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,cAAVM,IAGd,GCvLJ,UAEIqF,KAAM,WAENtJ,MAAO,CAEHC,WAAY,oBAGJ,OAAO,CACX,EACAE,KAAM,CAACqJ,UAGX5I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGX0mB,OAAQ,oBAGA,OAAO,CACX,EACA/vB,KAAM,CAACqJ,UAGXqT,SAAU,oBAGF,OAAO,IACX,GAGJnc,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX03B,YAAa,oBAGL,OAAOrhC,EAAAA,OAAOC,MAAM,OACxB,EACAM,KAAM,CAACoJ,SAGX23B,WAAY,oBAGJ,OAAOthC,EAAAA,OAAOC,MAAM,SACxB,EACAM,KAAM,CAACoJ,UAKfkC,MAAO,CAEHxL,WAAU,WAEDgE,KAAKhE,aAAegE,KAAK6F,YAC1B7F,KAAK6F,UAAY7F,KAAKhE,WAE9B,GAIJ4J,KAAI,WAEA,MAAO,CACHC,UAAW7F,KAAKhE,WAAYkhC,aAAa,EAEjD,EAEA7wB,QAAO,WACP,IAAA1M,EAAA,KACIK,KAAKsmB,OAAO,YAAa,WACrB3mB,EAAKw9B,eACT,GAEAn9B,KAAK+O,UAAU,WACXpP,EAAKw9B,eACT,GAEAn9B,KAAKgD,OAAShB,EAAAA,IAAIC,KAAKjC,KAAK4Y,UAAY5Y,KAAKyW,KACxC+V,WAAWxtB,IAAI,GAEpBgD,EAAAA,IAAIC,KAAKC,SAASC,MAAMQ,GAAG,YACvB3C,KAAK+wB,WAAY/wB,KAAK4W,EAAEjV,KAE5BK,EAAAA,IAAIC,KAAKC,SAASC,MAAMyC,OAAO5E,KAAKyW,IACxC,EAEA2U,UAAS,WAELppB,EAAAA,IAAIC,KAAKC,SAASC,MAAMiB,IAAI,YACxB,KAAMpD,KAAK4W,EAAEjV,IACrB,EAEAmE,QAAS,CAELs3B,YAAW,SAACx9B,GAER,IAAMI,KAAKoB,OAAM,QACb,OAAOxB,EAGX,IAAIy9B,EAAQr9B,KAAKoB,OAAM,UAEvB,GAAKV,EAAAA,IAAIsF,QAAQq3B,GACb,OAAOz9B,EAGX,IAAIuf,EAAO,GAWX,OATAke,EAAM90B,IAAI,SAAClG,GAED3B,EAAAA,IAAIC,SAAS0B,EAAG0hB,WAItB5E,EAAK5b,KAAKlB,EAAG0hB,SACjB,GAEO5E,EAAK1b,KAAK,IACrB,EAEA05B,cAAa,WACb,IAAA95B,EAAA,KACI,GAAMrD,KAAK6F,YAAa7F,KAAKk9B,YAA7B,CAIA,IAAIx7B,EAAO1B,KAAKpE,MAAM,iBAEjBoE,KAAKoB,OAAM,UACZM,EAAO1B,KAAKyW,IAAIjU,WAGpB,IAAIlG,EAAUyD,EAAAA,IAAI6O,KAAK5O,KAAKmI,OAAQ,CAAC,OAAQ,OAAQ,cAAe,cAAe,CAC/EzG,KAAAA,IAGJ1B,KAAKs9B,QAAQ/6B,KAAKjG,GACbqe,KAAK,WACFtX,EAAK65B,aAAc,EACnB75B,EAAKk6B,SACT,GAAE,MACK,WACHl6B,EAAK65B,aAAc,EACnB75B,EAAKm6B,OACT,GAEJx9B,KAAKk9B,aAAc,CAtBnB,CAuBJ,EAEAM,MAAK,WAEDx9B,KAAK6T,MAAM,oBAAqB7T,KAAK6F,WAAY,GACjD7F,KAAK6T,MAAM,QACf,EAEA0pB,QAAO,WAEHv9B,KAAK6T,MAAM,oBAAqB7T,KAAK6F,WAAY,GACjD7F,KAAK6T,MAAM,UACf,EAEAkd,WAAU,SAAClW,EAAOxY,GAERrC,KAAKisB,SAAUjsB,KAAKrD,UAA4B,IAAhBke,EAAMI,UAI7BjZ,EAAAA,IAAIC,KAAKI,GAAI4e,QAAQjhB,KAAKgD,UAEzBhD,KAAK6F,YAIrBgV,EAAMK,iBAENlb,KAAK6T,MAAM,oBAAqB7T,KAAK6F,WAAY,IACrD,GAIJ9B,OAAM,WAEF,OAAA0B,EAAAA,EAAAA,aAAA,iEAESzF,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,WAG/C,G,80BCjNG,IAAMq8B,GAAc,WAevB,SAAAA,IACA,IADYnhC,EAAOuD,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,CAAC,G,4FAAC2B,CAAA,KAAAi8B,GAAAh8B,GAAA,aAXhB,MAAIA,GAAA,eAEF,CACNC,KAAM,GAAIjF,KAAM,KAAMP,KAAM,UAAW8gC,YAAa,GAAIC,WAAY,KAUpEj9B,KAAK1D,QAAUyD,EAAAA,IAAIiB,OAAOhB,KAAK1D,QAASA,EAAS,CAC7CqF,KAAKC,EAAAA,EAAAA,SAEb,CAAC,O,4GAAAqd,CAAAwe,EAAA,EAAA9+B,IAAA,QAAAc,MAED,SAAMi+B,GAEF19B,KAAK6B,eACL7B,KAAK8B,MAAMC,SAEXC,EAAAA,IAAIC,KAAKC,SAASC,MAAMC,IAAI,CACxB,SAAY,cAGhBs7B,GACJ,GAAC,CAAA/+B,IAAA,UAAAc,MAED,WACA,IAAAE,EAAA,KADQyK,EAAEvK,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,kBAAM,CAAK,EAEpB,OAAO,IAAI89B,QAAQ,SAACJ,EAASK,GAEzB,GAAKxzB,EAAG7J,MAAM,CAAC,GACX,OAAOg9B,IAGX,IAAIn9B,EAAO,CACP,kBAAMT,EAAKoD,MAAMw6B,EAAQ,EACzB,kBAAM59B,EAAKoD,MAAM66B,EAAO,GAG5Bj+B,EAAKoE,OAAMxD,MAAXZ,EAAeS,EACnB,EACJ,GAAC,CAAAzB,IAAA,aAAAc,MAED,SAAW4C,GAEP,IAAIzE,EAAOmC,EAAAA,IAAIf,IAAIvD,OAAOoiC,aAAc79B,KAAK1D,QAAQJ,KAAM,eAE/C8F,EAAAA,IAAIO,KAAK,MAAO,CACxB9E,UAAW,kBAAmB+E,UAAW,oBAAFC,OAAsB7E,EAAI,YAG/D8E,SAASL,EACnB,GAAC,CAAA1D,IAAA,aAAAc,MAED,SAAW4C,GAEKL,EAAAA,IAAIO,KAAK,MAAO,CACxB9E,UAAW,kBAAmB+E,UAAW,MAAFC,OAAQzC,KAAK1D,QAAQoF,KAAI,UAG9DgB,SAASL,EACnB,GAAC,CAAA1D,IAAA,gBAAAc,MAED,SAAc4C,EAAIq7B,GAEd,IAAIjgC,EAAY,CACZ,WACA,iBACA,aAAeuC,KAAK1D,QAAQG,MAG5BiF,EAAO3B,EAAAA,IAAIf,IAAIgB,KAAK1D,QAAS,eAE5BoE,EAAAA,IAAIsF,QAAQtE,KACbA,EAAO/F,EAAAA,OAAOC,MAAM,SAGxB,IAAI2hC,EAAUv7B,EAAAA,IAAIO,KAAK,SAAU,CAC7B9E,UAAWA,EAAUgG,KAAK,KAAMjB,UAAW,SAAFC,OAAWf,EAAI,aAG5D67B,EAAQ56B,GAAG,QAAS,WAChB+6B,GACJ,GAEAH,EAAQ76B,SAASL,EACrB,GAAC,CAAA1D,IAAA,eAAAc,MAED,SAAa4C,EAAIq7B,GAEb,IAAIjgC,EAAY,CACZ,WACA,kBACA,oBACA,aAAeuC,KAAK1D,QAAQG,MAG5BiF,EAAO3B,EAAAA,IAAIf,IAAIgB,KAAK1D,QAAS,cAE5BoE,EAAAA,IAAIsF,QAAQtE,KACbA,EAAO/F,EAAAA,OAAOC,MAAM,WAGxB,IAAI2hC,EAAUv7B,EAAAA,IAAIO,KAAK,SAAU,CAC7B9E,UAAWA,EAAUgG,KAAK,KAAMjB,UAAW,SAAFC,OAAWf,EAAI,aAG5D67B,EAAQ56B,GAAG,QAAS,WAChB+6B,GACJ,GAEAH,EAAQ76B,SAASL,EACrB,GAAC,CAAA1D,IAAA,aAAAc,MAED,SAAW89B,EAASK,GACpB,IAAAv6B,EAAA,KACU1B,EAAQ3B,KAAK1D,QAAbqF,IAENK,EAAAA,IAAIC,KAAKxG,QAAQkH,GAAG,UAAW,SAACC,GACT,KAAdA,EAAEC,UACHD,EAAEE,kBAAmB86B,KAEN,KAAdh7B,EAAEC,UACHD,EAAEsY,iBAAkBqiB,IAE5B,EAAG,CAAE57B,IAAAA,IAELK,EAAAA,IAAIC,KAAKjC,KAAK8B,OAAOa,GAAG,QAAS,SAACC,GACvBZ,EAAAA,IAAIC,KAAKW,EAAEI,QAAQC,OAAO,qBAC9B26B,GAEP,EAAG,CAAEj8B,IAAAA,IAELjB,EAAAA,IAAIwC,MAAM,WACNlB,EAAAA,IAAIC,KAAKoB,EAAKvB,OAAOqB,SAAS,UAClC,EACJ,GAAC,CAAAxE,IAAA,eAAAc,MAED,WAEI,IAAMkC,EAAQ3B,KAAK1D,QAAbqF,IAENK,EAAAA,IAAIC,KAAKxG,QAAQ2H,IAAI,UAAW,KAAM,CAClCzB,IAAAA,IAGJK,EAAAA,IAAIC,KAAKjC,KAAK8B,OAAOsB,IAAI,QAAS,KAAM,CACpCzB,IAAAA,GAER,GAAC,CAAAhD,IAAA,SAAAc,MAED,SAAO89B,EAASK,GAChB,IAAAtzB,EAAA,KACQhH,EAAMvD,EAAAA,IAAIf,IAAIgB,KAAK1D,QAAS,QAAS,IAEpCoE,EAAAA,IAAIC,SAAS2C,KACdA,EAAMA,EAAIpD,MAAM,MAGpB,IAAIzC,EAAY,CACZ,YACA,cAAgBuC,KAAK1D,QAAQG,KAC7B,cAAgBuD,KAAK1D,QAAQJ,MAGjCuB,EAAU8F,KAAK,iBAEV9H,OAAOkgB,KACRle,EAAU8F,KAAK,aAGnB,IAAIzB,EAAQE,EAAAA,IAAIO,KAAK,MAAO,CACxB9E,UAAWoD,EAAAA,IAAI2C,MAAM/F,EAAW6F,GAAKG,KAAK,OAG9C3B,EAAM2d,KAAK,eAAgBzf,KAAK1D,QAAQqF,KAExC,IAAI+B,EAAQ1B,EAAAA,IAAIO,KAAK,MAAO,CACxB9E,UAAW,CAAC,qBAGhBiG,EAAMhB,SAASZ,GAEf,IAAIK,EAAOH,EAAAA,IAAIO,KAAK,MAAO,CACvB9E,UAAW,CAAC,qBAGhB0E,EAAKO,SAASgB,GAEd1D,KAAK2D,WAAWxB,GAChBnC,KAAK4D,WAAWzB,GAEhB,IAAI27B,EAAS97B,EAAAA,IAAIO,KAAK,MAAO,CACzB9E,UAAW,CAAC,uBAGhBqgC,EAAOp7B,SAASgB,GAEhB1D,KAAK+9B,aAAaD,EAAQF,GAC1B59B,KAAKg+B,cAAcF,EAAQP,GAE3Bv7B,EAAAA,IAAIC,KAAKC,SAASC,MAAMC,IAAI,CACxB,SAAY,WAGhBN,EAAMY,SAASR,SAASC,MAExB0B,sBAAsB,WAClByG,EAAKxG,WAAWy5B,EAASK,EAC7B,GAEA59B,KAAK8B,MAAQA,EAAM9C,IAAI,EAC3B,IAAC,EAAAL,IAAA,OAAAc,MAlND,WACA,IAD0B2K,EAAEvK,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,kBAAM,CAAK,EAEtC,OAAO,IAAI49B,EAFI59B,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,CAAC,GAEgBo+B,QAAQ7zB,EAC/C,IAAC,CAbsB,GA6N1B3I,GA7NYg8B,GAAc,QAER,WA6NnB,Y,8pBCjOsD,SAAAlyB,GAAAC,GAAA,yBAAAA,GAAA,oBAAA3M,OAAAM,UAAAsM,SAAApM,KAAAmM,MAAAE,EAAAA,EAAAA,SAAAF,EAAA,CAEtD,UAEInG,KAAM,iBAENtJ,MAAO,CAEHC,WAAY,oBAGJ,MAAO,EACX,EACAE,KAAM,CAACmE,QAGXvD,WAAY,oBAGJ,MAAO,EACX,EACAZ,KAAM,CAACmE,QAGX69B,MAAO,oBAGC,MAAO,EACX,EACAhiC,KAAM,CAACmE,QAGX/D,QAAS,oBAGD,MAAO,EACX,EACAJ,KAAM,CAACmE,QAGX1D,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGX9I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX4mB,QAAS,oBAGD,MAAO,OACX,EACAhwB,KAAM,CAACoJ,SAGX8yB,UAAW,oBAGH,MAAO,OACX,EACAl8B,KAAM,CAACoJ,SAGX6yB,UAAW,oBAGH,MAAO,OACX,EACAj8B,KAAM,CAACoJ,SAGXse,UAAW,oBAGH,MAAO,UACX,EACA1nB,KAAM,CAACoJ,SAGX64B,aAAc,oBAGN,MAAO,UACX,EACAjiC,KAAM,CAACoJ,UAKfkQ,SAAU,CAENC,MAAK,WACD,UAAW,iBAAkBha,UACzBia,UAAUC,iBAClB,EAEAC,UAAS,WACL,OAAO5V,KAAKyV,MAAQ,aAChB,WACR,EAEAI,UAAS,WACL,OAAO7V,KAAKyV,MAAQ,YAChB,WACR,EAEAK,QAAO,WACH,OAAO9V,KAAKyV,MAAQ,WAChB,SACR,GAIJ7P,KAAI,WAEA,MAAO,CACHC,UAAW7F,KAAKhE,WAChBoiC,UAAWp+B,KAAKk+B,MAExB,EAEA12B,MAAO,CAEHxL,WAAU,SAACyD,GACFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,EAEAy+B,MAAK,SAACz+B,GACGA,IAAUO,KAAKo+B,YAChBp+B,KAAKo+B,UAAY3+B,EAEzB,GAIJqG,QAAS,CAELu4B,cAAa,WAETr+B,KAAK6T,MAAM,oBAAqB7T,KAAKo+B,UACjCp+B,KAAK6F,UAAY7F,KAAKlD,WAC9B,EAEA6xB,QAAO,SAACpM,GACR,IAAA5iB,EAAA,KACI,OAAO,SAACkb,GAAK,OAAKlb,EAAK2+B,UAAU/b,EAAS1H,EAAM,CACpD,EAEA0jB,SAAQ,SAAChc,GACT,IAAAlf,EAAA,KACI,OAAO,SAACwX,GAAK,OAAKxX,EAAKyQ,WAAWyO,EAAS1H,EAAM,CACrD,EAEAyjB,UAAS,SAAC/b,GACV,IAAAjY,EAAA,KAEI2T,aAAaje,KAAKkD,OAOlBlD,KAAKkD,MAAQgB,WALK,WACdoG,EAAKuJ,MAAM,eACPvJ,EAAK8zB,UAAY7b,EACzB,EAEqC,IACzC,EAEAzO,WAAU,SAACyO,GACX,IAAAzX,EAAA,KADoB+P,EAAKhb,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAExBoe,aAAaje,KAAKw+B,YAEXx+B,KAAKy+B,YACRz+B,KAAKy+B,UAAY,GAGrBz+B,KAAKy+B,YAEL,IAAIvS,EAAUlsB,KAAKyV,MAAQ,QACvBzV,KAAKksB,QAQT,GANAlsB,KAAKw+B,WAAat6B,WAAW,kBACzB4G,EAAK2zB,UAAY,CAAC,EAAE,KAExBz+B,KAAK0+B,WAAax6B,WAAW,kBACzB4G,EAAKwzB,UAAU/b,EAAQ,EAAE,KAEL,IAAnBviB,KAAKy+B,WAA+B,UAAZvS,EACzB,OAAOlsB,KAAKs+B,UAAU/b,EAAS1H,GAG9BA,GACDA,EAAMK,iBAGVlb,KAAKw+B,WAAat6B,WAAW,kBACzB4G,EAAK6zB,eAAepc,EAAQ,EAAE,GACtC,EAEAoc,eAAc,SAACpc,GAEXtE,aAAaje,KAAK0+B,YAElB1+B,KAAKy+B,UAAY,EAEjBz+B,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAY0c,EACzB,GAIJiV,cAAa,WAET,IAAI/5B,EAAY,CACZ,mBACA,qBAAuBuC,KAAKvD,MAGhC,OAAAgJ,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKN,KAAK,mBAAVM,GACAA,KAAKN,KAAK,cAAVM,GACAA,KAAKN,KAAK,mBAAVM,IAGd,EAEAs4B,aAAY,SAACpY,GACb,IAAAzO,EADmB8Q,EAAO1iB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,GAErBJ,EAAQM,EAAAA,IAAIf,IAAIkhB,EAAMlgB,KAAKm4B,WAE3B16B,EAAY,CACZ,oBAGCoD,EAAAA,IAAIqF,IAAIlG,KAAK6F,UAAWqa,EAAKlgB,KAAKm4B,aACnC16B,EAAU8F,KAAK,YAGnB,IAAI5G,EAAWoD,EAAAA,IAAIf,IAAIkhB,EAAMlgB,KAAKm+B,cAAc,GAE3CxhC,GACDc,EAAU8F,KAAK,cAGnB,IAAIxH,EAAQ,CACRU,KAAMuD,KAAKvD,KACXP,KAAM8D,KAAK9D,KACXmxB,YAAY,GAGXxsB,EAAAA,IAAI4jB,KAAKzkB,KAAK6F,aAAepG,IAC9B1D,EAAM6B,KAAOqH,KAAK6kB,MAAME,SAG5B,IAAIzF,EAAc1jB,EAAAA,IAAI2C,MAAM3C,EAAAA,IAAI4L,MAAM8V,GAAU,CAAC9iB,IAE3B,UAAjBO,KAAKksB,UACNnwB,EAAMsgC,YAAc37B,EAAAA,IAAI4U,UAAUtV,KAAK2uB,QAAQpK,GAAc,KAG1D5nB,IACHZ,EAAM,KAAOiO,EAAAA,IAAIC,QAAQjK,KAAK4V,YAAc5V,KAAKu+B,SAASha,IAG9D,IAAIR,EAAWhkB,EAAAA,IAAIf,IAAIkhB,EAAMlgB,KAAK4jB,WAMlC,OAJQ7nB,EAAM6B,MAAU8C,EAAAA,IAAIsF,QAAQ+d,KAChChoB,EAAM6B,KAAOqH,KAAK6kB,MAAMC,aAG5BtkB,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,mBAAAZ,EAAAA,EAAAA,YAAA,OAC2B7S,GAAe1B,GAAKwP,GAAAkG,EACrC1R,EAAAA,IAAIf,IAAIkhB,EAAMlgB,KAAKo4B,YAAU3mB,EAAA,2BAAAA,EAAA,GAG3C,EAEAymB,cAAa,SAAC/lB,GACd,IAAAK,EAAAnH,EAAA,KADqBkX,EAAO1iB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,GAE3B,OAAKa,EAAAA,IAAIsF,QAAQmM,GACN,MAGX1M,EAAAA,EAAAA,aAAA,0CAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,yBAE8B,GAAI3F,GAAAiH,EAElB3R,EAAAA,IAAIC,KAAKqR,EAAO,SAAC+N,GACb,OAAO7U,EAAK3L,KAAK,eAAV2L,CAA0B6U,EAAMqC,EAC3C,IAAE/P,EAAA,2BAAAA,EAAA,KAKtB,EAEAosB,cAAa,WACb,IAAAtzB,EAAA,KACQuzB,EAAa,CACb7+B,KAAKN,KAAK,gBAAVM,CAA2BA,KAAK1D,UAGhC6V,EAAQnS,KAAK1D,QAASimB,EAAU,GAsBpC,OApBA1hB,EAAAA,IAAIC,KAAKd,KAAKo+B,UAAW,SAAC3+B,GAEtB,GAAO0S,EAAP,CAIAoQ,EAAQhf,KAAK9D,GAEb,IAAIygB,EAAOrf,EAAAA,IAAIoB,KAAKkQ,EAAK1Q,GAAA,GACpB6J,EAAK6sB,UAAY14B,IAGtB0S,EAAQpS,EAAAA,IAAIf,IAAIkhB,EAAM5U,EAAKsY,WAE3B,IAAItnB,EAAUgP,EAAK5L,KAAK,gBAAV4L,CACT6G,EAAOoQ,GAEZsc,EAAWt7B,KAAKjH,EAbhB,CAcJ,GAEOuiC,CACX,EAEA96B,OAAM,WAEF,IAAItG,EAAY,CACZ,mBACA,qBAAuBuC,KAAKvD,MAOhC,OAJKuD,KAAKrD,UACNc,EAAU8F,KAAK,eAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CAAIuC,KAAKN,KAAK,gBAAVM,IAEjC,G,8pBCrWJ,UAEIqF,KAAM,YAENtJ,MAAO,CAEHC,WAAY,oBAGJ,MAAO,EACX,EACAE,KAAM,CAACmE,QAGXvD,WAAY,oBAGJ,MAAO,EACX,EACAZ,KAAM,CAACmE,QAGX/D,QAAS,oBAGD,MAAO,EACX,EACAJ,KAAM,CAACmE,QAGXukB,QAAS,oBAGD,OAAO,IACX,GAGJtnB,YAAa,oBAGL,MAAO,eACX,EACApB,KAAM,CAACoJ,SAGX+uB,UAAW,oBAGH,MAAO,UACX,EACAn4B,KAAM,CAACoJ,SAGX3I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXxI,UAAW,oBAGH,OAAO,CACX,EACAb,KAAM,CAACqJ,UAGX9I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGXulB,SAAU,oBAGF,MAAO,cACX,EACA3uB,KAAM,CAACoJ,SAGX4mB,QAAS,oBAGD,MAAO,OACX,EACAhwB,KAAM,CAACoJ,SAGX8yB,UAAW,oBAGH,MAAO,OACX,EACAl8B,KAAM,CAACoJ,SAGX6yB,UAAW,oBAGH,MAAO,OACX,EACAj8B,KAAM,CAACoJ,SAGXse,UAAW,oBAGH,MAAO,UACX,EACA1nB,KAAM,CAACoJ,SAGX64B,aAAc,oBAGN,MAAO,UACX,EACAjiC,KAAM,CAACoJ,UAKfM,KAAI,WAEA,MAAO,CACHC,UAAW7F,KAAKhE,WAChBoiC,UAAWp+B,KAAKhE,WAChBkxB,OAAO,EAEf,EAEApnB,QAAS,CAELu4B,cAAa,WAETr+B,KAAKktB,OAAQ,EAEbltB,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAY7F,KAAKo+B,UAAYp+B,KAAKlD,WAC/C,EAEAgiC,gBAAe,SAACr/B,GAEZO,KAAKktB,OAAQ,EAEbltB,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAYpG,EACzB,EAEAs/B,gBAAe,SAACt/B,GAEZO,KAAK6T,MAAM,eACP7T,KAAKo+B,UAAY3+B,EACzB,EAEAu/B,eAAc,SAACv/B,GAEXO,KAAKktB,MAAQztB,CACjB,GAIJ+H,MAAO,CAEHxL,WAAU,SAACyD,GACFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,GAIJk3B,iBAAgB,WAEZ,IAAO32B,KAAKjD,WAAa2D,EAAAA,IAAIsF,QAAQhG,KAAK6F,WACtC,OAAO,KAGX,IAAI9J,EAAQ,CAAC,EAMb,OAJOiE,KAAKrD,WACRZ,EAAM43B,YAAc3zB,KAAKq+B,gBAG7B54B,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,yCACoDvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,WACtCR,KAAK6kB,MAAM0H,OAAK,OAGvC,EAEAoF,iBAAgB,WAEZ,OAAAnxB,EAAAA,EAAAA,aAAA,iDAAAA,EAAAA,EAAAA,aAAA,WAEmBR,KAAK6kB,MAAM+M,WAAS,OAG3C,EAEAK,iBAAgB,WAChB,IAAAv3B,EAAA,KACQwS,EAAQnS,KAAK1D,QAASuiC,EAAa,GAEvC,OAAKn+B,EAAAA,IAAIsF,QAAQhG,KAAK6F,YAClBJ,EAAAA,EAAAA,aAAA,yCAEUzF,KAAKpE,MAAMoE,KAAK1C,gBAK9BuD,EAAAA,IAAIC,KAAKd,KAAK6F,UAAW,SAACpG,GAEtB,GAAO0S,EAAP,CAIA,IAAI+N,EAAOrf,EAAAA,IAAIoB,KAAKkQ,EAAK1Q,GAAA,GACpB9B,EAAKw4B,UAAY14B,IAGtB0S,EAAQpS,EAAAA,IAAIf,IAAIkhB,EAAMvgB,EAAKikB,WAE3B,IAAIqb,GAASx5B,EAAAA,EAAAA,aAAA,mCAAAA,EAAAA,EAAAA,aAAA,aAEG1F,EAAAA,IAAIf,IAAIkhB,EAAMvgB,EAAKy4B,eAInCyG,EAAWt7B,KAAK07B,EAdhB,CAeJ,IAEAx5B,EAAAA,EAAAA,aAAA,mCAEUo5B,IAGd,EAEArH,cAAa,WAMT,OAAA/xB,EAAAA,EAAAA,aAAA,aAJgB,CACZ,wBAIqB,CACfzF,KAAKN,KAAK,mBAAVM,GACAA,KAAKN,KAAK,mBAAVM,GACAA,KAAKN,KAAK,mBAAVM,IAGd,EAEA6e,YAAW,WACX,IAAApN,EA/Q6CjG,EAgRrCksB,GAASjyB,EAAAA,EAAAA,aAAA,qDAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,uBAEe,IAlRa1F,EAkRTiG,EAAGzR,KAAKpE,MAAMoE,KAAKq0B,WAlRV,mBAAA7oB,GAAA,oBAAA3M,OAAAM,UAAAsM,SAAApM,KAAAmM,MAAAE,EAAAA,EAAAA,SAAAF,GAkRoBiG,EAAA,2BAAAA,EAAA,OAI7D,GAAK/Q,EAAAA,IAAIsF,QAAQhG,KAAK1D,SAClB,OAAOo7B,EAGX,IAAI37B,EAAQgE,EAAAA,IAAIoN,OAAOnN,KAAKmI,OAAQ,CAAC,cAAe,CAChD+1B,MAAOl+B,KAAKo+B,UACZpiC,WAAYgE,KAAK6F,YAMrB,OAHA9J,EAAM,kBAAoBiE,KAAK++B,gBAC/BhjC,EAAM,uBAAyBiE,KAAK8+B,iBAEpCr5B,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,mBAAAZ,EAAAA,EAAAA,YAAA,2BACiDvU,GAAK,KAE1D,EAEAi8B,cAAa,WACb,IAAA30B,EAAA,KACQtH,EAAQ,CACRmwB,QAAS,QACT9Y,MAAO,EACP3W,KAAMuD,KAAKvD,KACXouB,SAAU7qB,KAAK6qB,SACfuB,aAAa,EACbzvB,SAAUqD,KAAKrD,UAGnB,OAAA8I,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aAAAZ,EAAAA,EAAAA,YAAA,0BACoCjN,EAAK6pB,MAAK,+BAAA/b,GAAA,OAAV9N,EAAK6pB,MAAK/b,CAAA,GAAMpV,GAAK,CAC7C8wB,IAAK7sB,KAAKN,KAAK,gBAG/B,EAEAqE,OAAM,WAEF,IAAItG,EAAY,CACZ,aACA,eAAiBuC,KAAK9D,KACtB,eAAiB8D,KAAKvD,MAmB1B,OAhBKiE,EAAAA,IAAIsF,QAAQhG,KAAK6F,YAClBpI,EAAU8F,KAAK,WAGdvD,KAAKjD,WACNU,EAAU8F,KAAK,eAGdvD,KAAKktB,OACNzvB,EAAU8F,KAAK,WAGdvD,KAAKrD,UACNc,EAAU8F,KAAK,eAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKN,KAAK,gBAAVM,GACDA,KAAKN,KAAK,gBAAVM,IAGb,GCvVkD,SAAAuL,GAAAC,GAAA,yBAAAA,GAAA,oBAAA3M,OAAAM,UAAAsM,SAAApM,KAAAmM,MAAAE,EAAAA,EAAAA,SAAAF,EAAA,CAEtD,UAEInG,KAAM,mBAENtJ,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJc,WAAY,oBAGJ,OAAO,IACX,GAGJoiC,OAAQ,oBAGA,OAAO,IACX,GAGJC,YAAa,oBAGL,OAAO,IACX,GAGJC,OAAQ,oBAGA,OAAO,IACX,GAGJC,YAAa,oBAGL,OAAO,IACX,GAGJC,QAAS,oBAGD,OAAO,IACX,GAGJC,QAAS,oBAGD,OAAO,IACX,GAGJ9iC,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX21B,MAAO,oBAGC,OAAO,CACX,EACA/+B,KAAM,CAACqJ,UAGXi6B,YAAa,oBAGL,OAAO,CACX,EACAtjC,KAAM,CAACgB,SAGXP,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXhI,OAAQ,oBAGA,MAAO,qBACX,EACArB,KAAM,CAACoJ,SAGXm6B,SAAU,oBAGF,MAAO,CACH,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAE5C,EACAvjC,KAAM,CAACmE,QAGXq/B,OAAQ,oBAGA,MAAO,CACH,MAAO,MAAO,MAAO,MAAO,MAAO,MACnC,MAAO,MAAO,MAAO,MAAO,MAAO,MAE3C,EACAxjC,KAAM,CAACmE,SAKfmV,SAAU,CAENmqB,UAAS,WAEL,OAAO3/B,KAAK4/B,UAAUC,UAC1B,EAEAC,WAAU,WAEN,OAAO9/B,KAAK4/B,UAAUG,WAC1B,GAIJv4B,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,UAAUtI,OAAOyC,KAAKzC,UACtCyC,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAK9C,GAElC,EAEAy/B,OAAM,SAACz/B,GAEEA,IAAUO,KAAKigC,WAAW1iC,OAAOyC,KAAKzC,UACvCyC,KAAKigC,WAAaD,EAAAA,IAAIz9B,KAAK9C,GAEnC,EAEA2/B,OAAM,SAAC3/B,GAEEA,IAAUO,KAAKkgC,WAAW3iC,OAAOyC,KAAKzC,UACvCyC,KAAKkgC,WAAaF,EAAAA,IAAIz9B,KAAK9C,GAEnC,GAIJmG,KAAI,WAEA,MAAO,CACHu6B,SAAU,OACVC,WAAY,KACZC,YAAa,KACbC,YAAa,KACbz6B,UAAWm6B,EAAAA,IAAIz9B,KAAKvC,KAAKhE,WAAYgE,KAAKzC,QAC1CqiC,UAAWI,EAAAA,IAAIz9B,KAAKvC,KAAKhE,WAAYgE,KAAKzC,QAC1C0iC,WAAYD,EAAAA,IAAIz9B,KAAKvC,KAAKk/B,QAC1BgB,WAAYF,EAAAA,IAAIz9B,KAAKvC,KAAKo/B,QAElC,EAEAt5B,QAAS,CAELy6B,SAAQ,WAEJvgC,KAAKmgC,SAAW,MACpB,EAEAK,UAAS,WAELxgC,KAAKmgC,SAAW,OACpB,EAEAM,SAAQ,WAEJzgC,KAAKmgC,SAAW,MACpB,EAEAO,UAAS,SAACrpB,GAED3W,EAAAA,IAAIC,SAAS0W,KACdA,EAAM2oB,EAAAA,IAAIz9B,KAAK8U,IAGd3W,EAAAA,IAAIsF,QAAQhG,KAAKhE,YAClBqb,EAAIspB,YAEJtpB,EAAIupB,UAAU5gC,KAAK6F,WAIvB7F,KAAK4/B,UAAYvoB,EAAI5K,QAGrBzM,KAAK6F,UAAYwR,EAAI5K,QAErBzM,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAUtI,OAAOyC,KAAKzC,QACnC,EAEAsjC,WAAU,SAACxpB,GAEF3W,EAAAA,IAAIC,SAAS0W,KACdA,EAAM2oB,EAAAA,IAAIz9B,KAAK8U,IAGnBrX,KAAK4/B,UAAYvoB,EAAI5K,QAErBzM,KAAKugC,UACT,EAEAO,WAAU,SAACzpB,GAEPrX,KAAKogC,WAAa/oB,EAAI5K,OAC1B,EAEAs0B,UAAS,SAAC1pB,GAED3W,EAAAA,IAAIC,SAAS0W,KACdA,EAAM2oB,EAAAA,IAAIz9B,KAAK8U,IAGnBrX,KAAK4/B,UAAYvoB,EAAI5K,QAErBzM,KAAKwgC,WACT,EAEAQ,WAAU,SAAC3pB,GAEFrX,KAAKqgC,cAAiBrgC,KAAKsgC,cAC5BtgC,KAAKsgC,YAAcjpB,EAAI5K,SAGpBzM,KAAKqgC,aAAiBrgC,KAAKsgC,cAC9BtgC,KAAKqgC,YAAchpB,EAAI5K,SAGpBzM,KAAKqgC,aAAiBrgC,KAAKsgC,cAIlCtgC,KAAKigC,WAAajgC,KAAKqgC,YAAY5zB,QACnCzM,KAAKkgC,WAAalgC,KAAKsgC,YAAY7zB,QAEnCzM,KAAK6T,MAAM,gBACP7T,KAAKigC,WAAW1iC,OAAOyC,KAAKzC,SAEhCyC,KAAK6T,MAAM,gBACP7T,KAAKkgC,WAAW3iC,OAAOyC,KAAKzC,SAEhCyC,KAAKqgC,YAAc,KACnBrgC,KAAKsgC,YAAc,KAEnBtgC,KAAK6T,MAAM,gBAAiB,CACxB7T,KAAKigC,WAAW1iC,OAAOyC,KAAKzC,QAC5ByC,KAAKkgC,WAAW3iC,OAAOyC,KAAKzC,UAEpC,GAIJ0jC,kBAAiB,SAAC95B,GAEd,IAAIpL,EAAQ,CACRG,KAAM8D,KAAK9D,KACX61B,OAAO,EACPp0B,QAAQ,EACRC,KAAMqH,KAAK6kB,MAAMoX,UACjBvX,QAASxiB,GAGb,OAAA1B,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAAqBnV,EAAK,KAC9B,EAEAolC,kBAAiB,SAACh6B,GAEd,IAAIpL,EAAQ,CACRG,KAAM8D,KAAK9D,KACX61B,OAAO,EACPp0B,QAAQ,EACRC,KAAMqH,KAAK6kB,MAAMC,WACjBJ,QAASxiB,GAGb,OAAA1B,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAAqBnV,EAAK,KAC9B,EAEAqlC,mBAAkB,WAEd,IAAIrlC,EAAQ,CACR4tB,QAAS3pB,KAAKwgC,WAGda,EAAa,CACbrhC,KAAK0/B,OAAO1/B,KAAK4/B,UAAU0B,UAG3BA,EAAQthC,KAAK4/B,UAAUnzB,QACtB80B,UAAUvhC,KAAKw/B,YAAc,GAMlC,OAJK8B,EAAMA,UAAYthC,KAAK4/B,UAAU0B,SAClCD,EAAW99B,KAAKvD,KAAK0/B,OAAO4B,EAAMA,WAGtC77B,EAAAA,EAAAA,aAAA,QAAA6K,EAAAA,EAAAA,YAAA,oCACgDvU,GAAK,CAC3CslC,EAAW59B,KAAK,QAG9B,EAEA+9B,kBAAiB,WAEb,IAAIzlC,EAAQ,CACR4tB,QAAS3pB,KAAKygC,UAGdgB,EAAY,CACZzhC,KAAK4/B,UAAU8B,QAGfJ,EAAQthC,KAAK4/B,UAAUnzB,QACtB80B,UAAUvhC,KAAKw/B,YAAc,GAMlC,OAJK8B,EAAMI,SAAW1hC,KAAK4/B,UAAU8B,QACjCD,EAAUl+B,KAAK+9B,EAAMI,SAGzBj8B,EAAAA,EAAAA,aAAA,QAAA6K,EAAAA,EAAAA,YAAA,mCAC+CvU,GAAK,CAC1C0lC,EAAUh+B,KAAK,QAG7B,EAEAk+B,cAAa,SAAApyB,GACb,IADgBqyB,EAAIryB,EAAJqyB,KAAMlE,EAAInuB,EAAJmuB,KAElB,OAAAj4B,EAAAA,EAAAA,aAAA,8CAAAA,EAAAA,EAAAA,aAAA,6CAGczF,KAAKN,KAAK,qBAAVM,GACAA,KAAKN,KAAK,oBAAVM,MAAgCyF,EAAAA,EAAAA,aAAA,0CAGhCzF,KAAKN,KAAK,oBAAVM,CAA+B4hC,MAAKn8B,EAAAA,EAAAA,aAAA,0CAGpCzF,KAAKN,KAAK,oBAAVM,CAA+B09B,MAIjD,EAEAmE,eAAc,SAACxqB,EAAKiqB,GACpB,IAAA3hC,EAAA,KACQlC,EAAY,CACZ,2BAGC4Z,EAAIyqB,aACLrkC,EAAU8F,KAAK,WAGFvD,KAAK6F,UAAUk8B,SAC5B1qB,EAAIyqB,UAAU9hC,KAAK6F,YAGnBpI,EAAU8F,KAAK,cAGd8T,EAAIiqB,UAAYA,EAAMA,SACvB7jC,EAAU8F,KAAK,aAGnB,IAAIy+B,GAAmBhiC,KAAKs/B,SACxBjoB,EAAI4qB,MAAMjiC,KAAKs/B,UAAYjoB,EAAIyqB,UAAU9hC,KAAKs/B,SAE9C4C,GAAkBliC,KAAKu/B,SACvBloB,EAAI8qB,OAAOniC,KAAKu/B,UAAYloB,EAAIyqB,UAAU9hC,KAAKu/B,SAE5CyC,GAAoBE,GACvBzkC,EAAU8F,KAAK,cAGnB,IAAIxH,EAAQ,CAAC,EAMb,OAJKimC,GAAkBE,IACnBnmC,EAAM4tB,QAAU,kBAAMhqB,EAAK+gC,UAAUrpB,EAAI,IAG7C5R,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,aACpB4R,EAAI9Z,OAAO,SAG/B,EAEA6kC,oBAAmB,SAAC/qB,EAAKiqB,GACzB,IAAAj+B,EAAA,KACQ5F,EAAY,CACZ,2BAGC4Z,EAAIyqB,UAAU,QACfrkC,EAAU8F,KAAK,WAGd8T,EAAIiqB,UAAYA,EAAMA,SACvB7jC,EAAU8F,KAAK,aAGnB,IAAI8+B,EAAW,EAEPriC,KAAKqgC,aACTgC,IAGIriC,KAAKsgC,aACT+B,IAGJ,IAAIC,EAActiC,KAAKigC,WAAW8B,SAC9B/hC,KAAKkgC,WAAW6B,QAEpB,GAAkB,IAAbM,GAAkBC,EAAc,CAE5BjrB,EAAIkrB,QAAQviC,KAAKigC,WAAYjgC,KAAKkgC,cACnCziC,EAAU8F,KAAK,aACf9F,EAAU8F,KAAK,eAGnB,IAAIi/B,EAAcxiC,KAAKigC,WAAWkC,OAAOniC,KAAKkgC,YAEzC7oB,EAAIyqB,UAAU9hC,KAAKigC,cACpBxiC,EAAU8F,KAAKi/B,EAAc,WAAa,YAC1C/kC,EAAU8F,KAAK,eAGd8T,EAAIyqB,UAAU9hC,KAAKkgC,cACpBziC,EAAU8F,KAAKi/B,EAAc,WAAa,YAC1C/kC,EAAU8F,KAAK,cAGvB,CAEA,GAAkB,IAAb8+B,GAAkBriC,KAAKqgC,YAAc,CAEjChpB,EAAIkrB,QAAQviC,KAAKqgC,YAAargC,KAAKogC,aACpC3iC,EAAU8F,KAAK,aAGnB,IAAIi/B,EAAcxiC,KAAKqgC,YAAY8B,OAAOniC,KAAKogC,YAE1C/oB,EAAIyqB,UAAU9hC,KAAKqgC,cACpB5iC,EAAU8F,KAAKi/B,EAAc,WAAa,YAGzCnrB,EAAIyqB,UAAU9hC,KAAKogC,aACpB3iC,EAAU8F,KAAKi/B,EAAc,WAAa,WAGlD,CAEA,IAAIR,GAAmBhiC,KAAKs/B,SACxBjoB,EAAI4qB,MAAMjiC,KAAKs/B,UAAYjoB,EAAIyqB,UAAU9hC,KAAKs/B,SAE9C4C,GAAkBliC,KAAKu/B,SACvBloB,EAAI8qB,OAAOniC,KAAKu/B,UAAYloB,EAAIyqB,UAAU9hC,KAAKu/B,SAE5CyC,GAAoBE,GACvBzkC,EAAU8F,KAAK,cAGnB,IAAIxH,EAAQ,CACRqtB,aAAc,WAAF,OAAQ/lB,EAAKy9B,WAAWzpB,EAAI,GAO5C,OAJK2qB,GAAkBE,IACnBnmC,EAAM4tB,QAAU,kBAAMtmB,EAAK29B,WAAW3pB,EAAI,IAG9C5R,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,aACpB4R,EAAI9Z,OAAO,SAG/B,EAEAklC,WAAU,WACV,IAAAn4B,EAAA,KAQQo4B,EACA7hC,EAAAA,IAAIC,KAAKd,KAAKy/B,SAAU,SAACkD,GACrB,OAAAl9B,EAAAA,EAAAA,aAAA,0CAAAA,EAAAA,EAAAA,aAAA,aAEgB6E,EAAK1O,MAAM+mC,MAG/B,GAGAvuB,EAAapU,KAAKN,KAAK,kBAEtBM,KAAKi7B,QACN7mB,EAAapU,KAAKN,KAAK,wBAG3B,IAAIiyB,EAAW,SAAC2P,GAAK,OACjBzgC,EAAAA,IAAIC,KAAKD,EAAAA,IAAI6d,MAAM4iB,EAAMsB,eAAgB,GAAI,SAAChkB,GAC1C,OAAAnZ,EAAAA,EAAAA,aAAA,0CAEU5E,EAAAA,IAAIC,KAAK8d,EAAQ,SAACF,GAAK,OAAKtK,EAAWsK,EAAO4iB,EAAM,IAGlE,EAAE,EAGFuB,EACAhiC,EAAAA,IAAIC,KAAKD,EAAAA,IAAI0B,KAAKvC,KAAKw/B,aAAc,SAAClkB,GAElC,IAAIgmB,EAAQh3B,EAAKs1B,UAAUnzB,QACtB80B,UAAUjmB,EAAS,GAExB,OAAA7V,EAAAA,EAAAA,aAAA,4CAAAA,EAAAA,EAAAA,aAAA,4CAGci9B,KAAUj9B,EAAAA,EAAAA,aAAA,0CAGVksB,EAAS2P,MAI3B,GAGJ,OAAA77B,EAAAA,EAAAA,aAAA,+CAAAA,EAAAA,EAAAA,aAAA,4CAGczF,KAAKN,KAAK,gBAAVM,CAA2B,CAAE4hC,KAvDhC,WACPt3B,EAAKs1B,UAAYt1B,EAAKs1B,UAAUkD,WACpC,EAqDiDpF,KApDtC,WACPpzB,EAAKs1B,UAAYt1B,EAAKs1B,UAAUmD,WACpC,OAkDwDt9B,EAAAA,EAAAA,aAAA,4CAG1Co9B,KAIlB,EAEAG,gBAAe,SAAC3rB,GAChB,IAAAvM,EAAA,KACQrN,EAAY,CACZ,6BAGC4Z,EAAI4rB,MAAMjjC,KAAK4/B,UAAW,WAC3BniC,EAAU8F,KAAK,cAGd8T,EAAIiqB,UAAYtB,EAAAA,IAAIz9B,KAAK,OAAO++B,SACjC7jC,EAAU8F,KAAK,aAGnB,IAAIxH,EAAQ,CACR4tB,QAAS,WAAF,OAAQ7e,EAAK+1B,WAAWxpB,EAAI,GAGvC,OAAA5R,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,aACpBzF,KAAKpE,MAAMoE,KAAK0/B,OAAOroB,EAAIiqB,aAG/C,EAEA4B,YAAW,WACX,IAAAzxB,EAAApG,EAAA,KASI,OAAA5F,EAAAA,EAAAA,aAAA,gDAAAA,EAAAA,EAAAA,aAAA,4CAGczF,KAAKN,KAAK,gBAAVM,CAA2B,CAAE4hC,KAXhC,WACPv2B,EAAKu0B,UAAYv0B,EAAKu0B,UAAUuD,UACpC,EASiDzF,KAPtC,WACPryB,EAAKu0B,UAAYv0B,EAAKu0B,UAAUwD,UACpC,OAKwD39B,EAAAA,EAAAA,aAAA,2CAAAA,EAAAA,EAAAA,aAAA,0CAItC5E,EAAAA,IAAIC,KAAKd,KAAK8/B,WAAY9/B,KAAKN,KAAK,yBAAmB+F,EAAAA,EAAAA,aAAA,6CAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,iBAI9ClR,KAAK9D,KAAI,MAA0B,EAAI,QAAW8D,KAAKugC,UAAQh1B,GAAAkG,EACxEzR,KAAKpE,MAAM,YAAU6V,EAAA,2BAAAA,EAAA,OAK3C,EAEA4xB,eAAc,SAAChsB,GACf,IAAA/L,EAAA,KACQ7N,EAAY,CACZ,4BAGC4Z,EAAI4rB,MAAMjjC,KAAK4/B,UAAW,SAC3BniC,EAAU8F,KAAK,cAGd8T,EAAIqqB,SAAW1B,EAAAA,IAAIz9B,KAAK,OAAOm/B,QAChCjkC,EAAU8F,KAAK,aAGnB,IAAIxH,EAAQ,CACR4tB,QAAS,WAAF,OAAQre,EAAKy1B,UAAU1pB,EAAI,GAGtC,OAAA5R,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,aACpB4R,EAAIqqB,UAGxB,EAEA4B,WAAU,WACV,IAAA9wB,EAAAd,EAAA,KASI,OAAAjM,EAAAA,EAAAA,aAAA,+CAAAA,EAAAA,EAAAA,aAAA,4CAGczF,KAAKN,KAAK,gBAAVM,CAA2B,CAAE4hC,KAXhC,WACPlwB,EAAKkuB,UAAYluB,EAAKkuB,UAAU2D,YACpC,EASiD7F,KAPtC,WACPhsB,EAAKkuB,UAAYluB,EAAKkuB,UAAU4D,YACpC,OAKwD/9B,EAAAA,EAAAA,aAAA,2CAAAA,EAAAA,EAAAA,aAAA,4CAItC5E,EAAAA,IAAIC,KAAKd,KAAK2/B,UAAW3/B,KAAKN,KAAK,wBAAkB+F,EAAAA,EAAAA,aAAA,6CAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,iBAI5ClR,KAAK9D,KAAI,MAA0B,EAAI,QAAW8D,KAAKugC,UAAQh1B,GAAAiH,EACxExS,KAAKpE,MAAM,YAAU4W,EAAA,2BAAAA,EAAA,OAK3C,EAEAzO,OAAM,WAEF,IAAItG,EAAY,CACZ,qBACA,uBAAyBuC,KAAKvD,KAC9B,uBAAyBuD,KAAK9D,MAGlC,OAAAuJ,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKN,KAAK,SAAWsK,EAAAA,IAAIC,QAAQjK,KAAKmgC,UAAtCngC,IAGd,GC5rBJ,IAEIqF,KAAM,cAENtJ,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJc,WAAY,oBAGJ,OAAO,IACX,GAGJoiC,OAAQ,oBAGA,OAAO,IACX,GAGJC,YAAa,oBAGL,OAAO,IACX,GAGJC,OAAQ,oBAGA,OAAO,IACX,GAGJC,YAAa,oBAGL,OAAO,IACX,GAGJC,QAAS,oBAGD,OAAO,IACX,GAGJC,QAAS,oBAGD,OAAO,IACX,GAGJ9iC,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGXhI,YAAa,oBAGL,OAAO3B,EAAAA,OAAOC,MAAM,cACxB,EACAM,KAAM,CAACoJ,SAGXm+B,kBAAmB,oBAGX,OAAO9nC,EAAAA,OAAOC,MAAM,aACxB,EACAM,KAAM,CAACoJ,SAGXo+B,kBAAmB,oBAGX,OAAO/nC,EAAAA,OAAOC,MAAM,WACxB,EACAM,KAAM,CAACoJ,SAGX21B,MAAO,oBAGC,OAAO,CACX,EACA/+B,KAAM,CAACqJ,UAGXo+B,eAAgB,oBAGR,MAAO,GACX,EACAznC,KAAM,CAACoJ,SAGXk6B,YAAa,oBAGL,OAAO,CACX,EACAtjC,KAAM,CAACgB,SAGX0mC,SAAU,oBAGF,OAAO,IACX,GAGJ/Y,SAAU,oBAGF,MAAO,cACX,EACA3uB,KAAM,CAACoJ,SAGX3I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXxI,UAAW,oBAGH,OAAO,CACX,EACAb,KAAM,CAACqJ,UAGXhI,OAAQ,oBAGA,MAAO,qBACX,EACArB,KAAM,CAACoJ,SAGXu+B,cAAe,oBAGP,OAAOloC,EAAAA,OAAOC,MAAM,aACxB,EACAM,KAAM,CAACoJ,SAGXm6B,SAAU,oBAGF,MAAO,CACH9jC,EAAAA,OAAOC,MAAM,MACbD,EAAAA,OAAOC,MAAM,MACbD,EAAAA,OAAOC,MAAM,MACbD,EAAAA,OAAOC,MAAM,MACbD,EAAAA,OAAOC,MAAM,MACbD,EAAAA,OAAOC,MAAM,MACbD,EAAAA,OAAOC,MAAM,MAErB,EACAM,KAAM,CAACmE,QAGXq/B,OAAQ,oBAGA,MAAO,CACH/jC,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OAErB,EACAM,KAAM,CAACmE,SAMfmH,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,UAAUtI,OAAOyC,KAAKzC,UACtCyC,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAK9C,GAElC,EAEAy/B,OAAM,SAACz/B,GAEEA,IAAUO,KAAKigC,WAAW1iC,OAAOyC,KAAKzC,UACvCyC,KAAKigC,WAAaD,EAAAA,IAAIz9B,KAAK9C,GAEnC,EAEA2/B,OAAM,SAAC3/B,GAEEA,IAAUO,KAAKkgC,WAAW3iC,OAAOyC,KAAKzC,UACvCyC,KAAKkgC,WAAaF,EAAAA,IAAIz9B,KAAK9C,GAEnC,GAIJmG,KAAI,WAEA,MAAO,CACHsnB,OAAO,EACPrnB,UAAWm6B,EAAAA,IAAIz9B,KAAKvC,KAAKhE,WAAYgE,KAAKzC,QAC1C0iC,WAAYD,EAAAA,IAAIz9B,KAAKvC,KAAKk/B,OAAQl/B,KAAKzC,QACvC2iC,WAAYF,EAAAA,IAAIz9B,KAAKvC,KAAKo/B,OAAQp/B,KAAKzC,QAE/C,EAEAuI,QAAS,CAELg+B,gBAAe,WAEX9jC,KAAKi7B,MAAQj7B,KAAK+jC,uBACd/jC,KAAKgkC,uBACb,EAEAA,sBAAqB,WAEjBhkC,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAKvC,KAAKlD,WAC3BkD,KAAKzC,QAETyC,KAAK6T,MAAM,oBAAqB7T,KAAKlD,WACzC,EAGAinC,qBAAoB,WAEhB/jC,KAAKigC,WAAaD,EAAAA,IAAIz9B,KAAKvC,KAAKm/B,YAC5Bn/B,KAAKzC,QAETyC,KAAK6T,MAAM,gBAAiB7T,KAAKlD,YAEjCkD,KAAKkgC,WAAaF,EAAAA,IAAIz9B,KAAKvC,KAAKq/B,YAC5Br/B,KAAKzC,QAETyC,KAAK6T,MAAM,gBAAiB7T,KAAKq/B,YACrC,EAEAL,eAAc,SAACv/B,GAEXO,KAAKktB,MAAQztB,CACjB,EAEAwkC,aAAY,SAACppB,GAKT,KAHsB7a,KAAK6jC,cAAc/jC,SACrC+a,EAAM7X,OAAOvD,MAAMK,QAEvB,CAIA,IAAIL,EAAQugC,EAAAA,IAAIz9B,KAAKsY,EAAM7X,OAAOvD,MAC9BO,KAAK6jC,eAET,GAAOpkC,EAAMykC,OAAOC,UAApB,CAIA,IAAID,EAASlkC,KAAK6F,UAAUq+B,OAAO38B,IAAI,CACnCm6B,KAAMjiC,EAAMykC,OAAOxC,OACnBJ,MAAO7hC,EAAMykC,OAAO5C,QACpB8C,KAAM3kC,EAAMykC,OAAOE,SAGvBpkC,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAK2hC,GAE1BlkC,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAUtI,OAAOyC,KAAKzC,QAX/B,CAPA,CAmBJ,EAEA8mC,cAAa,SAACxpB,GAKV,KAHsB7a,KAAK6jC,cAAc/jC,SACrC+a,EAAM7X,OAAOvD,MAAMK,QAEvB,CAIA,IAAIL,EAAQugC,EAAAA,IAAIz9B,KAAKsY,EAAM7X,OAAOvD,MAC9BO,KAAK6jC,eAET,GAAOpkC,EAAMykC,OAAOC,UAApB,CAIA,IAAID,EAASlkC,KAAK6F,UAAUq+B,OAAO38B,IAAI,CACnCm6B,KAAMjiC,EAAMykC,OAAOxC,OACnBJ,MAAO7hC,EAAMykC,OAAO5C,QACpB8C,KAAM3kC,EAAMykC,OAAOE,SAGvBpkC,KAAKigC,WAAaD,EAAAA,IAAIz9B,KAAK2hC,GAE3BlkC,KAAK6T,MAAM,gBACP7T,KAAKigC,WAAW1iC,OAAOyC,KAAKzC,QAXhC,CAPA,CAmBJ,EAEA+mC,cAAa,SAACzpB,GAKV,KAHsB7a,KAAK6jC,cAAc/jC,SACrC+a,EAAM7X,OAAOvD,MAAMK,QAEvB,CAIA,IAAIL,EAAQugC,EAAAA,IAAIz9B,KAAKsY,EAAM7X,OAAOvD,MAC9BO,KAAK6jC,eAET,GAAOpkC,EAAMykC,OAAOC,UAApB,CAIA,IAAID,EAASlkC,KAAK6F,UAAUq+B,OAAO38B,IAAI,CACnCm6B,KAAMjiC,EAAMykC,OAAOxC,OACnBJ,MAAO7hC,EAAMykC,OAAO5C,QACpB8C,KAAM3kC,EAAMykC,OAAOE,SAGvBpkC,KAAKkgC,WAAaF,EAAAA,IAAIz9B,KAAK2hC,GAE3BlkC,KAAK6T,MAAM,gBACP7T,KAAKkgC,WAAW3iC,OAAOyC,KAAKzC,QAXhC,CAPA,CAmBJ,EAEAgnC,kBAAiB,SAAC9kC,GAEdO,KAAKktB,OAAQ,EAEbltB,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAK9C,EACtBO,KAAKzC,QAETyC,KAAK6T,MAAM,oBAAqBpU,EACpC,EAEA+kC,mBAAkB,SAAC/kC,GAEfO,KAAKktB,OAAQ,EAEbltB,KAAKkgC,WAAaF,EAAAA,IAAIz9B,KAAK9C,EACvBO,KAAKzC,QAETyC,KAAK6T,MAAM,gBAAiBpU,EAChC,EAEAglC,mBAAkB,SAAChlC,GAEfO,KAAKktB,OAAQ,EAEbltB,KAAKigC,WAAaD,EAAAA,IAAIz9B,KAAK9C,EACvBO,KAAKzC,QAETyC,KAAK6T,MAAM,gBAAiBpU,EAChC,GAKJk3B,iBAAgB,WAEZ,IAAI3wB,GAAYhG,KAAKigC,WAAWyE,cAC1B1kC,KAAKkgC,WAAWwE,YAMtB,GAJO1kC,KAAKi7B,QACRj1B,GAAYhG,KAAK6F,UAAU6+B,cAGxB1kC,KAAKjD,WAAaiJ,EACrB,OAAO,KAGX,IAAIjK,EAAQ,CAAC,EAMb,OAJOiE,KAAKrD,WACRZ,EAAM43B,YAAc3zB,KAAK8jC,kBAG7Br+B,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,2CACsDvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,WACxCR,KAAK6kB,MAAM0H,OAAK,OAGvC,EAEAoF,iBAAgB,WAEZ,OAAAnxB,EAAAA,EAAAA,aAAA,mDAAAA,EAAAA,EAAAA,aAAA,WAEmBR,KAAK6kB,MAAM+M,WAAS,OAG3C,EAEA8N,YAAW,WAEP,IAAIC,EAAc,CACdnlC,MAAO,GACP9C,SAAUqD,KAAKrD,SACfW,YAAa0C,KAAKyjC,kBAClBpR,QAASryB,KAAKqkC,eAGbrkC,KAAKigC,WAAW8B,UACjB6C,EAAYnlC,MAAQO,KAAKigC,WAAW1iC,OAChCyC,KAAK6jC,eAAe,IAG5B,IAAIgB,EAAc,CACdplC,MAAO,GACP9C,SAAUqD,KAAKrD,SACfW,YAAa0C,KAAK0jC,kBAClBrR,QAASryB,KAAKskC,eAQlB,OALKtkC,KAAKkgC,WAAW6B,UACjB8C,EAAYplC,MAAQO,KAAKkgC,WAAW3iC,OAChCyC,KAAK6jC,eAAe,IAGrB,EAAAp+B,EAAAA,EAAAA,aAAA,sCAAAA,EAAAA,EAAAA,aAAA,QAGgBm/B,EAAW,SAAAn/B,EAAAA,EAAAA,aAAA,0CAAAA,EAAAA,EAAAA,aAAA,aAKdzF,KAAK2jC,oBAAcl+B,EAAAA,EAAAA,aAAA,sCAAAA,EAAAA,EAAAA,aAAA,QAKhBo/B,EAAW,QAItC,EAEAvN,aAAY,WAER,IAAIv7B,EAAQ,CACR0D,MAAO,GACP9C,SAAUqD,KAAKrD,SACfW,YAAa0C,KAAK1C,YAClB+0B,QAASryB,KAAKikC,cAQlB,OALKjkC,KAAK6F,UAAUk8B,UAChBhmC,EAAM0D,MAAQO,KAAK6F,UAAUtI,OACzByC,KAAK6jC,eAAe,KAG5Bp+B,EAAAA,EAAAA,aAAA,sCAAAA,EAAAA,EAAAA,aAAA,QAEmB1J,EAAK,OAG5B,EAEAy7B,cAAa,WAET,IAAI/5B,EAAY,CACZ,yBAGCuC,KAAKi7B,OACNx9B,EAAU8F,KAAK,WAGnB,IAAIk0B,EAAcz3B,KAAKN,KAAK,gBAM5B,OAJKM,KAAKi7B,QACNxD,EAAcz3B,KAAKN,KAAK,iBAG5B+F,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKN,KAAK,mBAAVM,GACAy3B,IACAz3B,KAAKN,KAAK,mBAAVM,IAGd,EAEA6e,YAAW,WAEP,IAeI9iB,EAAQgE,EAAAA,IAAIoN,OAAOnN,KAAKmI,OAXb,CACX,aACA,cACA,oBACA,oBACA,iBACA,WACA,YACA,iBAG0C,CAC1C+2B,OAAQl/B,KAAKigC,WAAW1iC,OAAOyC,KAAKzC,SAAW,KAC/C6hC,OAAQp/B,KAAKkgC,WAAW3iC,OAAOyC,KAAKzC,SAAW,KAC/CvB,WAAYgE,KAAK6F,UAAUtI,OAAOyC,KAAKzC,SAAW,OAOtD,OAJAxB,EAAM,mBAAqBiE,KAAKykC,mBAChC1oC,EAAM,mBAAqBiE,KAAKwkC,mBAChCzoC,EAAM,uBAAyBiE,KAAKukC,mBAEpC9+B,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,qBAAAZ,EAAAA,EAAAA,YAAA,OAzBgB,CACZ,qBAyBwCvU,GAAK,KAErD,EAEAi8B,cAAa,WACb,IAAAr4B,EAAA,KAKQ5D,EAAQ,CACRkM,MALY,CACZ,yBAKAikB,QAAS,QACT9Y,MAAO,EACP3W,KAAMuD,KAAKvD,KACXouB,SAAU7qB,KAAK6qB,SACfuB,aAAa,EACbzvB,SAAUqD,KAAKrD,UAGnB,OAAA8I,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aAAAZ,EAAAA,EAAAA,YAAA,0BACoC3Q,EAAKutB,MAAK,+BAAA/b,GAAA,OAAVxR,EAAKutB,MAAK/b,CAAA,GAAMpV,GAAK,CAC7C8wB,IAAK7sB,KAAKN,KAAK,gBAG/B,EAEAqE,OAAM,WAEF,IAAItG,EAAY,CACZ,eACA,iBAAmBuC,KAAK9D,KACxB,iBAAmB8D,KAAKvD,MAGxBuJ,GAAYhG,KAAKigC,WAAWyE,cAC1B1kC,KAAKkgC,WAAWwE,YAsBtB,OApBO1kC,KAAKi7B,QACRj1B,GAAYhG,KAAK6F,UAAU6+B,aAG1B1+B,GACDvI,EAAU8F,KAAK,WAGdvD,KAAKjD,WACNU,EAAU8F,KAAK,eAGdvD,KAAKktB,OACNzvB,EAAU8F,KAAK,WAGdvD,KAAKrD,UACNc,EAAU8F,KAAK,eAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKN,KAAK,gBAAVM,GACAA,KAAKN,KAAK,gBAAVM,IAGd,GC5mBkD,SAAAuL,GAAAC,GAAA,yBAAAA,GAAA,oBAAA3M,OAAAM,UAAAsM,SAAApM,KAAAmM,MAAAE,EAAAA,EAAAA,SAAAF,EAAA,CAEtD,UAEInG,KAAM,mBAENtJ,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJc,WAAY,oBAGJ,OAAO,IACX,GAGJQ,YAAa,oBAGL,MAAO,aACX,EACApB,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,GAGJP,KAAM,oBAGE,MAAO,SACX,GAGJS,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXhI,OAAQ,oBAGA,MAAO,qBACX,EACArB,KAAM,CAACoJ,SAGXu+B,cAAe,oBAGP,MAAO,UACX,EACA3nC,KAAM,CAACoJ,SAGXw/B,cAAe,oBAGP,OAAO,CACX,EACA5oC,KAAM,CAACgB,SAGX6nC,gBAAiB,oBAGT,OAAO,CACX,EACA7oC,KAAM,CAACgB,SAGX8nC,gBAAiB,oBAGT,OAAO,CACX,EACA9oC,KAAM,CAACgB,UAKfsY,SAAU,CAENyvB,UAAS,WAEL,OAAOjlC,KAAK6F,UAAUq/B,SAASllC,KAAK8kC,cACxC,EAEAK,YAAW,WAEP,OAAOnlC,KAAK6F,UAAUu/B,WAAWplC,KAAK+kC,gBAC1C,EAEAM,YAAW,WAEP,OAAOrlC,KAAK6F,UAAUy/B,WAAWtlC,KAAKglC,gBAC1C,GAIJx9B,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,UAAUtI,OAAOyC,KAAKzC,UACtCyC,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAK9C,GAElC,GAIJmG,KAAI,WAEA,IAAI5J,EAAagkC,EAAAA,IAAIz9B,KAAKvC,KAAKhE,YAM/B,OAJK0E,EAAAA,IAAIsF,QAAQhG,KAAKhE,cAClBA,EAAaA,EAAW2kC,aAGrB,CACH96B,UAAW7J,EAEnB,EAEAqQ,QAAO,WAEHrM,KAAKqY,UACT,EAEAvS,QAAS,CAELy/B,YAAW,SAACluB,GAERrX,KAAK6T,MAAM,qBACN7T,KAAK6F,UAAYwR,EAAI5K,SAASlP,OAAOyC,KAAKzC,QACnD,EAEA8a,SAAQ,WACR,IAAA1Y,EAAA,KACQ6lC,EAAazlC,EAAAA,IAAI6O,KAAK5O,KAAKyG,MAAO,CAClC,OAAQ,SAAU,WAGtB5F,EAAAA,IAAIC,KAAK0kC,EAAY,SAAC7xB,EAAKhV,GACvBgV,EAAIgF,eAAe,gBAADlW,OAAiB9C,EAAKkG,UAAUlH,KAAM,MAC5D,EACJ,GAIJgjC,cAAa,WAET,OAAAl8B,EAAAA,EAAAA,aAAA,8CAAAA,EAAAA,EAAAA,aAAA,8CAAAA,EAAAA,EAAAA,aAAA,2CAIiBzF,KAAK6F,UAAUtI,OAAOyC,KAAK6jC,gBAAkB7jC,KAAK1C,iBAKvE,EAEAmoC,eAAc,SAACpuB,GACf,IAAAhU,EAAA,KACQ5F,EAAY,CACZ,4BAGCuC,KAAK6F,UAAUk8B,SAAW1qB,EAAIquB,SAAW1lC,KAAK6F,UAAU6/B,QACzDjoC,EAAU8F,KAAK,cAGnB,IAAIxH,EAAQ,CACR43B,YAAa,WAAF,OAAQtwB,EAAKkiC,YAAYluB,EAAI,GAG5C,OAAA5R,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,EAAK,cAAcsb,EAAIquB,SAAM,EAAAjgC,EAAAA,EAAAA,aAAA,aAC7C4R,EAAI9Z,OAAO,SAG9B,EAEAooC,gBAAe,WACf,IAAAl0B,EACI,IAAMzR,KAAK6jC,cAAc59B,MAAM,MAC3B,OAAO,KAOX,OAAAR,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,eAAAZ,EAAAA,EAAAA,YAAA,+CAJqB,CACjB8E,QAAS,EAAGG,UAAW,6BAIoDhK,GAAAkG,EACtE5Q,EAAAA,IAAIC,KAAKd,KAAKilC,UAAWjlC,KAAKN,KAAK,oBAAkB+R,EAAA,2BAAAA,EAAA,GAGlE,EAEAm0B,iBAAgB,SAACvuB,GACjB,IAAA/M,EAAA,KACQ7M,EAAY,CACZ,4BAGCuC,KAAK6F,UAAUk8B,SAAW1qB,EAAIwuB,WAAa7lC,KAAK6F,UAAUggC,UAC3DpoC,EAAU8F,KAAK,cAGnB,IAAIxH,EAAQ,CACR43B,YAAa,WAAF,OAAQrpB,EAAKi7B,YAAYluB,EAAI,GAG5C,OAAA5R,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,EAAK,cAAcsb,EAAIwuB,WAAQ,EAAApgC,EAAAA,EAAAA,aAAA,aAC/C4R,EAAI9Z,OAAO,SAG9B,EAEAuoC,kBAAiB,WACjB,IAAAtzB,EACI,IAAMxS,KAAK6jC,cAAc59B,MAAM,MAC3B,OAAO,KAOX,OAAAR,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,eAAAZ,EAAAA,EAAAA,YAAA,iDAJqB,CACjB8E,QAAS,EAAGG,UAAW,6BAIsDhK,GAAAiH,EACxE3R,EAAAA,IAAIC,KAAKd,KAAKmlC,YAAanlC,KAAKN,KAAK,sBAAoB8S,EAAA,2BAAAA,EAAA,GAGtE,EAEAuzB,iBAAgB,SAAC1uB,GACjB,IAAAvM,EAAA,KACQrN,EAAY,CACZ,4BAGCuC,KAAK6F,UAAUk8B,SAAW1qB,EAAI2uB,WAAahmC,KAAK6F,UAAUmgC,UAC3DvoC,EAAU8F,KAAK,cAGnB,IAAIxH,EAAQ,CACR43B,YAAa,WAAF,OAAQ7oB,EAAKy6B,YAAYluB,EAAI,GAG5C,OAAA5R,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,EAAK,cAAcsb,EAAI2uB,WAAQ,EAAAvgC,EAAAA,EAAAA,aAAA,aAC/C4R,EAAI9Z,OAAO,SAG9B,EAEA0oC,kBAAiB,WACjB,IAAAxzB,EACI,IAAMzS,KAAK6jC,cAAc59B,MAAM,MAC3B,OAAO,KAOX,OAAAR,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,eAAAZ,EAAAA,EAAAA,YAAA,iDAJqB,CACjB8E,QAAS,EAAGG,UAAW,6BAIsDhK,GAAAkH,EACxE5R,EAAAA,IAAIC,KAAKd,KAAKqlC,YAAarlC,KAAKN,KAAK,sBAAoB+S,EAAA,2BAAAA,EAAA,GAGtE,EAEA1O,OAAM,WAEF,IAAItG,EAAY,CACZ,qBACA,uBAAyBuC,KAAKvD,KAC9B,uBAAyBuD,KAAK9D,MAOlC,OAJK8D,KAAKrD,UACNc,EAAU8F,KAAK,eAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,EAAAgI,EAAAA,EAAAA,aAAA,4CAEZzF,KAAKN,KAAK,gBAAVM,MAA4ByF,EAAAA,EAAAA,aAAA,0CAG5BzF,KAAKN,KAAK,kBAAVM,GACAA,KAAKN,KAAK,oBAAVM,GACAA,KAAKN,KAAK,oBAAVM,MAIjB,GCxTJ,IAEIqF,KAAM,cAENtJ,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJc,WAAY,oBAGJ,OAAO,IACX,GAGJQ,YAAa,oBAGL,MAAO,aACX,EACApB,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGXulB,SAAU,oBAGF,MAAO,cACX,EACA3uB,KAAM,CAACoJ,SAGX3I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXxI,UAAW,oBAGH,OAAO,CACX,EACAb,KAAM,CAACqJ,UAGXhI,OAAQ,oBAGA,MAAO,qBACX,EACArB,KAAM,CAACoJ,SAGXu+B,cAAe,oBAGP,OAAOloC,EAAAA,OAAOC,MAAM,WACxB,EACAM,KAAM,CAACoJ,SAGXw/B,cAAe,oBAGP,OAAO,CACX,EACA5oC,KAAM,CAACgB,SAGX6nC,gBAAiB,oBAGT,OAAO,CACX,EACA7oC,KAAM,CAACgB,SAGX8nC,gBAAiB,oBAGT,OAAO,CACX,EACA9oC,KAAM,CAACgB,UAKfsY,SAAU,CAENyvB,UAAS,WAEL,OAAOjlC,KAAK6F,UAAUq/B,SAASllC,KAAK8kC,cACxC,EAEAK,YAAW,WAEP,OAAOnlC,KAAK6F,UAAUu/B,WAAWplC,KAAK+kC,gBAC1C,EAEAM,YAAW,WAEP,OAAOrlC,KAAK6F,UAAUy/B,WAAWtlC,KAAKglC,gBAC1C,GAIJx9B,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,UAAUtI,OAAOyC,KAAKzC,UACtCyC,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAK9C,GAElC,GAIJmG,KAAI,WAEA,MAAO,CACHsnB,OAAO,EACPrnB,UAAWm6B,EAAAA,IAAIz9B,KAAKvC,KAAKhE,YAEjC,EAEA8J,QAAS,CAELogC,gBAAe,WAEXlmC,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAKvC,KAAKlD,WAC3BkD,KAAKzC,QAETyC,KAAK6T,MAAM,oBAAqB7T,KAAKlD,WACzC,EAEAkiC,eAAc,SAACv/B,GAEXO,KAAKktB,MAAQztB,CACjB,EAEAwkC,aAAY,SAACppB,GAKT,KAHsB7a,KAAK6jC,cAAc/jC,SACrC+a,EAAM7X,OAAOvD,MAAMK,QAEvB,CAIA,IAAIL,EAAQugC,EAAAA,IAAIz9B,KAAKsY,EAAM7X,OAAOvD,MAC9BO,KAAK6jC,eAET,GAAOpkC,EAAMykC,OAAOC,UAApB,CAIA,IAAID,EAASlkC,KAAK6F,UAAUq+B,OAAO38B,IAAI,CACnCm+B,KAAMjmC,EAAMykC,OAAOwB,OACnBG,OAAQpmC,EAAMykC,OAAO2B,SACrBG,OAAQvmC,EAAMykC,OAAO8B,WAGzBhmC,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAK2hC,GAE1BlkC,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAUtI,OAAOyC,KAAKzC,QAX/B,CAPA,CAmBJ,EAEA4oC,kBAAiB,SAAC1mC,GAEdO,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAK9C,EACtBO,KAAKzC,QAETyC,KAAK6T,MAAM,oBAAqBpU,EACpC,GAIJk3B,iBAAgB,WAEZ,IAAO32B,KAAKjD,YAAeiD,KAAK6F,UAAUk8B,QACtC,OAAO,KAGX,IAAIhmC,EAAQ,CAAC,EAMb,OAJOiE,KAAKrD,WACRZ,EAAM43B,YAAc3zB,KAAKkmC,kBAG7BzgC,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,2CACsDvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,WACxCR,KAAK6kB,MAAM0H,OAAK,OAGvC,EAEAoF,iBAAgB,WAEZ,OAAAnxB,EAAAA,EAAAA,aAAA,mDAAAA,EAAAA,EAAAA,aAAA,WAEmBR,KAAK6kB,MAAM+M,WAAS,OAG3C,EAEAS,aAAY,WAER,IAAIv7B,EAAQ,CACR0D,MAAO,GACP9C,SAAUqD,KAAKrD,SACfW,YAAa0C,KAAKpE,MAAMoE,KAAK1C,aAC7B+0B,QAASryB,KAAKikC,cAQlB,OALKjkC,KAAK6F,UAAUk8B,UAChBhmC,EAAM0D,MAAQO,KAAK6F,UAAUtI,OACzByC,KAAK6jC,eAAe,KAG5Bp+B,EAAAA,EAAAA,aAAA,sCAAAA,EAAAA,EAAAA,aAAA,QAEmB1J,EAAK,OAG5B,EAEAy7B,cAAa,WAMT,OAAA/xB,EAAAA,EAAAA,aAAA,aAJgB,CACZ,0BAIqB,CACfzF,KAAKN,KAAK,mBAAVM,GACAA,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,mBAAVM,IAGd,EAEAomC,YAAW,WAEP,IAIIrqC,EAAQgE,EAAAA,IAAIoN,OAAOnN,KAAKmI,OAAQ,CAAC,cAAe,CAChDnM,WAAYgE,KAAK6F,UAAUtI,OAAOyC,KAAKzC,SAAW,OAKtD,OAFAxB,EAAM,uBAAyBiE,KAAKmmC,mBAEpC1gC,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,qBAAAZ,EAAAA,EAAAA,YAAA,OAVgB,CACZ,qBAUwCvU,GAAK,KAErD,EAEAi8B,cAAa,WACb,IAAAr4B,EAAA,KACQ5D,EAAQ,CACRmwB,QAAS,QACT9Y,MAAO,EACP3W,KAAMuD,KAAKvD,KACXouB,SAAU7qB,KAAK6qB,SACfuB,aAAa,EACbzvB,SAAUqD,KAAKrD,UAGnB,OAAA8I,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aAAAZ,EAAAA,EAAAA,YAAA,0BACoC3Q,EAAKutB,MAAK,+BAAA/b,GAAA,OAAVxR,EAAKutB,MAAK/b,CAAA,GAAMpV,GAAK,CAC7C8wB,IAAK7sB,KAAKN,KAAK,gBAG/B,EAEAqE,OAAM,WAEF,IAAItG,EAAY,CACZ,eACA,iBAAmBuC,KAAK9D,KACxB,iBAAmB8D,KAAKvD,MAmB5B,OAhBOuD,KAAK6F,UAAUk8B,SAClBtkC,EAAU8F,KAAK,WAGdvD,KAAKjD,WACNU,EAAU8F,KAAK,eAGdvD,KAAKktB,OACNzvB,EAAU8F,KAAK,WAGdvD,KAAKrD,UACNc,EAAU8F,KAAK,eAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKN,KAAK,gBAAVM,GACAA,KAAKN,KAAK,gBAAVM,IAGd,GC1UJ,UAEIqF,KAAM,kBAEN0P,OAAQ,CAEJkd,UAAW,CACPp1B,aAAS0B,IAKjBxC,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJc,WAAY,oBAGJ,OAAO,IACX,GAGJwiC,QAAS,oBAGD,OAAO,IACX,GAGJC,QAAS,oBAGD,OAAO,IACX,GAGJ9iC,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGXhI,YAAa,oBAGL,OAAO3B,EAAAA,OAAOC,MAAM,kBACxB,EACAM,KAAM,CAACoJ,SAGXk6B,YAAa,oBAGL,OAAO,CACX,EACAtjC,KAAM,CAACgB,SAGX0mC,SAAU,oBAGF,OAAO,IACX,GAGJ/Y,SAAU,oBAGF,MAAO,cACX,EACA3uB,KAAM,CAACoJ,SAGX3I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXxI,UAAW,oBAGH,OAAO,CACX,EACAb,KAAM,CAACqJ,UAGXhI,OAAQ,oBAGA,MAAO,qBACX,EACArB,KAAM,CAACoJ,SAGXu+B,cAAe,oBAGP,OAAOloC,EAAAA,OAAOC,MAAM,sBACxB,EACAM,KAAM,CAACoJ,SAGXm6B,SAAU,oBAGF,MAAO,CACH9jC,EAAAA,OAAOC,MAAM,MACbD,EAAAA,OAAOC,MAAM,MACbD,EAAAA,OAAOC,MAAM,MACbD,EAAAA,OAAOC,MAAM,MACbD,EAAAA,OAAOC,MAAM,MACbD,EAAAA,OAAOC,MAAM,MACbD,EAAAA,OAAOC,MAAM,MAErB,EACAM,KAAM,CAACmE,QAGXq/B,OAAQ,oBAGA,MAAO,CACH/jC,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OACbD,EAAAA,OAAOC,MAAM,OAErB,EACAM,KAAM,CAACmE,SAKfmV,SAAU,CAEN2c,aAAY,WACR,OAAOnyB,KAAKiyB,UAAYjyB,KAAKiyB,UAAUt1B,SAASqD,KAAKrD,UACjDqD,KAAKrD,QACb,GAIJ6K,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,UAAUtI,OAAOyC,KAAKzC,UACtCyC,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAK9C,GAElC,GAIJmG,KAAI,WAEA,MAAO,CACHsnB,OAAO,EAAOrnB,UAAWm6B,EAAAA,IAAIz9B,KAAKvC,KAAKhE,WAAYgE,KAAKzC,QAEhE,EAEAuI,QAAS,CAELugC,oBAAmB,WAEfrmC,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAKvC,KAAKlD,WAC3BkD,KAAKzC,QAETyC,KAAK6T,MAAM,oBAAqB7T,KAAKlD,WACzC,EAEAkiC,eAAc,SAACv/B,GAEXO,KAAKktB,MAAQztB,CACjB,EAEAwkC,aAAY,SAACppB,GAKT,KAHsB7a,KAAK6jC,cAAc/jC,SACrC+a,EAAM7X,OAAOvD,MAAMK,QAEvB,CAIA,IAAIL,EAAQugC,EAAAA,IAAIz9B,KAAKsY,EAAM7X,OAAOvD,MAC9BO,KAAK6jC,eAET,GAAOpkC,EAAMykC,OAAOC,UAApB,CAIA,IAAID,EAASlkC,KAAK6F,UAAUq+B,OAAO38B,IAAI,CACnCm6B,KAAMjiC,EAAMykC,OAAOxC,OACnBJ,MAAO7hC,EAAMykC,OAAO5C,QACpB8C,KAAM3kC,EAAMykC,OAAOE,OACnBsB,KAAMjmC,EAAMykC,OAAOwB,OACnBG,OAAQpmC,EAAMykC,OAAO2B,SACrBG,OAAQvmC,EAAMykC,OAAO8B,WAGzBhmC,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAK2hC,GAE1BlkC,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAUtI,OAAOyC,KAAKzC,QAd/B,CAPA,CAsBJ,EAEAgnC,kBAAiB,SAAC9kC,GAEdO,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAK9C,EACtBO,KAAKzC,QAETyC,KAAK6T,MAAM,oBAAqBpU,EACpC,EAEA0mC,kBAAiB,SAAC1mC,GAEdO,KAAK6F,UAAYm6B,EAAAA,IAAIz9B,KAAK9C,EACtBO,KAAKzC,QAETyC,KAAK6T,MAAM,oBAAqBpU,EACpC,GAKJk3B,iBAAgB,WAEZ,IAAI3wB,GAAYhG,KAAK6F,UAAU6+B,YAE/B,IAAO1kC,KAAKjD,WAAaiJ,EACrB,OAAO,KAGX,IAAIjK,EAAQ,CAAC,EAMb,OAJOiE,KAAKmyB,eACRp2B,EAAM43B,YAAc3zB,KAAKqmC,sBAG7B5gC,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,+CAC0DvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,WAC5CR,KAAK6kB,MAAM0H,OAAK,OAGvC,EAEAoF,iBAAgB,WAEZ,OAAAnxB,EAAAA,EAAAA,aAAA,uDAAAA,EAAAA,EAAAA,aAAA,WAEmBR,KAAK6kB,MAAM+M,WAAS,OAG3C,EAEAS,aAAY,WAER,IAAIv7B,EAAQ,CACR0D,MAAO,GACP9C,SAAUqD,KAAKmyB,aACf70B,YAAa0C,KAAK1C,YAClB+0B,QAASryB,KAAKikC,cAQlB,OALKjkC,KAAK6F,UAAUk8B,UAChBhmC,EAAM0D,MAAQO,KAAK6F,UAAUtI,OACzByC,KAAK6jC,eAAe,KAG5Bp+B,EAAAA,EAAAA,aAAA,0CAAAA,EAAAA,EAAAA,aAAA,QAEmB1J,EAAK,OAG5B,EAEAy7B,cAAa,WAMT,OAAA/xB,EAAAA,EAAAA,aAAA,aAJgB,CACZ,8BAIqB,CACfzF,KAAKN,KAAK,mBAAVM,GACAA,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,mBAAVM,IAGd,EAEAsmC,aAAY,WAER,OAAA7gC,EAAAA,EAAAA,aAAA,yDAES,CAACzF,KAAKN,KAAK,kBAAVM,GAAgCA,KAAKN,KAAK,kBAAVM,KAG9C,EAEAumC,gBAAe,WAEX,IAAIxqC,EAAQgE,EAAAA,IAAI6O,KAAK5O,KAAKmI,OAAQ,CAC9B,UAAW,UAAW,OAAQ,OAAQ,SAAU,cAAe,WAAY,WAAY,WAS3F,OANApM,EAAQgE,EAAAA,IAAIiB,OAAOjF,EAAO,CACtBC,WAAYgE,KAAK6F,UAAUtI,OAAOyC,KAAKzC,SAAW,QAGhD,uBAAyByC,KAAKukC,mBAEpC9+B,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,qBAAAZ,EAAAA,EAAAA,YAAA,uCAC+DvU,GAAK,KAExE,EAEAyqC,gBAAe,WAEX,IAAIzqC,EAAQgE,EAAAA,IAAI6O,KAAK5O,KAAKmI,OAAQ,CAC9B,OAAQ,OAAQ,SAAU,WAAY,gBAAiB,kBAAmB,oBAS9E,OANApM,EAAQgE,EAAAA,IAAIiB,OAAOjF,EAAO,CACtBC,WAAYgE,KAAK6F,UAAUtI,OAAOyC,KAAKzC,SAAW,QAGhD,uBAAyByC,KAAKmmC,mBAEpC1gC,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,qBAAAZ,EAAAA,EAAAA,YAAA,uCAC+DvU,GAAK,KAExE,EAEAi8B,cAAa,WACb,IAAAr4B,EAAA,KACQ5D,EAAQ,CACRmwB,QAAS,QACT9Y,MAAO,EACP3W,KAAMuD,KAAKvD,KACXouB,SAAU7qB,KAAK6qB,SACfuB,aAAa,EACbzvB,SAAUqD,KAAKmyB,cAGfzpB,EAAQ,CACRmkB,IAAK7sB,KAAKN,KAAK,iBAGnB,OAAA+F,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aAAAZ,EAAAA,EAAAA,YAAA,0BACoC3Q,EAAKutB,MAAK,+BAAA/b,GAAA,OAAVxR,EAAKutB,MAAK/b,CAAA,GAAMpV,GAAgB2M,EAExE,EAEA3E,OAAM,WAEF,IAAItG,EAAY,CACZ,mBACA,qBAAuBuC,KAAK9D,KAC5B,qBAAuB8D,KAAKvD,MAqBhC,OAlBgBuD,KAAK6F,UAAU6+B,aAG3BjnC,EAAU8F,KAAK,WAGdvD,KAAKjD,WACNU,EAAU8F,KAAK,eAGdvD,KAAKktB,OACNzvB,EAAU8F,KAAK,WAGdvD,KAAKmyB,cACN10B,EAAU8F,KAAK,eAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKN,KAAK,gBAAVM,GACAA,KAAKN,KAAK,gBAAVM,IAGd,GC/ZqD,SAAAuL,GAAAC,GAAA,yBAAAA,GAAA,oBAAA3M,OAAAM,UAAAsM,SAAApM,KAAAmM,MAAAE,EAAAA,EAAAA,SAAAF,EAAA,CAEzD,UAEInG,KAAM,kBAENtJ,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJc,WAAY,oBAGJ,OAAO,IACX,GAGJR,QAAS,oBAGD,MAAO,CACH,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,MACA,OACA,OAER,EACAJ,KAAM,CAACmE,QAGXomC,YAAa,oBAGL,OAAO,IACX,GAGJC,YAAa,oBAGL,OAAO,IACX,GAGJjqC,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGXhI,YAAa,oBAGL,OAAO3B,EAAAA,OAAOC,MAAM,kBACxB,EACAM,KAAM,CAACoJ,SAGXqhC,aAAc,oBAGN,OAAOhrC,EAAAA,OAAOC,MAAM,oBACxB,EACAM,KAAM,CAACoJ,SAGXs+B,SAAU,oBAGF,OAAO,IACX,GAGJ/Y,SAAU,oBAGF,MAAO,cACX,EACA3uB,KAAM,CAACoJ,SAGX3I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXxI,UAAW,oBAGH,OAAO,CACX,EACAb,KAAM,CAACqJ,UAGXqhC,KAAM,oBAGE,OAAOjrC,EAAAA,OAAOC,MAAM,yBACxB,EACAM,KAAM,CAACoJ,SAGXuhC,MAAO,oBAGC,OAAOlrC,EAAAA,OAAOC,MAAM,2BACxB,EACAM,KAAM,CAACoJ,SAGXwhC,QAAS,oBAGD,OAAOnrC,EAAAA,OAAOC,MAAM,+BACxB,EACAM,KAAM,CAACoJ,SAGXyhC,QAAS,oBAGD,OAAOprC,EAAAA,OAAOC,MAAM,+BACxB,EACAM,KAAM,CAACoJ,UAMfkC,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,GAIJmG,KAAI,WAEA,MAAO,CACHsnB,OAAO,EAAOrnB,UAAW7F,KAAKhE,WAAYgrC,UAAW,KAE7D,EAEAlhC,QAAS,CAELmhC,YAAW,SAACvlC,EAAMwlC,GAKd,OAHAA,EAAUA,EAAQC,WAAW,SAAU,cAClCA,WAAW,IAAK,QAEdzlC,EAAKuE,MAAM,IAAIwtB,OAAOyT,EAAS,KAC1C,EAEAE,cAAa,SAAC3nC,GAEV,GAAKiB,EAAAA,IAAIsF,QAAQvG,GACb,MAAO,GAGX,GAAKA,EAAQ,EACT,OAAOO,KAAK2mC,aAGhB,IAAII,EAAUtnC,EAGVqnC,EAAUp3B,KAAK+N,MAAMspB,EAAQ,IACjCA,GAAqB,GAAVD,EAGX,IAAID,EAAQn3B,KAAK+N,MAAMqpB,EAAQ,IAC/BA,GAAmB,GAARD,EAIX,IAAID,EAAOl3B,KAAK+N,MAAMopB,EAAM,IAC5BA,GAAgB,GAAPD,EAET,IAAIllC,EAAO,GAkBX,OAhBKklC,GACDllC,EAAK6B,KAAK5H,EAAAA,OAAOyjB,OAAOpf,KAAK4mC,KAAMA,IAGlCC,GACDnlC,EAAK6B,KAAK5H,EAAAA,OAAOyjB,OAAOpf,KAAK6mC,MAAOA,IAGnCC,GACDplC,EAAK6B,KAAK5H,EAAAA,OAAOyjB,OAAOpf,KAAK8mC,QAASA,IAGrCC,GACDrlC,EAAK6B,KAAK5H,EAAAA,OAAOyjB,OAAOpf,KAAK+mC,QAASA,IAGnCrlC,EAAK+B,KAAK,IACrB,EAEA4jC,cAAa,SAAC3lC,GAEV,GAAKhB,EAAAA,IAAIsF,QAAQtE,GACb,OAAO1B,KAAKlD,WAGhB,IAAI2C,EAAQ,EAER6nC,EAAStnC,KAAKinC,YAAYvlC,EAAM1B,KAAK4mC,MAEpCU,GAA4B,IAAlBA,EAAOxnC,SAClBL,GAAkD,GAAzCiB,EAAAA,IAAG,MAAO4mC,EAAO,GAAGz/B,QAAQ,IAAK,MAAa,GAAK,IAGhE,IAAI0/B,EAASvnC,KAAKinC,YAAYvlC,EAAM1B,KAAK6mC,OAEpCU,GAA4B,IAAlBA,EAAOznC,SAClBL,GAAkD,GAAzCiB,EAAAA,IAAG,MAAO6mC,EAAO,GAAG1/B,QAAQ,IAAK,MAAa,IAG3D,IAAI2/B,EAASxnC,KAAKinC,YAAYvlC,EAAM1B,KAAK8mC,SAEpCU,GAA4B,IAAlBA,EAAO1nC,SAClBL,GAAkD,GAAzCiB,EAAAA,IAAG,MAAO8mC,EAAO,GAAG3/B,QAAQ,IAAK,OAG9C,IAAI4/B,EAASznC,KAAKinC,YAAYvlC,EAAM1B,KAAK+mC,SAMzC,OAJKU,GAA4B,IAAlBA,EAAO3nC,SAClBL,GAASiB,EAAAA,IAAG,MAAO+mC,EAAO,GAAG5/B,QAAQ,IAAK,OAGvCpI,CACX,EAEAioC,oBAAmB,WAEf1nC,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UAAY7F,KAAKlD,WAC1D,EAEAkiC,eAAc,SAACv/B,GAEXO,KAAKktB,MAAQztB,CACjB,EAEAwkC,aAAY,SAACrhC,GAET,IAAInD,EAAQO,KAAKqnC,cAAczkC,EAAEI,OAAOvD,OAEnCA,IAAUO,KAAK6F,YAIpB7F,KAAKgnC,UAAYvnC,EACrB,EAEAkoC,cAAa,SAAC/kC,GAEV,IAAInD,EAAQO,KAAKgnC,UAGjBhnC,KAAKgnC,UAAY,KAEVvnC,GAASA,IAAUO,KAAK6F,WAI/B7F,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UAAYpG,EACrD,EAEAmoC,sBAAqB,SAACnoC,GAElBO,KAAKktB,OAAQ,EAGbltB,KAAKgnC,UAAY,KAEjBhnC,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UAAYpG,EACrD,GAIJk3B,iBAAgB,WAEZ,IAAO32B,KAAKjD,YAAeiD,KAAK6F,UAC5B,OAAO,KAGX,IAAI9J,EAAQ,CAAC,EAMb,OAJOiE,KAAKrD,WACRZ,EAAM43B,YAAc3zB,KAAK0nC,sBAG7BjiC,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,+CAC0DvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,WAC5CR,KAAK6kB,MAAM0H,OAAK,OAGvC,EAEAoF,iBAAgB,WAEZ,OAAAnxB,EAAAA,EAAAA,aAAA,uDAAAA,EAAAA,EAAAA,aAAA,WAEmBR,KAAK6kB,MAAM+M,WAAS,OAG3C,EAEAhiB,YAAW,WAEP,IAAI9Y,EAAQ,CACR0D,MAAOO,KAAKonC,cAAcpnC,KAAK6F,WAC/BlJ,SAAUqD,KAAKrD,SACfW,YAAa0C,KAAK1C,YAClB+0B,QAASryB,KAAKikC,aACdzR,OAAQxyB,KAAK2nC,cACbE,SAAU7nC,KAAK2nC,eAGnB,OAAAliC,EAAAA,EAAAA,aAAA,0CAAAA,EAAAA,EAAAA,aAAA,QAEmB1J,EAAK,OAG5B,EAEAy7B,cAAa,WAMT,OAAA/xB,EAAAA,EAAAA,aAAA,aAJgB,CACZ,8BAIqB,CACfzF,KAAKN,KAAK,mBAAVM,GACAA,KAAKN,KAAK,cAAVM,GACAA,KAAKN,KAAK,mBAAVM,IAGd,EAEA6e,YAAW,WACX,IAAAlf,EAAA,KACI,OAAOkB,EAAAA,IAAIC,KAAKd,KAAK1D,QAAS,SAACmD,GAE3B,IAAIiC,EAAO/B,EAAKynC,cAAc3nC,GAE1BqoC,EAAc,CAIlBA,QAAyB,WACrBnoC,EAAKioC,sBAAsBnoC,EAC/B,GAEA,OAAAgG,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,kBAA4B42B,EAAWv8B,GAAG7J,GAAAA,EAAI,2BAAJA,EAAI,GAClD,EACJ,EAEAs2B,cAAa,WACb,IAAA30B,EAAA,KACQtH,EAAQ,CACRmwB,QAAS,QACT9Y,OAAQ,EACR3W,KAAMuD,KAAKvD,KACXouB,SAAU7qB,KAAK6qB,SACfuB,aAAa,EACbzvB,SAAUqD,KAAKrD,UAGf+L,EAAQ,CAEZA,IAAY,WAAM,IAAA+I,EAEVs2B,EAAc,CACdC,UAAU,EAAMvrC,KAAM4G,EAAK5G,MAG/B,OAAAgJ,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,eAAAZ,EAAAA,EAAAA,YAAA,kEACoFy3B,GAAWx8B,GAAAkG,EACtFpO,EAAK3D,KAAK,cAAV2D,IAA0BoO,EAAA,2BAAAA,EAAA,GAGvC,GAEA,OAAAhM,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aAAAZ,EAAAA,EAAAA,YAAA,0BACoCjN,EAAK6pB,MAAK,+BAAA/b,GAAA,OAAV9N,EAAK6pB,MAAK/b,CAAA,GAAMpV,GAAgB2M,EAExE,EAEA3E,OAAM,WAEF,IAAItG,EAAY,CACZ,mBACA,qBAAuBuC,KAAK9D,KAC5B,qBAAuB8D,KAAKvD,MAmBhC,OAhBOuD,KAAK6F,WACRpI,EAAU8F,KAAK,WAGdvD,KAAKjD,WACNU,EAAU8F,KAAK,eAGdvD,KAAKktB,OACNzvB,EAAU8F,KAAK,WAGdvD,KAAKrD,UACNc,EAAU8F,KAAK,eAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKN,KAAK,gBAAVM,GACAA,KAAKN,KAAK,gBAAVM,IAGd,G,8pBC1cJ,UAEIqF,KAAM,YAENtJ,MAAO,CAEHC,WAAY,oBAGJ,MAAO,EACX,EACAE,KAAM,CAACmE,QAGX5D,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGXhJ,QAAS,oBAGD,MAAO,EACX,EACAJ,KAAM,CAACmE,QAGX4nC,YAAa,oBAGL,MAAO,QACX,EACA/rC,KAAM,CAACoJ,SAGX4iC,YAAa,oBAGL,MAAO,QACX,EACAhsC,KAAM,CAACoJ,SAGX8yB,UAAW,oBAGH,MAAO,OACX,EACAl8B,KAAM,CAACoJ,SAGXgX,WAAY,oBAGJ,MAAO,IACX,EACApgB,KAAM,CAACoJ,UAKfkQ,SAAU,CAEN2yB,cAAa,WAET,QAAUnoC,KAAKooC,eAAetoC,QAC1BE,KAAKooC,eAAetoC,SAAWE,KAAKqoC,WAAWvoC,MACvD,EAEAwoC,mBAAkB,WAEd,QAAUtoC,KAAKooC,eAAetoC,QAC1BE,KAAKooC,eAAetoC,SAAWE,KAAKqoC,WAAWvoC,MACvD,EAEAyoC,cAAa,WAET,QAAUvoC,KAAKwoC,eAAe1oC,QAC1BE,KAAKwoC,eAAe1oC,SAAWE,KAAKyoC,WAAW3oC,MACvD,EAEA4oC,mBAAkB,WAEd,QAAU1oC,KAAKwoC,eAAe1oC,QAC1BE,KAAKwoC,eAAe1oC,SAAWE,KAAKyoC,WAAW3oC,MACvD,EAEAuoC,WAAU,WACV,IAAA1oC,EAAA,KACQ+H,EAAS7G,EAAAA,IAAI8iB,OAAO3jB,KAAK1D,QAAS,SAAC4jB,GACnC,OAASrf,EAAAA,IAAIoB,KAAKtC,EAAKkG,UAASpE,GAAA,GAAK9B,EAAK2c,WAAa4D,EAAKvgB,EAAK2c,aACrE,GAEA,GAAK5b,EAAAA,IAAIsF,QAAQhG,KAAK2oC,cAClB,OAAO9nC,EAAAA,IAAI4L,MAAM/E,GAGrB,IAAIkhC,EAAgB,IAAInV,OAAOzzB,KAAK2oC,aAAc,KAMlD,OAJAjhC,EAAS7G,EAAAA,IAAI8iB,OAAOjc,EAAQ,SAACwY,GACzB,OAAOA,EAAKvgB,EAAKy4B,WAAWnyB,MAAM2iC,EACtC,GAEO/nC,EAAAA,IAAI4L,MAAM/E,EACrB,EAEA+gC,WAAU,WACV,IAAAplC,EAAA,KACQL,EAASnC,EAAAA,IAAI8iB,OAAO3jB,KAAK1D,QAAS,SAAC4jB,GACnC,QAAUrf,EAAAA,IAAIoB,KAAKoB,EAAKwC,UAASpE,GAAA,GAAK4B,EAAKiZ,WAAa4D,EAAK7c,EAAKiZ,aACtE,GAEA,GAAK5b,EAAAA,IAAIsF,QAAQhG,KAAK6oC,cAClB,OAAOhoC,EAAAA,IAAI4L,MAAMzJ,GAGrB,IAAI4lC,EAAgB,IAAInV,OAAOzzB,KAAK6oC,aAAc,KAMlD,OAJA7lC,EAASnC,EAAAA,IAAI8iB,OAAO3gB,EAAQ,SAACkd,GACzB,OAAOA,EAAK7c,EAAK+0B,WAAWnyB,MAAM2iC,EACtC,GAEO/nC,EAAAA,IAAI4L,MAAMzJ,EACrB,GAGJ4C,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QACLiE,UAAW7F,KAAKhE,WAChB2sC,aAAc,GACdE,aAAc,GACdT,eAAgB,GAChBI,eAAgB,GAExB,EAEAhhC,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,GAIJqG,QAAS,CAELgjC,gBAAe,SAACxsC,GAChB,IAAAgO,EAAA,KACIzJ,EAAAA,IAAIC,KAAKxE,EAAS,SAACoL,GAEf,IAAIwY,EAAOrf,EAAAA,IAAIoB,KAAKqI,EAAKhO,QAAOmF,GAAA,GAC3B6I,EAAKgS,WAAa5U,IAGvB7G,EAAAA,IAAI+lB,IAAItc,EAAKzE,UAAWqa,EAAIze,GAAA,GACvB6I,EAAKgS,WAAa5U,GAG3B,GAEA1H,KAAK6T,MAAM,QAAS7T,KAAK6F,UAC7B,EAEAkjC,gBAAe,SAACzsC,GAChB,IAAAwO,EAAA,KACIjK,EAAAA,IAAIC,KAAKxE,EAAS,SAACoL,GAEf7G,EAAAA,IAAIkB,OAAO+I,EAAKjF,UAASpE,GAAA,GACpBqJ,EAAKwR,WAAa5U,GAG3B,GAEA1H,KAAK6T,MAAM,QAAS7T,KAAK6F,UAC7B,EAEAmjC,cAAa,SAAC3nB,GAGV,IAAIre,EAASqe,EAAK5hB,MAAMO,KAAKsc,YAG7Bzb,EAAAA,IAAIkB,OAAO/B,KAAKwoC,eAAgBxlC,GAEhChD,KAAK6F,UAAYhF,EAAAA,IAAIkB,OAAO/B,KAAK6F,UAASpE,GAAA,GACrCzB,KAAKsc,WAAatZ,IAGvBhD,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UACzC,EAEAojC,cAAa,SAAC5nB,GAGV,IAAI3Z,EAAS2Z,EAAK5hB,MAAMO,KAAKsc,YAG7Bzb,EAAAA,IAAIkB,OAAO/B,KAAKooC,eAAgB1gC,GAEhC7G,EAAAA,IAAI+lB,IAAI5mB,KAAK6F,UAAWwb,EAAKnB,KAAMxY,EAAMjG,GAAA,GACpCzB,KAAKsc,WAAa5U,IAGvB1H,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UACzC,EAEAqjC,aAAY,WACZ,IAAA79B,EAAA,KACIxK,EAAAA,IAAIC,KAAKd,KAAKwoC,eAAgB,SAACxlC,GAE3BnC,EAAAA,IAAIkB,OAAOsJ,EAAKxF,UAASpE,GAAA,GACpB4J,EAAKiR,WAAatZ,GAG3B,GAEAhD,KAAKwoC,eAAiB,GAEtBxoC,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UACzC,EAEAsjC,aAAY,WACZ,IAAA79B,EAAA,KACIzK,EAAAA,IAAIC,KAAKd,KAAKooC,eAAgB,SAAC1gC,GAE3B,IAAIwY,EAAOrf,EAAAA,IAAIoB,KAAKqJ,EAAKhP,QAAOmF,GAAA,GAC3B6J,EAAKgR,WAAa5U,IAGvB7G,EAAAA,IAAI+lB,IAAItb,EAAKzF,UAAWqa,EAAIze,GAAA,GACvB6J,EAAKgR,WAAa5U,GAG3B,GAEA1H,KAAKooC,eAAiB,GAEtBpoC,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UACzC,EAEAujC,qBAAoB,SAAC71B,GAEjBvT,KAAKooC,eAAiB70B,CAC1B,EAEA81B,qBAAoB,SAAC91B,GAEjBvT,KAAKwoC,eAAiBj1B,CAC1B,GAIJ+1B,mBAAkB,WAClB,IAAA53B,EAAA,KACQ3V,EAAQ,CACRC,WAAYgE,KAAKmoC,cACjB1rC,KAAMuD,KAAKvD,KACXP,KAAM8D,KAAK9D,KACXu8B,aAAcz4B,KAAKsoC,mBACnB3rC,UAAYqD,KAAKqoC,WAAWvoC,OAGhC/D,sBAA+B,WAC3B2V,EAAKjL,MAAMiB,OAAOmhB,WACtB,GAEA,OAAApjB,EAAAA,EAAAA,aAAA,qCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aAEuBnV,EAAK,OAGhC,EAEAwtC,kBAAiB,WAEb,IAAIxS,GAAStxB,EAAAA,EAAAA,aAAA,yCAEHzF,KAAKioC,cAIXuB,GAAW/jC,EAAAA,EAAAA,aAAA,yCAELzF,KAAKqoC,WAAWvoC,SAI1B,OAAA2F,EAAAA,EAAAA,aAAA,mCAEU,CAACsxB,EAAWyS,IAG1B,EAEAC,mBAAkB,WAEd,OAAAhkC,EAAAA,EAAAA,aAAA,oCAEUzF,KAAKN,KAAK,qBAAVM,GACAA,KAAKN,KAAK,oBAAVM,GACAA,KAAKN,KAAK,qBAAVM,IAGd,EAEA0pC,mBAAkB,WAClB,IAAA33B,EAAA,KACQhW,EAAQ,CACRuB,YAAa0C,KAAKpE,MAAM,eACxBa,KAAMuD,KAAKvD,KACXP,KAAM8D,KAAK9D,KACX0B,KAAMqH,KAAK6kB,MAAM0H,MACjBvzB,cAAgB+B,KAAK2oC,aAGzB5sC,YAAuB,WACnBgW,EAAK42B,aAAe,EACxB,EAEA5sC,sBAA+B,WAC3BgW,EAAKq2B,eAAiB,EAC1B,GAEA,OAAA3iC,EAAAA,EAAAA,aAAA,qCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAAAZ,EAAAA,EAAAA,YAAA,YAEwByB,EAAK42B,aAAY,+BAAAx3B,GAAA,OAAjBY,EAAK42B,aAAYx3B,CAAA,GAAMpV,GAAK,OAGxD,EAEA4tC,iBAAgB,WAEZ,IAAI5tC,EAAQ,CACRyU,MAAO,CAACxQ,KAAK2B,IAAM,UACnB8f,YAAa,CAACzhB,KAAK2B,IAAM,UACzBwQ,MAAOnS,KAAKqoC,WACZ5rC,KAAMuD,KAAKvD,KACXP,KAAM8D,KAAK9D,KACXipB,cAAc,EACd5R,SAAUvT,KAAKooC,eACfvoB,SAAU,WAAF,OAAS,EAAE,EACnBgE,aAAa,EACb3H,WAAYlc,KAAKN,KAAK,cACtBkqC,OAAQ5pC,KAAK+oC,gBACb,cAAiB/oC,KAAKipC,cACtB,oBAAqBjpC,KAAKopC,sBAG9B,OAAA3jC,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,cAAAZ,EAAAA,EAAAA,YAAA,wCACyDvU,GAAK,KAElE,EAEA8tC,mBAAkB,WAClB,IAAA33B,EAAA,KACQnW,EAAQ,CACRC,WAAYgE,KAAKuoC,cACjB9rC,KAAMuD,KAAKvD,KACXP,KAAM8D,KAAK9D,KACXu8B,aAAcz4B,KAAK0oC,mBACnB/rC,UAAYqD,KAAKyoC,WAAW3oC,OAGhC/D,sBAA+B,WAC3BmW,EAAKzL,MAAMzD,OAAO6lB,WACtB,GAEA,OAAApjB,EAAAA,EAAAA,aAAA,qCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aAEuBnV,EAAK,OAGhC,EAEA+tC,kBAAiB,WAEb,IAAI/S,GAAStxB,EAAAA,EAAAA,aAAA,yCAEHzF,KAAKkoC,cAIXsB,GAAW/jC,EAAAA,EAAAA,aAAA,yCAELzF,KAAKyoC,WAAW3oC,SAI1B,OAAA2F,EAAAA,EAAAA,aAAA,mCAEU,CAACsxB,EAAWyS,IAG1B,EAEAO,mBAAkB,WAEd,OAAAtkC,EAAAA,EAAAA,aAAA,oCAEUzF,KAAKN,KAAK,qBAAVM,GACAA,KAAKN,KAAK,oBAAVM,GACAA,KAAKN,KAAK,qBAAVM,IAGd,EAEAgqC,mBAAkB,WAClB,IAAAt3B,EAAA,KACQ3W,EAAQ,CACRuB,YAAa0C,KAAKpE,MAAM,eACxBa,KAAMuD,KAAKvD,KACXP,KAAM8D,KAAK9D,KACX0B,KAAMqH,KAAK6kB,MAAM0H,MACjBvzB,cAAgB+B,KAAK6oC,aAGzB9sC,YAAuB,WACnB2W,EAAKm2B,aAAe,EACxB,EAEA9sC,sBAA+B,WAC3B2W,EAAK81B,eAAiB,EAC1B,GAEA,OAAA/iC,EAAAA,EAAAA,aAAA,qCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAAAZ,EAAAA,EAAAA,YAAA,YAEwBoC,EAAKm2B,aAAY,+BAAA13B,GAAA,OAAjBuB,EAAKm2B,aAAY13B,CAAA,GAAMpV,GAAK,OAGxD,EAEAkuC,iBAAgB,WAEZ,IAAIluC,EAAQ,CACRyU,MAAO,CAACxQ,KAAK2B,IAAM,UACnB8f,YAAa,CAACzhB,KAAK2B,IAAM,UACzBwQ,MAAOnS,KAAKyoC,WACZhsC,KAAMuD,KAAKvD,KACXP,KAAM8D,KAAK9D,KACXipB,cAAc,EACd5R,SAAUvT,KAAKwoC,eACf3oB,SAAU,WAAF,OAAS,CAAC,EAClBgE,aAAa,EACb3H,WAAYlc,KAAKN,KAAK,cACtBkqC,OAAQ5pC,KAAK8oC,gBACb,cAAiB9oC,KAAKgpC,cACtB,oBAAqBhpC,KAAKqpC,sBAG9B,OAAA5jC,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,cAAAZ,EAAAA,EAAAA,YAAA,wCACyDvU,GAAK,KAElE,EAEAmgB,WAAU,SAACngB,GAEP,OAAKiE,KAAKoB,OAAM,QACLpB,KAAKoB,OAAM,QAASrF,IAG/B0J,EAAAA,EAAAA,aAAA,kCAEU1F,EAAAA,IAAIf,IAAIjD,EAAMmkB,KAAMlgB,KAAKo4B,YAGvC,EAEA8R,iBAAgB,WAEZ,IAAInuC,EAAQ,CACRY,UAAYqD,KAAKooC,eAAetoC,OAChCrD,KAAMuD,KAAKvD,KACXP,KAAM8D,KAAK9D,KACXyB,QAAQ,EACRC,KAAMqH,KAAK6kB,MAAMC,WACjBJ,QAAS3pB,KAAKmpC,cAGlB,OAAA1jC,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WACiBnV,EAAK,KAE1B,EAEAouC,iBAAgB,WAEZ,IAAIpuC,EAAQ,CACRY,UAAYqD,KAAKwoC,eAAe1oC,OAChCrD,KAAMuD,KAAKvD,KACXP,KAAM8D,KAAK9D,KACXyB,QAAQ,EACRC,KAAMqH,KAAK6kB,MAAMoX,UACjBvX,QAAS3pB,KAAKkpC,cAElB,OAAAzjC,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WACiBnV,EAAK,KAE1B,EAEAgI,OAAM,SAAC8C,GAEH,IAAIpJ,EAAY,CACZ,aACA,eAAiBuC,KAAKvD,KACtB,eAAiBuD,KAAK9D,MAG1B,OAAAuJ,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,EAAAgI,EAAAA,EAAAA,aAAA,mCAEXzF,KAAKN,KAAK,qBAAVM,GACAA,KAAKN,KAAK,mBAAVM,MAA+ByF,EAAAA,EAAAA,aAAA,sCAG/BzF,KAAKN,KAAK,mBAAVM,GACAA,KAAKN,KAAK,mBAAVM,MAA+ByF,EAAAA,EAAAA,aAAA,mCAG/BzF,KAAKN,KAAK,qBAAVM,GACAA,KAAKN,KAAK,mBAAVM,MAIlB,GC1hBG,IAAMoqC,GAAc,CAEvB7gB,SAAQ,SAAC8gB,EAAO5qC,GACZ,OAAO9D,EAAAA,OAAOC,MAAM,oBACxB,EAEA0uC,YAAW,SAACD,EAAO5qC,GAAiB,IAAVd,EAAGkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,GAExB7B,EAAQ6C,EAAAA,IAAIoB,KAAKjC,KAAK20B,SAAU,SAACzU,GACjC,OAAOA,EAAKhhB,OAASP,CACzB,IAAMA,EAEN,OAAOhD,EAAAA,OAAOC,MAAM,oCAAqC,CACrDoC,MAAOA,EAAMA,OAASW,GAE9B,EAEA4rC,gBAAe,SAACF,EAAO5qC,GAAiB,IAAVd,EAAGkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,GAE5B7B,EAAQ6C,EAAAA,IAAIoB,KAAKjC,KAAK20B,SAAU,SAACzU,GACjC,OAAOA,EAAKhhB,OAASP,CACzB,GAEA,OAAOhD,EAAAA,OAAOC,MAAM,wCAAyC,CACzDoC,MAAOA,EAAMA,OAASW,GAE9B,EAEA6rC,KAAI,SAACH,EAAO5qC,GACZ,IADmBd,EAAGkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,GAEjB7B,EAAQ6C,EAAAA,IAAIoB,KAAKjC,KAAK20B,SAAU,SAACzU,GACjC,OAAOA,EAAKhhB,OAASP,CACzB,IAAMA,EAEN,OAAOhD,EAAAA,OAAOC,MAAM,yBAA0B,CAC1CoC,MAAOA,EAAMA,OAASW,GAE9B,EAEA8rC,SAAQ,SAACJ,EAAO5qC,GAChB,IADuBd,EAAGkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,GAErB7B,EAAQ6C,EAAAA,IAAIoB,KAAKjC,KAAK20B,SAAU,SAACzU,GACjC,OAAOA,EAAKhhB,OAASP,CACzB,IAAMA,EAEN,OAAOhD,EAAAA,OAAOC,MAAM,+BAAgC,CAChDoC,MAAOA,EAAMA,OAASW,GAE9B,EAEAc,MAAK,SAAC4qC,EAAO5qC,GAAuB,IAAhB4H,EAAGxH,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,SACtB,OAAOlE,EAAAA,OAAOC,MAAM,2BAA4B,CAAEyL,IAAAA,GACtD,EAEArK,IAAG,SAACqtC,EAAO5qC,GAA+B,IAAxBzC,EAAG6C,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG3C,OAAOsS,UAC3B,OAAO7T,EAAAA,OAAOC,MAAM,6BAA8B,CAAEoB,IAAAA,GACxD,EAEAC,IAAG,SAACotC,EAAO5qC,GAA+B,IAAxBxC,EAAG4C,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG3C,OAAOC,UAC3B,OAAOxB,EAAAA,OAAOC,MAAM,2BAA4B,CAAEqB,IAAAA,GACtD,EAEAytC,UAAS,SAACL,EAAO5qC,GAA+B,IAAxBzC,EAAG6C,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG3C,OAAOsS,UACjC,OAAO7T,EAAAA,OAAOC,MAAM,mCAAoC,CAAEoB,IAAAA,GAC9D,EAEA2tC,UAAS,SAACN,EAAO5qC,GAA+B,IAAxBxC,EAAG4C,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG3C,OAAOC,UACjC,OAAOxB,EAAAA,OAAOC,MAAM,kCAAmC,CAAEqB,IAAAA,GAC7D,EAEA2tC,MAAK,SAACP,EAAO5qC,GACT,OAAO9D,EAAAA,OAAOC,MAAM,wBACxB,GAISivC,GAAY,CAErBthB,SAAQ,SAAC8gB,EAAO5qC,GAEZ,OAAKiB,EAAAA,IAAIoqC,OAAOrrC,IACK,IAAVA,GAGFiB,EAAAA,IAAIsF,QAAQvG,EACzB,EAEA6qC,YAAW,SAACD,EAAO5qC,GAAiB,IAAVd,EAAGkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,GAExBmD,EAASjD,EAAAA,IAAIf,IAAIgB,KAAK+qC,KAAMpsC,GAEhC,QAAK+B,EAAAA,IAAIsF,QAAQhD,KAIZtC,EAAAA,IAAIoqC,OAAOrrC,IACK,IAAVA,GAGFiB,EAAAA,IAAIsF,QAAQvG,GACzB,EAEA8qC,gBAAe,SAACF,EAAO5qC,GAAiB,IAAVd,EAAGkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,GAE5BmD,EAASjD,EAAAA,IAAIf,IAAIgB,KAAK+qC,KAAMpsC,GAEhC,OAAO+B,EAAAA,IAAIsF,QAAQhD,KAIdtC,EAAAA,IAAIoqC,OAAOrrC,IACK,IAAVA,GAGFiB,EAAAA,IAAIsF,QAAQvG,GACzB,EAEA+qC,KAAI,SAACH,EAAO5qC,GAAiB,IAAVd,EAAGkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,GACrB,OAAOJ,IAAUM,EAAAA,IAAIf,IAAIgB,KAAK+qC,KAAMpsC,EACxC,EAEA8rC,SAAQ,SAACJ,EAAO5qC,GAAiB,IAAVd,EAAGkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,GACzB,OAAOJ,IAAUM,EAAAA,IAAIf,IAAIgB,KAAK+qC,KAAMpsC,EACxC,EAEAc,MAAK,SAAC4qC,EAAO5qC,GAAuB,IAAhB4H,EAAGxH,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,SAEtB,QAAKa,EAAAA,IAAIC,SAASlB,IACPA,IAAU4H,CAIzB,EAEArK,IAAG,SAACqtC,EAAO5qC,GAA+B,IAAxBzC,EAAG6C,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG3C,OAAOsS,UAE3B,QAAK9O,EAAAA,IAAIqrB,SAAStsB,IACPA,GAASzC,CAIxB,EAEAC,IAAG,SAACotC,EAAO5qC,GAA+B,IAAxBxC,EAAG4C,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG3C,OAAOC,UAE3B,QAAKuD,EAAAA,IAAIqrB,SAAStsB,IACPA,GAASxC,CAIxB,EAEAytC,UAAS,SAACL,EAAO5qC,GAA+B,IAAxBzC,EAAG6C,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG3C,OAAOsS,UAEjC,SAAK9O,EAAAA,IAAIC,SAASlB,KAAUiB,EAAAA,IAAIE,QAAQnB,KAC7BA,EAAMK,OAAS9C,CAI9B,EAEA2tC,UAAS,SAACN,EAAO5qC,GAA+B,IAAxBxC,EAAG4C,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG3C,OAAOC,UAEjC,SAAKuD,EAAAA,IAAIC,SAASlB,KAAUiB,EAAAA,IAAIE,QAAQnB,KAC7BA,EAAMK,OAAS7C,CAI9B,EAEA2tC,MAAK,SAACP,EAAO5qC,GAET,QAAKiB,EAAAA,IAAIC,SAASlB,IACPA,EAAMwG,MAAM,uBAI3B,G,y2DC/KJ,UAEIZ,KAAM,QAEN6sB,cAAc,EAEd5pB,MAAO,CACHpJ,KAAM,QAGVnD,MAAO,CAEH6gB,MAAO,oBAGC,OAAO,CACX,EACA1gB,KAAM,CAACqJ,UAGXylC,IAAK,oBAGG,MAAO,KACX,EACA9uC,KAAM,CAACoJ,SAGXylC,KAAM,oBAGE,MAAO,CAAC,CACZ,EACA7uC,KAAM,CAAC2C,SAGXosC,OAAQ,oBAGA,MAAO,CAAC,CACZ,EACA/uC,KAAM,CAAC2C,SAGXpC,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX4lC,KAAM,oBAGE,MAAO,SACX,EACAhvC,KAAM,CAACoJ,SAGX+0B,MAAO,oBAGC,MAAO,UACX,EACAn+B,KAAM,CAACoJ,SAGXinB,QAAS,oBAGD,OAAO,CACX,EACArwB,KAAM,CAACqJ,UAGX4lC,OAAQ,oBAGA,MAAO,CAAC,WAAY,SACxB,EACAjvC,KAAM,CAACmE,QAGX+qC,YAAa,oBAGL,OAAO,CACX,EACAlvC,KAAM,CAACqJ,UAGX8lC,YAAa,oBAGL,OAAO,CACX,EACAnvC,KAAM,CAACqJ,WAKfiQ,SAAU,CAEN/X,UAAS,WAEL,OAAOuC,KAAKiB,OAAM,MAIXP,EAAAA,IAAIE,QAAQZ,KAAKiB,QAAUjB,KAAKiB,OAAM,MACzC,CAACjB,KAAKiB,OAAM,OAJL,EAKf,GAIJ2E,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QAAQ+yB,SAAU,GAAI2W,MAAO,GAAIC,OAAQ,CAAC,EAAGC,WAAY,CAAC,EAAGC,SAAS,EAEnF,EAEAx2B,QAAO,WAEH,MAAO,CACH+c,MAAOhyB,KAEf,EAEAqM,QAAO,WAEH3L,EAAAA,IAAIwC,MAAMlD,KAAKN,KAAK,SAAU,IAClC,EAEAkd,MAAK,WAED5c,KAAKsmB,OAAO,OAAQtmB,KAAK0rC,WAAY,CACjCllB,MAAM,IAGVxmB,KAAK2rC,aACT,EAEA7lC,QAAS,CAEL8lC,UAAS,WAEL,OAAO5rC,KAAKurC,MAChB,EAEAM,YAAW,SAACr7B,GAERxQ,KAAKurC,OAAO/6B,EAAM7O,KAAO6O,CAC7B,EAEAs7B,YAAW,SAACt7B,UAEDxQ,KAAKurC,OAAO/6B,EAAM7O,IAC7B,EAEA2wB,SAAQ,SAACzX,GAWL,OATK7a,KAAKusB,UACN1R,EAAMK,iBACNL,EAAM/X,mBAGLd,EAAAA,IAAIC,KAAK4Y,EAAM7X,QAAQ+oC,GAAG,UAC3B/rC,KAAK6T,MAAM,SAAUgH,GAGlB7a,KAAKusB,OAChB,EAEAyf,WAAU,SAAC9rB,GAEPrf,EAAAA,IAAI+lB,IAAI5mB,KAAK20B,SAAUzU,EAAM,CACzBve,IAAKue,EAAKve,KAElB,EAEAsqC,WAAU,SAAC/rB,GAEPrf,EAAAA,IAAIkB,OAAO/B,KAAK20B,SAAS,CACrBhzB,IAAKue,EAAKve,KAElB,EAEAgqC,YAAW,WACX,IAAAhsC,EAAA,KADY+qB,EAAO7qB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,IAElBoe,aAAaje,KAAK0qB,SAElB1qB,KAAK0qB,QAAUxmB,WAAW,WACtBvE,EAAK8rC,SAAU,CACnB,EAAG/gB,GAEH1qB,KAAKyrC,SAAU,EAEf,IAAIhsC,EAAQM,EAAAA,IAAIoN,OAAOnN,KAAK+qC,KACxB/qC,KAAKmrC,QAETnrC,KAAKksC,UAAY3/B,KAAKC,UAAU/M,EACpC,EAEAisC,WAAU,WAEN,IAAK1rC,KAAKyrC,QAAV,CAIA,IAAIhsC,EAAQM,EAAAA,IAAIoN,OAAOnN,KAAK+qC,KACxB/qC,KAAKmrC,QAELgB,EAAY5/B,KAAKC,UAAU/M,GAE1BO,KAAKksC,WAAaC,IAIvBnsC,KAAKosC,WAELpsC,KAAKksC,UAAYC,EAEjBnsC,KAAK6T,MAAM,UAfX,CAgBJ,EAEAw4B,cAAa,SAAChC,GACd,IAAAhnC,EAAA,KACQ4nC,EAAS,GAwBb,OAtBApqC,EAAAA,IAAIC,KAAKupC,EAAMiB,MAAO,SAACgB,GAAS,IAAAC,EAAAC,EACSC,EAAAC,GAAfJ,EAAKpsC,MAAM,MAA5BmF,EAAIonC,EAAA,GAAKrsC,EAAIusC,GAAAF,GAAAluB,MAAA,GAElB,GAAOssB,GAAUxlC,IAAU+kC,GAAY/kC,GAAvC,CAIA,IAAI5F,EAAQM,EAAAA,IAAIf,IAAIqE,EAAK0nC,KAAMV,EAAMnrC,MAErC,KAAKqtC,EAAA1B,GAAUxlC,IAAMhG,KAAIkB,MAAAgsC,EAAA,CAAClpC,EAAMgnC,EAAO5qC,GAAKgD,OAAAge,GAAKrgB,KAAjD,CAIA,IAAIwsC,GAAUJ,EAAApC,GAAY/kC,IAAMhG,KAAIkB,MAAAisC,EAAA,CAACnpC,EAAMgnC,EAAO5qC,GAAKgD,OAAAge,GAAKrgB,KAEvDM,EAAAA,IAAIsF,QAAQ4mC,IAIjB3B,EAAO1nC,KAAKqpC,EARZ,CANA,CAeJ,GAEO3B,CACX,EAEAmB,SAAQ,WACR,IAAA9hC,EAAA,KACQ2gC,EAAS,CAAC,EAUd,OARApqC,EAAAA,IAAIC,KAAKd,KAAK20B,SAAU,SAAC0V,GACrBY,EAAOZ,EAAMnrC,MAAQoL,EAAK+hC,cAAchC,EAC5C,GAEArqC,KAAKwrC,WAAazrC,EAAAA,IAAI4jB,OAAOsnB,EAAQ,SAAC4B,GAClC,OAASnsC,EAAAA,IAAIsF,QAAQ6mC,EACzB,GAEO7sC,KAAKwrC,UAChB,EAEArH,QAAO,WACP,IADQ2I,EAAajtC,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,IAAAA,UAAA,GAEjBG,KAAKosC,WAEL,IAAIltB,EAAQxe,EAAAA,IAAI0G,KAAKpH,KAAKwrC,YAAY1rC,OAMtC,OAJKgtC,IACD5tB,GAASxe,EAAAA,IAAI0G,KAAKpH,KAAKirC,QAAQnrC,QAGlB,IAAVof,CACX,EAEA6tB,UAAS,WAEL,IAAI9B,EAAS,CAAC,EAoBd,OAlBAlrC,EAAAA,IAAIe,KAAKd,KAAKirC,OAAQ,SAAC4B,EAAKluC,GAEjB+B,EAAAA,IAAIE,QAAQisC,KACfA,EAAM,CAACA,IAGX5B,EAAOtsC,GAAOkuC,CAClB,GAEA9sC,EAAAA,IAAIe,KAAKd,KAAKwrC,WAAY,SAACqB,EAAKluC,GAEvBoB,EAAAA,IAAImG,IAAI+kC,EAAQtsC,KACjBkuC,EAAMhsC,EAAAA,IAAI2C,MAAMynC,EAAOtsC,GAAMkuC,IAGjC5B,EAAOtsC,GAAOkuC,CAClB,GAEO5B,CACX,GAIJlnC,OAAM,WAEF,IAAItG,EAAY,CACZ,SACA,WAAauC,KAAKvD,KAClB,WAAauD,KAAK9D,KAClB,WAAa8D,KAAKq6B,OAGlB2S,EAAQjtC,EAAAA,IAAIoN,OAAOnN,KAAKiB,OAAQ,CAAC,QAAS,WAAY,YAAa,CACnEgH,MAAOjI,KAAKQ,KAAK/C,KAOrB,OAJAuvC,EAAgB,SAAI,SAACpqC,GACjB,OAAO,CACX,GAEOiG,EAAAA,EAAAA,GAAE7I,KAAKgrC,I,8VAAG99B,CAAA,GAAO8/B,GAAS,CAC7BhtC,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,WAE1C,GCrVJ,IAEIiE,KAAM,WAEN0P,OAAQ,CAEJid,MAAO,CACHn1B,aAAS0B,IAKjBqH,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QAEb,EAGAkE,QAAS,CAELmnC,UAAS,SAAC5C,GAEN,GAMR6C,YAAW,SAAC7C,GAER,IAAIY,EAASlrC,EAAAA,IAAIf,IAAIgB,KAAKgyB,MAAM+a,YAC5B1C,EAAMnrC,KAAM,IAIhB,GAFAqL,QAAQwc,IAAI,MAAOsjB,EAAMnrC,KAAM+rC,GAE1BvqC,EAAAA,IAAIsF,QAAQilC,GACb,OAAO,KAGX,IAAI94B,EAAQtR,EAAAA,IAAIC,KAAKmqC,EAAQ,SAACzgC,GAC1B,OAAA/E,EAAAA,EAAAA,aAAA,WAAa+E,GACjB,GAEI2iC,EAAY,CAIhBA,QAAuB,WACnB5iC,QAAQwc,IAAI,SACZsjB,EAAM+C,WACV,GAEA,OAAA3nC,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,0BACqC68B,GAAS,EAAA1nC,EAAAA,EAAAA,aAAA,yCAAAA,EAAAA,EAAAA,aAAA,sDAAA8L,EAAAA,EAAAA,iBAAA,MAAA9L,EAAAA,EAAAA,aAAA,aAEsB4kC,EAAMrsC,WAAKyH,EAAAA,EAAAA,aAAA,0CAAAA,EAAAA,EAAAA,aAAA,WAG9D0M,OAIrB,EAEApO,OAAM,WACN,IAAApE,EAAA,KACI,IAAMK,KAAKgyB,MACP,OAAO,KAGX,IAAIv0B,EAAY,CACZ,aACA,eAAiBuC,KAAKgyB,MAAMv1B,MAG5B0V,EAAQtR,EAAAA,IAAIC,KAAKd,KAAKgyB,MAAM2C,SAAU,SAAC0V,GACvC,OAAO1qC,EAAKD,KAAK,cAAVC,CAAyB0qC,EACpC,GAEA,OAAA5kC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CAChB0U,GAGb,GCtFJ,IAEI9M,KAAM,aAEN0P,OAAQ,CAEJid,MAAO,CACHn1B,aAAS0B,GAGb8uC,WAAY,CACRxwC,aAAS0B,IAKjBxC,MAAO,CAEHC,WAAY,oBAGJ,OAAO,CACX,EACAE,KAAM,CAACqJ,UAGX5G,IAAK,oBAGG,OAAOiD,EAAAA,EAAAA,OACX,EACA1F,KAAM,CAACoJ,SAGXtH,MAAO,oBAGC,MAAO,EACX,EACA9B,KAAM,CAACoJ,SAGX1H,KAAM,oBAGE,MAAO,EACX,GAGJnB,KAAM,oBAGE,MAAO,EACX,EACAP,KAAM,CAACoJ,SAGX4lC,KAAM,oBAGE,MAAO,EACX,EACAhvC,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX+0B,MAAO,oBAGC,MAAO,UACX,EACAn+B,KAAM,CAACoJ,SAGXmX,KAAM,oBAGE,MAAO,EACX,EACAvgB,KAAM,CAACoJ,OAAQpI,SAGnBgP,SAAU,oBAGF,OAAO,CACX,EACAhQ,KAAM,CAACqJ,UAGXo3B,QAAS,oBAGD,MAAO,EACX,EACAzgC,KAAM,CAACoJ,SAGXgoC,gBAAiB,oBAGT,MAAO,cACX,EACApxC,KAAM,CAACoJ,UAKfM,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QAAQiE,UAAW7F,KAAKhE,WAAYmW,MAAO,GAExD,EAEA8C,QAAO,WAEH,MAAO,CAAEs4B,WAAYvtC,KACzB,EAEAqM,QAAO,WAEErM,KAAKgyB,OACNhyB,KAAKgyB,MAAM6Z,YAAY7rC,KAE/B,EAEAorB,UAAS,WAEAprB,KAAKgyB,OACNhyB,KAAKgyB,MAAM8Z,YAAY9rC,KAE/B,EAEAwH,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,GAIJqG,QAAS,CAEL0nC,SAAQ,WAEJ,OAAOxtC,KAAKmS,KAChB,EAEA65B,WAAU,SAAC9rB,GAEPlgB,KAAKmS,MAAM+N,EAAKve,KAAOue,CAC3B,EAEA+rB,WAAU,SAAC/rB,UAEAlgB,KAAKmS,MAAM+N,EAAKve,IAC3B,EAEA8rC,YAAW,WAEPztC,KAAK6T,MAAM,oBAAqB7T,KAAK6F,WAAc7F,KAAK6F,UAC5D,EAEA6nC,UAAS,WAEL1tC,KAAK6T,MAAM,oBAAqB7T,KAAK6F,WAAY,EACrD,EAEA8nC,WAAU,WAEN3tC,KAAK6T,MAAM,oBAAqB7T,KAAK6F,WAAY,EACrD,GAIJ+nC,eAAc,WAEV,OAAO5tC,KAAKkM,UAIZzG,EAAAA,EAAAA,aAAA,yCAAAA,EAAAA,EAAAA,aAAA,WAEkBR,KAAK6kB,MAAM+M,WAAS,QAL3B,IAQf,EAEAlzB,WAAU,WAEN,OAAO3D,KAAKpC,MAIZ6H,EAAAA,EAAAA,aAAA,qCAAAA,EAAAA,EAAAA,aAAA,WAEkB,CAAC,SAAUzF,KAAKpC,OAAK,QAL5B,IAQf,EAEAgG,WAAU,WAEN,IAAIiqC,GAAQpoC,EAAAA,EAAAA,aAAA,qCAAAA,EAAAA,EAAAA,aAAA,aAEIzF,KAAKhC,UAIrB,OAAAyH,EAAAA,EAAAA,aAAA,qCAEU,CAACzF,KAAKN,KAAK,aAAVM,GAA2B6tC,IAG1C,EAEAC,aAAY,WAER,OAAO9tC,KAAKoB,OAAO08B,QAInBr4B,EAAAA,EAAAA,aAAA,sCAEUzF,KAAKoB,OAAO08B,WALX,IAQf,EAEA1D,YAAW,WAEP,OAAA30B,EAAAA,EAAAA,aAAA,4CAC+CzF,KAAKytC,aAAW,EAAAhoC,EAAAA,EAAAA,aAAA,sCAElDzF,KAAKN,KAAK,iBAAVM,GACAA,KAAKN,KAAK,aAAVM,GACAA,KAAKN,KAAK,eAAVM,MAIjB,EAEA+tC,cAAa,WACb,IAAApuC,EAAA,KACI,OAAMK,KAAK28B,SAIXl3B,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,+CACiDlR,KAAKstC,iBAAe,2BAC5D3tC,EAAKg9B,QAAO,IALV,IAQf,EAEArqB,WAAU,WAEN,IAAI7U,EAAY,CACZ,sBAOJ,OAJKuC,KAAKyc,MACNhf,EAAU8F,KAAK,cAADd,OAAezC,KAAKyc,QAGtChX,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,WAGhD,EAEA2C,OAAM,WAEF,IAAItH,EAAOuD,KAAKvD,KAEXuD,KAAKgyB,QACNv1B,EAAOA,GAAQuD,KAAKgyB,MAAMv1B,MAG9B,IAAIyuC,EAAOlrC,KAAKkrC,KAEXlrC,KAAKqtC,aACNnC,EAAOA,GAAQlrC,KAAKqtC,WAAWnC,MAG9BlrC,KAAKgyB,QACNkZ,EAAOA,GAAQlrC,KAAKgyB,MAAMkZ,MAG9B,IAAIztC,EAAY,CACZ,eACA,iBAAmBhB,EACnB,iBAAmByuC,EACnB,iBAAmBlrC,KAAK9D,KACxB,iBAAmB8D,KAAKq6B,OAe5B,OAZKr6B,KAAKkM,UACNzO,EAAU8F,KAAK,0BAGZvD,KAAK6F,WACRpI,EAAU8F,KAAK,YAGdvD,KAAKoB,OAAO08B,QACbrgC,EAAU8F,KAAK,aAGnBkC,EAAAA,EAAAA,aAAA,eACkBzF,KAAKrB,IAAG,MAASlB,EAAS,iBAAkBuC,KAAKrB,KAAG,CAC5DqB,KAAKN,KAAK,cAAVM,GACAA,KAAKN,KAAK,gBAAVM,GACAA,KAAKN,KAAK,aAAVM,IAGd,GCxUJ,IAEIqF,KAAM,YAEN0P,OAAQ,CAEJid,MAAO,CACHn1B,aAAS0B,GAGbgvC,WAAY,CACR1wC,aAAS0B,GAGbyvC,MAAO,CACHnxC,aAAS0B,GAGb0vC,UAAW,CACPpxC,aAAS0B,GAGb2vC,UAAW,CACPrxC,aAAS0B,GAGb4vC,cAAe,CACXtxC,aAAS0B,GAGbyW,WAAY,CACRnY,aAAS0B,IAKjB0W,QAAO,WAEH,MAAO,CAAEgd,UAAWjyB,KACxB,EAEAjE,MAAO,CAEHC,WAAY,oBAGJ,OAAO,CACX,EACAE,KAAM,CAACqJ,UAGXrG,KAAM,oBAGE,MAAO,IACX,EACAhD,KAAM,CAACoJ,SAGXtH,MAAO,oBAGC,MAAO,EACX,EACA9B,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,EACX,EACAP,KAAM,CAACoJ,SAGXgmC,MAAO,oBAGC,MAAO,EACX,EACApvC,KAAM,CAACmE,QAGXs8B,QAAS,oBAGD,MAAO,EACX,EACAzgC,KAAM,CAACoJ,SAGXgoC,gBAAiB,oBAGT,MAAO,cACX,EACApxC,KAAM,CAACoJ,SAGX8oC,cAAe,oBAGP,OAAO,CACX,EACAlyC,KAAM,CAACqJ,UAGX8oC,YAAa,oBAGL,OAAO,CACX,EACAnyC,KAAM,CAACqJ,UAGX+oC,YAAa,oBAGL,OAAO3yC,EAAAA,OAAOC,MAAM,eACxB,EACAM,KAAM,CAACoJ,SAGXipC,aAAc,oBAGN,OAAO5yC,EAAAA,OAAOC,MAAM,gBACxB,EACAM,KAAM,CAACoJ,UAKfM,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QAEb,EAEAoU,YAAW,WAEFhW,KAAKgyB,OACNhyB,KAAKgyB,MAAMga,WAAWhsC,MAGrBA,KAAKutC,YACNvtC,KAAKutC,WAAWvB,WAAWhsC,KAEnC,EAEAqM,QAAO,WAEErM,KAAKgyB,OACNhyB,KAAKgyB,MAAM1L,OAAO,SAAUtmB,KAAKotC,UAAW,CAAE5mB,MAAM,GAE5D,EAEAxP,cAAa,WAEJhX,KAAKgyB,OACNhyB,KAAKgyB,MAAMia,WAAWjsC,MAGrBA,KAAKutC,YACNvtC,KAAKutC,WAAWtB,WAAWjsC,KAEnC,EAEA8F,QAAS,CAEL0oC,QAAO,WACP,IADQ5mC,EAAS/H,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,IAAAA,UAAA,GAEb,QAAUG,KAAKquC,aAAeruC,KAAKhE,cAAiB4L,CACxD,EAEAjL,SAAQ,SAACiL,GAEL,OAAQ5H,KAAKquC,cAAiBruC,KAAKhE,YAAe4L,CACtD,EAEA6mC,gBAAe,WAEXzuC,KAAK6T,MAAM,qBAAsB7T,KAAKhE,WAC1C,EAEAm5B,WAAU,WAEN,IAAIuZ,EAAS1sC,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKxU,KAAK,SAErC,OAAMysC,EAAO1pC,SAIb0pC,EAAS1sC,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAM+B,OAAO1M,UAEvBkJ,aAIbuF,QAAQwc,IAAI,yBAHD2nB,EAAO1vC,IAAI,GAAGjB,QANd2wC,EAAO1vC,IAAI,GAAGkuB,OAU7B,EAEAkgB,UAAS,WAEL,IAAIx0B,EAAW,qBAAHnW,OAAwBzC,KAAK2B,IAAG,MAEvC3B,KAAKiuC,WACNjuC,KAAKiuC,UAAUU,YAGd3uC,KAAKmuC,eACNnuC,KAAKmuC,cAAcS,UAGlB5uC,KAAKgV,YACNhV,KAAKgV,WAAW2D,eAAeC,EAAU,EAAG,IAGhDrO,QAAQwc,IAAI/mB,KAAKgV,WACrB,GAIJ65B,gBAAe,WAEX,OAAO7uC,KAAKquC,aAIZ5oC,EAAAA,EAAAA,aAAA,8CACiDzF,KAAKyuC,iBAAe,EAAAhpC,EAAAA,EAAAA,aAAA,aACrDzF,KAAKhE,WAAagE,KAAKuuC,aAAevuC,KAAKsuC,gBALhD,IAQf,EAEAlU,YAAW,WAEP,OAAMp6B,KAAKhC,OAAUgC,KAAKoB,OAAOpD,OAIjCyH,EAAAA,EAAAA,aAAA,qCAAAA,EAAAA,EAAAA,aAAA,iBAEwBzF,KAAKm1B,WAAU,mBAAoBn1B,KAAK28B,QAAO,gBAAiB97B,EAAAA,IAAIqF,IAAIlG,KAAKsrC,MAAO,aAAW,CAC1GtrC,KAAKoB,OAAOpD,OAASgC,KAAKoB,OAAOpD,SAAWgC,KAAKhC,UANnD,IAUf,EAEA8wC,YAAW,WAEP,IAAM9uC,KAAKgyB,MACP,OAAO,KAGX,IAAIiZ,EAASlrC,EAAAA,IAAIf,IAAIgB,KAAKgyB,MAAM+a,YAC5B/sC,KAAKd,KAAM,IAEf,OAAKwB,EAAAA,IAAIsF,QAAQilC,QAAjB,GAIAxlC,EAAAA,EAAAA,aAAA,oCAES5E,EAAAA,IAAIyM,MAAM29B,IAGvB,EAEAp2B,YAAW,WAEP,OAAApP,EAAAA,EAAAA,aAAA,gDAESzF,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,WAG/C,EAEA2C,OAAM,WAEF,IAGItG,EAAY,CACZ,cACA,iBALOuC,KAAKvD,MAAQsD,EAAAA,IAAIf,IAAIgB,KAAKgyB,MAAO,OAAQ,QAYpD,OAJKhyB,KAAKrD,YACNc,EAAU8F,KAAK,gBAGnBkC,EAAAA,EAAAA,aAAA,aAAmBhI,EAAS,kBAAmBuC,KAAK2B,KAAG,CAClD3B,KAAKN,KAAK,kBAAVM,GACAA,KAAKN,KAAK,cAAVM,GACAA,KAAKN,KAAK,cAAVM,GACAA,KAAKN,KAAK,cAAVM,IAET,GC7SJ,IAEIqF,KAAM,aAEN0P,OAAQ,CAEJid,MAAO,CACHn1B,aAAS0B,IAKjB0W,QAAO,WAEH,MAAO,CAAEo4B,WAAYrtC,KACzB,EAEAjE,MAAO,CAEHgzC,WAAY,oBAGJ,OAAO,CACX,EACA7yC,KAAM,CAACqJ,UAGXypC,kBAAmB,oBAGX,OAAOrzC,EAAAA,OAAOC,MAAM,aACxB,EACAM,KAAM,CAACoJ,SAGX2pC,WAAY,oBAGJ,MAAO,aACX,EACA/yC,KAAM,CAACoJ,SAGX4lC,KAAM,oBAGE,MAAO,EACX,EACAhvC,KAAM,CAACoJ,SAGX8uB,SAAU,oBAGF,OAAO,CACX,EACAl4B,KAAM,CAACqJ,WAKfK,KAAI,WAEA,MAAO,CACHivB,OAAQ,GAEhB,EAEAxoB,QAAO,WACP,IAAA1M,EAAA,KACIK,KAAKsmB,OAAO,SAAU,WAClB3mB,EAAKuvC,eACT,GAEAlvC,KAAK+O,UAAU,WACXpP,EAAKwvC,eACT,GAEAnvC,KAAKovC,aACT,EAEAtpC,QAAS,CAELupC,UAAS,SAACptB,GACV,IAAA5e,EAAA,KADcisC,EAAKzvC,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,IAAAA,UAAA,GAEVG,KAAKsvC,QAIH5uC,EAAAA,IAAIsF,QAAQhG,KAAK0qB,UACpBzM,aAAaje,KAAK0qB,SAGjB4kB,GACDtvC,KAAKuvC,YAAYttB,EAAIqtB,GAGzBtvC,KAAK0qB,QAAUxmB,WAAW,WACtBb,EAAKksC,YAAYttB,GAAI,EACzB,EAAG,KACP,EAEAstB,YAAW,SAACttB,GACZ,IADgBqtB,EAAKzvC,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,IAAAA,UAAA,GAEjBG,KAAKsvC,MAAQA,EAEbttC,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKxU,KAAK,mBAAmBnB,KAAK,SAACuB,GAC7CL,EAAAA,IAAIC,KAAKI,GAAIuV,YAAY,UAC7B,GAEA5V,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKxU,KAAK,mBAADQ,OAAoBwf,EAAE,OACxC9e,SAAS,UAClB,EAEAisC,YAAW,WACX,IAAA9kC,EAAA,KACItI,EAAAA,IAAIC,KAAKxG,QAAQkH,GAAG,YAAajC,EAAAA,IAAI0pB,SAAS,SAAAxnB,GAE1C,IAAIP,EAAKL,EAAAA,IAAIC,KAAKW,EAAEI,QAAQie,QAAQ,oBAE/BvgB,EAAAA,IAAIsF,QAAQ3D,IAIjBiI,EAAK+kC,UAAUrtC,EAAAA,IAAIC,KAAKI,GAAIod,KAAK,mBAAmB,EAExD,EAAG,KACP,EAEA0vB,cAAa,WACb,IAAArkC,EAAA,KACI9I,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKxU,KAAK,mBAAmBnB,KAAK,SAACuB,GAC7CL,EAAAA,IAAIC,KAAKI,GAAIuV,YAAY,CAAC,aAAc,YAC5C,GAEA,IAAItb,EAAU,CACV+F,GAAI,mBAAoBud,OAAQ5f,KAAKyG,MAAMtE,KAAKsE,MAAMgC,SAGtDpG,EAAKL,EAAAA,IAAIwtC,WAAWlzC,EAAS,SAAC+F,EAAIqO,GAElC,IAAIkI,EAAW,mBAAHnW,OAAsBJ,EAAGod,KAAI,MAErChiB,EAAY,CACZ,cAGW,IAAViT,GACDjT,EAAU8F,KAAK,YAGnBvB,EAAAA,IAAIC,KAAK6I,EAAK2L,KAAKxU,KAAK2W,GACnBzV,SAAS1F,GAEdqN,EAAKrE,MAAMgpC,KAAK92B,eAAeC,EACnC,GAEA5Y,KAAKqvC,UAAUrtC,EAAAA,IAAIC,KAAKI,GAAIod,KAAK,mBAAmB,EACxD,EAEAyvB,cAAa,WACb,IAAA7jC,EAAA,KACQwpB,EAAS7qB,EAAAA,IAAI0lC,MAAM1vC,KAAK60B,QAK5B,GAHA7yB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKxU,KAAK,mBACnB2V,YAAY,cAEZlX,EAAAA,IAAIsF,QAAQ6uB,GAAjB,CAIA,IAAI0W,EAAS1qC,EAAAA,IAAI8iB,OAAO3jB,KAAKgyB,MAAMuZ,OAAQ,SAAC/6B,GAExC,IAAI2qB,EAASt6B,EAAAA,IAAI8uC,QAAQn/B,EAAM2B,MAAO,SACjC1O,KAAK,MAEV,OAC0B,IADnBuG,EAAAA,IAAI0lC,MAAMl/B,EAAMxS,MAAQ,KAAOm9B,GACjCyU,QAAQ/a,EACjB,GAEAh0B,EAAAA,IAAIC,KAAKyqC,EAAQ,SAAC/6B,GACdxO,EAAAA,IAAIC,KAAKoJ,EAAKoL,KAAKxU,KAAK,mBAADQ,OAAoB+N,EAAM7R,IAAG,OAAMwE,SAAS,YACvE,EAbA,CAcJ,EAEA0sC,aAAY,SAAC3vB,GACb,IADmBrF,EAAKhb,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAEhBa,EAAAA,IAAIsF,QAAQ6U,IACfA,EAAMK,iBAGV,IAAItC,EAAW,oBAAHnW,OAAuByd,EAAKvhB,IAAG,MAEtCuhB,EAAKhU,UACNgU,EAAKwtB,YAGJ1tC,KAAK8vC,OAAS5vB,EAAKvhB,KACpBqB,KAAKqvC,UAAUnvB,EAAKvhB,KAAK,GAG7BqB,KAAKyG,MAAMtE,KAAKwW,eAAeC,EAAU,EAAG,IAChD,GAIJm3B,aAAY,WACZ,IAAAzkC,EAAA,KACI,IAAOtL,KAAK+uC,WACR,OAAO,KAGX,IAAIiB,EAAc,CACd1yC,YAAa0C,KAAKgvC,mBAWtB,OAROtuC,EAAAA,IAAIsF,QAAQhG,KAAK60B,UACpBmb,EAAYpyC,KAAOoC,KAAKivC,YAG5Be,EAAyB,YAAI,WACzB1kC,EAAKupB,OAAS,EAClB,GAEApvB,EAAAA,EAAAA,aAAA,uCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAAAZ,EAAAA,EAAAA,YAAA,YAEwBhF,EAAKupB,OAAM,+BAAA1jB,GAAA,OAAX7F,EAAKupB,OAAM1jB,CAAA,GAAM6+B,GAAW,OAGxD,EAEAC,WAAU,SAAC/vB,GACX,IAAAxO,EAAA,KACQqlB,GAAStxB,EAAAA,EAAAA,aAAA,aACFya,EAAKliB,QAGZkyC,EAAW,KAEVhwB,EAAKtiB,OACNsyC,GAAQzqC,EAAAA,EAAAA,aAAA,WAAcya,EAAKtiB,MAAI,OAGnC,IAAIuyC,EAAc,CACdlgC,KAAM,IAAMiQ,EAAKvhB,IAGrBwxC,QAAyB,SAACvtC,GACtB8O,EAAKm+B,aAAa3vB,EAAMtd,EAC5B,GAEInF,EAAY,CACZ,qBACA,uBAAyByiB,EAAKhkB,MAGlC,OAAAuJ,EAAAA,EAAAA,aAAA,KAAA6K,EAAAA,EAAAA,YAAA,OACc7S,EAAS,gBAAiByiB,EAAKvhB,KAASwxC,GAAW,CACxD,CAACD,EAAUnZ,IAGxB,EAEAqZ,YAAW,WACX,IAAAr+B,EAAA,KACQI,EAAQtR,EAAAA,IAAIC,KAAKd,KAAKgyB,MAAMuZ,OAAQ,SAACrrB,GACrC,OAAOnO,EAAKrS,KAAK,aAAVqS,CAAwBmO,EACnC,GAEA,OAAAza,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,kFAAO,CAEGa,EAAKrS,KAAK,eAAVqS,IAA2BR,EAAAA,EAAAA,iBAAA,KAAKY,GAAKZ,EAAAA,EAAAA,iBAAA,KAAKQ,EAAK3Q,OAAOquC,MAAQ19B,EAAK3Q,OAAOquC,OAAM,GAG9F,EAEAn9B,WAAU,WACV,IAAAJ,EAAA,KACQm+B,EAAY,CAIhBA,eAA8B,WAC1Bn+B,EAAKi9B,eACT,GAEA,OAAA1pC,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,gBAAAZ,EAAAA,EAAAA,YAAA,wCAC2D+/B,GAAS,2BAC3Dn+B,EAAK9Q,OAAM,SAAY8Q,EAAK9Q,OAAM,UAAU,GAGzD,EAEA2C,OAAM,WAEF,IAAItG,EAAY,CACZ,eACA,iBAAmBuC,KAAKgyB,MAAMv1B,MAOlC,OAJOiE,EAAAA,IAAIsF,QAAQhG,KAAK60B,SACpBp3B,EAAU8F,KAAK,yBAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CAChB,CAACuC,KAAKoB,OAAOsC,OAAS1D,KAAKoB,OAAOsC,QAAS1D,KAAKN,KAAK,cAAVM,GAA4BA,KAAKN,KAAK,aAAVM,KAGpF,GCrTJ,UAEIqF,KAAM,QAEN4P,QAAO,WAEH,MAAO,CACH+4B,MAAOhuC,KAEf,EAEAjE,MAAO,CAEHC,WAAY,oBAGJ,MAAO,SACX,EACAE,KAAM,CAACoJ,SAGX0iC,SAAU,oBAGF,OAAO,CACX,EACA9rC,KAAM,CAACqJ,UAGX9I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGXgrC,MAAO,oBAGC,OAAO,CACX,EACAp0C,KAAM,CAACqJ,WAKfK,KAAI,WAEA,MAAO,CACHoG,MAAM,EACN2oB,SAAU,GACVvhB,MAAO,EACPkI,OAAQ,EACRzV,UAAW7F,KAAKhE,WAExB,EAEA8J,QAAS,CAELyqC,OAAM,SAACC,GAEH3vC,EAAAA,IAAI+lB,IAAI5mB,KAAK20B,SAAU6b,EACnB,CAAEnrC,KAAMmrC,EAAInrC,OAEXrF,KAAKgM,MACNhM,KAAK+O,UAAU/O,KAAKywC,aAE5B,EAEAC,UAAS,SAACF,GAEN3vC,EAAAA,IAAIkB,OAAO/B,KAAK20B,SACZ,CAAEtvB,KAAMmrC,EAAInrC,OAEXrF,KAAKgM,MACNhM,KAAK+O,UAAU/O,KAAKywC,aAE5B,EAEAE,OAAM,WACN,IAAAhxC,EAAA,KADOixC,IAAW/wC,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,KAAAA,UAAA,GAEVgxC,EAAahwC,EAAAA,IAAIoB,KAAKjC,KAAK20B,SAAU,CACrCtvB,KAAMrF,KAAKhE,aAGX80C,EAASjwC,EAAAA,IAAIuR,KAAKpS,KAAK20B,SAAU,QAE9Bkc,IACHA,EAAahwC,EAAAA,IAAIyM,MAAMwjC,IAK3B,IAAOD,EACH,OAAOnwC,EAAAA,IAAIwC,MAHE,WAAH,OAASvD,EAAKgxC,OAAOC,EAAY,EAGd,KAG5BC,EAAWxrC,OAASrF,KAAK6F,WAAe+qC,GAI7C5wC,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAYgrC,EAAWxrC,KACpC,EAEAspC,UAAS,SAAClvC,GAEDO,KAAK6F,YAAcpG,GAIxBO,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAYpG,EACzB,GAIJ+H,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,GAIJ4M,QAAO,WAEHrM,KAAKgM,MAAO,EACZhM,KAAK2wC,QAAO,EAChB,EAEAI,QAAO,WAEH,IAAI39B,EAAQpR,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKxU,KAAK,aAC/BmR,QAELpT,KAAKoT,MAAQA,EAAQ,EAAI,EAAIA,EAE7B,IAAIkI,EAAStZ,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKxU,KAAK,aAChCqZ,OAAO,OAAQtb,KAAKyW,KAEzBzW,KAAKsb,OAASA,EAAS,EAAI,EAAIA,CACnC,EAEA01B,sBAAqB,WAEjB,IAAIv2B,EAAY,UAAAhY,OAAUzC,KAAKoT,MAAQ,IAAG,oBAAA3Q,OACxBzC,KAAKsb,QAAUtb,KAAKoT,MAAQ,KAAI,OAElD,OAAA3N,EAAAA,EAAAA,aAAA,uCAC0C,CAAEgV,UAAAA,IAAW,KAI3D,EAEAgX,aAAY,WAER,GAAKzxB,KAAK20B,SAAS70B,QAAU,EACzB,OAAO,KAIX,IAAIgxC,EAASjwC,EAAAA,IAAIuR,KAAKpS,KAAK20B,SAAU,QAEjCsc,EAAOpwC,EAAAA,IAAIC,KAAKD,EAAAA,IAAI0B,KAAKuuC,EAAOhxC,QAAS,SAAC0wC,EAAK9/B,GAC/C,OAAOogC,EAAOpgC,GAAOhR,KAAK,eAAnBoxC,EACX,GAEA,OAAArrC,EAAAA,EAAAA,aAAA,gCAES,CAACwrC,EAAMjxC,KAAKN,KAAK,wBAAVM,KAGpB,EAEAsS,WAAU,WAEN,OAAA7M,EAAAA,EAAAA,aAAA,8BAEUzF,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,WAGhD,EAEA2C,OAAM,WAEF,IAAItG,EAAY,CACZ,SACA,WAAauC,KAAKvD,KAClB,WAAauD,KAAK9D,MAOtB,OAJK8D,KAAI,OACLvC,EAAU8F,KAAK,YAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,aAAVM,IAGd,GCvNJ,IAEIqF,KAAM,YAEN0P,OAAQ,CAEJi5B,MAAO,CACHnxC,aAAS0B,IAKjB0W,QAAO,WAEH,MAAO,CACHg5B,UAAWjuC,KAEnB,EAEAjE,MAAO,CAEHiC,MAAO,oBAGC,MAAO,EACX,EACA9B,KAAM,CAACoJ,SAGXD,KAAM,oBAGE,MAAO,SACX,EACAnJ,KAAM,CAACoJ,SAGX1H,KAAM,oBAGE,MAAO,EACX,EACA1B,KAAM,CAACoJ,SAGX8M,KAAM,oBAGE,OAAO,CACX,EACAlW,KAAM,CAACgB,SAGX8qC,SAAU,oBAGF,OAAO,CACX,EACA9rC,KAAM,CAACqJ,UAGX4uB,KAAM,oBAGE,OAAO,CACX,EACAj4B,KAAM,CAACqJ,UAGX2rC,KAAM,oBAGE,OAAO,CACX,EACAh1C,KAAM,CAACqJ,WAMfO,QAAS,CAEL6oC,UAAS,WAEL3uC,KAAKguC,MAAMW,UAAU3uC,KAAKqF,KAC9B,GAIJO,KAAI,WAEA,MAAO,CACHtF,KAAM,KAAM0L,MAAM,EAE1B,EAEAgK,YAAW,WAEPhW,KAAKguC,MAAMuC,OAAOvwC,KACtB,EAEAgX,cAAa,WAEThX,KAAKguC,MAAM0C,UAAU1wC,KACzB,EAEAmxC,iBAAgB,WAEZ,OAAOnxC,KAAKoB,OAAOxD,MAAUoC,KAAKpC,MAIlC6H,EAAAA,EAAAA,aAAA,kCAEUzF,KAAKoB,OAAOxD,MAAQoC,KAAKoB,OAAOxD,SAAM6H,EAAAA,EAAAA,aAAA,WAAc,UAAYzF,KAAKpC,MAAI,QALxE,IAQf,EAEAwzC,kBAAiB,WAEb,OAAA3rC,EAAAA,EAAAA,aAAA,mCAEUzF,KAAKoB,OAAOpD,OAASgC,KAAKoB,OAAOpD,UAAQyH,EAAAA,EAAAA,aAAA,aAAWzF,KAAKhC,SAGvE,EAEAyzB,aAAY,WACZ,IAAA9xB,EAAA,KACQlC,EAAY,CACZ,eAGCuC,KAAKguC,MAAMnoC,YAAc7F,KAAKqF,MAC/B5H,EAAU8F,KAAK,YAGnB,IAAIxH,EAAQ,CACR4tB,QAAS,WAAF,OAAQhqB,EAAKgvC,UAAUhvC,EAAK0F,KAAK,GAG5C,OAAAI,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,GAAK,CAC1BiE,KAAKN,KAAK,mBAAVM,GACAA,KAAKN,KAAK,oBAAVM,IAGd,EAEA+D,OAAM,WAEF,IAAIuO,EAAatS,KAAKguC,MAAMnoC,YAAc7F,KAAKqF,KAU/C,GARKrF,KAAKkxC,OACN5+B,GAActS,KAAKgM,MAGhBhM,KAAKm0B,OACR7hB,GAAa,IAGVA,EACH,OAAO,KAGXtS,KAAKgM,MAAO,EAEZ,IAII5D,EAAQ,CAAC,EAMb,GAJKpI,KAAKguC,MAAMnoC,YAAc7F,KAAKqF,OAC/B+C,EAAMC,QAAU,QAGfrI,KAAKoB,OAAOyrB,IACb,OAAO7sB,KAAKoB,OAAOyrB,IAAI,CAAEzkB,MAAAA,IAG7B,IAAIzD,EAAU,MAEP3E,KAAKgoC,UAAchoC,KAAKguC,MAAMhG,WACjCrjC,GAAUiE,EAAAA,EAAAA,kBAAiB,eAG/B,IAAI7M,EAAQ,CACRkM,MArBY,CACZ,eAoBkBG,MAAAA,GAOtB,MAJiB,QAAZzD,IACD5I,EAAMwZ,UAAY,iBAGf1M,EAAAA,EAAAA,GAAElE,EAAS5I,EAAOiE,KAAKoB,OAClC,GCrMJ,UAEIiE,KAAM,QAEN4P,QAAO,WAEH,MAAO,CACHo8B,MAAOrxC,KAEf,EAEAjE,MAAO,CAEHC,WAAY,oBAGJ,MAAO,EACX,EACAE,KAAM,CAACmE,QAGXixC,KAAM,oBAGE,MAAO,EACX,EACAp1C,KAAM,CAACmE,QAGX5D,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,UAKfM,KAAI,WAEA,MAAO,CACHoG,MAAM,EAAO2oB,SAAU,GAAI9uB,UAAW7F,KAAKhE,WAEnD,EAEA8J,QAAS,CAELyrC,OAAM,SAACf,GAEH3vC,EAAAA,IAAI+lB,IAAI5mB,KAAK20B,SAAU6b,EACnB,CAAExyC,MAAOwyC,EAAIxyC,QAEZgC,KAAKgM,MACNhM,KAAK+O,UAAU/O,KAAKywC,aAE5B,EAEAe,UAAS,SAAChB,GAEN3vC,EAAAA,IAAIkB,OAAO/B,KAAK20B,SACZ,CAAE32B,MAAOwyC,EAAIxyC,QAEZgC,KAAKgM,MACNhM,KAAK+O,UAAU/O,KAAKywC,aAE5B,GAIJjpC,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,GAIJ4M,QAAO,WAEHrM,KAAKgM,MAAO,CAChB,EAEAjI,OAAM,WAEF,IAAItG,EAAY,CACZ,SACA,WAAauC,KAAKvD,MAGtB,OAAAgJ,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,WAGhD,GC1GJ,IAEIiE,KAAM,YAEN0P,OAAQ,CAEJs8B,MAAO,CACHx0C,aAAS0B,IAKjBxC,MAAO,CAEHiC,MAAO,oBAGC,MAAO,EACX,EACA9B,KAAM,CAACoJ,SAGX1H,KAAM,oBAGE,MAAO,EACX,EACA1B,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,OAAO,IACX,EACAA,KAAM,CAACoJ,SAGXmsC,MAAO,oBAGC,OAAO,IACX,EACAv1C,KAAM,CAACoJ,OAAQpI,SAGnBT,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,UAKf0Q,YAAW,WAEFhW,KAAKqxC,OACNrxC,KAAKqxC,MAAME,OAAOvxC,KAE1B,EAEAgX,cAAa,WAEJhX,KAAKqxC,OACNrxC,KAAKqxC,MAAMG,UAAUxxC,KAE7B,EAEA2D,WAAU,WAEN,OAAKjD,EAAAA,IAAIsF,QAAQhG,KAAKpC,MACX,MAGX6H,EAAAA,EAAAA,aAAA,WACc,UAAYzF,KAAKpC,MAAI,KAEvC,EAEAw8B,YAAW,WAEP,OAAA30B,EAAAA,EAAAA,aAAA,aACWzF,KAAKoB,OAAM,QAAWpB,KAAKoB,OAAM,UAAapB,KAAKhC,OAElE,EAEA+F,OAAM,WAEF,IAAItH,EAAOuD,KAAKvD,KAEXuD,KAAKqxC,QACN50C,EAAOuD,KAAKqxC,MAAM50C,MAGtB,IAAIgB,EAAY,CACZ,cACA,gBAAkBhB,GAWtB,OARmB,OAAduD,KAAK9D,MACNuB,EAAU8F,KAAK,gBAAkBvD,KAAK9D,MAGtB,OAAf8D,KAAKyxC,OACNh0C,EAAU8F,KAAK,sBAAwBvD,KAAKyxC,QAGhDhsC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CAChB,CAACuC,KAAKN,KAAK,aAAVM,GAA2BA,KAAKN,KAAK,cAAVM,KAGzC,GClHJ,UAEIqF,KAAM,YAEN4P,QAAO,WAEH,MAAO,CACHi5B,UAAWluC,KAEnB,EAEAjE,MAAO,CAEHC,WAAY,oBAGJ,MAAO,EACX,EACAE,KAAM,CAACmE,QAGX2nC,SAAU,oBAGF,OAAO,CACX,EACA9rC,KAAM,CAACqJ,UAGX9I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,UAKfM,KAAI,WAEA,MAAO,CACHoG,MAAM,EAAO2oB,SAAU,GAAI9uB,UAAW7F,KAAKhE,WAEnD,EAEA8J,QAAS,CAELmhB,SAAQ,SAACupB,GAEL,OAAmB,IAAdA,EAAIp+B,KACE,IAAOo+B,EAAIp+B,KAGfvR,EAAAA,IAAIQ,UAAUrB,KAAK20B,SAAU,CAChCtvB,KAAMmrC,EAAInrC,MAElB,EAEAqsC,UAAS,WACT,IAAA/xC,EAAA,KAEQgpB,EAAW9nB,EAAAA,IAAIC,KAAKJ,EAAAA,IAAI0G,KAAKpH,KAAK20B,UAAW,SAACh2B,GAC9C,MAAO,CAAE0G,KAAM1F,EAAKg1B,SAASh2B,GAAW,KAAG+R,MAAO/Q,EAAKsnB,SAAStnB,EAAKg1B,SAASh2B,IAClF,GAEA,OAAOkC,EAAAA,IAAIuR,KAAKuW,EAAU,QAC9B,EAEA4nB,OAAM,SAACC,GAEH3vC,EAAAA,IAAI+lB,IAAI5mB,KAAK20B,SAAU6b,EAAK,CACxBnrC,KAAMmrC,EAAInrC,OAGTrF,KAAKgM,MACNhM,KAAK+O,UAAU/O,KAAKywC,aAE5B,EAEAC,UAAS,SAACF,GAEN3vC,EAAAA,IAAIkB,OAAO/B,KAAK20B,SAAU,CACtBtvB,KAAMmrC,EAAInrC,OAGTrF,KAAKgM,MACNhM,KAAK+O,UAAU/O,KAAKywC,aAE5B,EAEA7B,QAAO,SAACnvC,GAECoB,EAAAA,IAAIqF,IAAIlG,KAAK6F,UAAWpG,KAI7BoB,EAAAA,IAAI+lB,IAAI5mB,KAAK6F,UAAWpG,GAExBO,KAAK6T,MAAM,oBAAqB7T,KAAK6F,WACzC,EAEA8rC,QAAO,SAAClyC,GAEGoB,EAAAA,IAAIqF,IAAIlG,KAAK6F,UAAWpG,KAI/BoB,EAAAA,IAAIkB,OAAO/B,KAAK6F,UAAWpG,GAE3BO,KAAK6T,MAAM,oBAAqB7T,KAAK6F,WACzC,EAEA+rC,UAAS,SAACnyC,GAENoB,EAAAA,IAAIsO,OAAOnP,KAAK6F,UAAWpG,GAE3BO,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UACzC,GAIJ2B,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,GAIJ4M,QAAO,WAEHrM,KAAKgM,MAAO,CAChB,EAEAjI,OAAM,WAEF,IAAItG,EAAY,CACZ,aACA,eAAiBuC,KAAKvD,KACtB,eAAiBuD,KAAK9D,MAG1B,OAAAuJ,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,WAGhD,GC9JJ,IAEIiE,KAAM,gBAEN0P,OAAQ,CAEJm5B,UAAW,CACPrxC,aAAS0B,IAKjB0W,QAAO,WAEH,MAAO,CACHk5B,cAAenuC,KAEvB,EAEAjE,MAAO,CAEHiC,MAAO,oBAGC,MAAO,EACX,EACA9B,KAAM,CAACoJ,SAGXD,KAAM,oBAGE,MAAO,SACX,EACAnJ,KAAM,CAACoJ,SAGX1H,KAAM,oBAGE,MAAO,EACX,EACA1B,KAAM,CAACoJ,SAGX8M,KAAM,oBAGE,OAAS,CACb,EACAlW,KAAM,CAACgB,SAGX8qC,SAAU,oBAGF,OAAO,CACX,EACA9rC,KAAM,CAACqJ,UAGX4uB,KAAM,oBAGE,OAAO,CACX,EACAj4B,KAAM,CAACqJ,UAGX2rC,KAAM,oBAGE,OAAO,CACX,EACAh1C,KAAM,CAACqJ,WAKfO,QAAS,CAEL8oC,QAAO,WAEH5uC,KAAKkuC,UAAUU,QAAQ5uC,KAAKqF,KAChC,EAEAssC,QAAO,WAEH3xC,KAAKkuC,UAAUyD,QAAQ3xC,KAAKqF,KAChC,EAEAusC,UAAS,WAEL5xC,KAAKkuC,UAAU0D,UAAU5xC,KAAKqF,KAClC,GAIJO,KAAI,WAEA,MAAO,CACHoG,MAAM,EAAO6lC,QAAS,EAE9B,EAEA77B,YAAW,WAEPhW,KAAKkuC,UAAUqC,OAAOvwC,KAC1B,EAEAgX,cAAa,WAEThX,KAAKkuC,UAAUwC,UAAU1wC,KAC7B,EAEAmxC,iBAAgB,WAEZ,OAAMnxC,KAAKoB,OAAOxD,MAASoC,KAAKpC,MAIhC6H,EAAAA,EAAAA,aAAA,yCAESzF,KAAKoB,OAAOxD,MAAQoC,KAAKoB,OAAOxD,SAAM6H,EAAAA,EAAAA,aAAA,WAAc,UAAYzF,KAAKpC,MAAI,QALvE,IAQf,EAEAwzC,kBAAiB,WAEb,OAAA3rC,EAAAA,EAAAA,aAAA,0CAESzF,KAAKoB,OAAOpD,OAASgC,KAAKoB,OAAOpD,UAAOyH,EAAAA,EAAAA,aAAA,aAAWzF,KAAKhC,SAGrE,EAEA8zC,mBAAkB,WAEd,OAAO9xC,KAAKoB,OAAO08B,QAInBr4B,EAAAA,EAAAA,aAAA,2CAESzF,KAAKoB,OAAO08B,QAAU99B,KAAKoB,OAAO08B,WALhC,IAQf,EAEAiU,kBAAiB,WAEb,OAAAtsC,EAAAA,EAAAA,aAAA,0CAESzF,KAAKoB,OAAO4wC,OAAShyC,KAAKoB,OAAO4wC,UAAOvsC,EAAAA,EAAAA,aAAA,WAAcR,KAAK6kB,MAAMC,YAAU,OAGxF,EAEA0H,aAAY,WACZ,IAAA9xB,EAAA,KACI,IAAMK,KAAKhC,QAAUgC,KAAKoB,OAAOpD,MAC7B,OAAO,KAGX,IAAI8yC,EAAS9wC,KAAKkuC,UAAUwD,YAExBj0C,EAAY,CACZ,sBAGCoD,EAAAA,IAAIyM,MAAMwjC,GAAc,OAAM9wC,KAAKqF,MACpC5H,EAAU8F,KAAK,YAGd1C,EAAAA,IAAI4jB,KAAKqsB,GAAc,OAAM9wC,KAAKqF,MACnC5H,EAAU8F,KAAK,WAGd1C,EAAAA,IAAIqF,IAAIlG,KAAKkuC,UAAUroC,UAAW7F,KAAKqF,OACxC5H,EAAU8F,KAAK,YAGnB,IAAIxH,EAAQ,CACR4tB,QAAS,WAAF,OAAQhqB,EAAKiyC,UAAUjyC,EAAK0F,KAAK,EAG5CtJ,YAAuB,SAAC8e,GAEpBlb,EAAKkyC,UAEiB,IAAjBlyC,EAAKkyC,UAIVlyC,EAAKsyC,UAAY/tC,WAAW,WACxBvE,EAAKivC,QAAQjvC,EAAK0F,KACtB,EAAG,KACP,EAEAtJ,YAAuB,SAAC8e,GAEpBlb,EAAKkyC,UAEiB,IAAjBlyC,EAAKkyC,SAIV5zB,aAAate,EAAKsyC,UACtB,GAMA,OAJAl2C,EAAMqM,MAAQ,CACV0E,MAAyD,GAAjDjM,EAAAA,IAAIoB,KAAK6uC,EAAQ,CAAEzrC,KAAMrF,KAAKqF,OAAe,MAAU,IAGnEI,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,oBAC6B7S,GAAe1B,GAAK,CACxCiE,KAAKN,KAAK,mBAAVM,GACAA,KAAKN,KAAK,oBAAVM,GACAA,KAAKN,KAAK,qBAAVM,GACAA,KAAKN,KAAK,oBAAVM,IAGb,EAEAsS,WAAU,WAEN,IAAIw+B,EAAS9wC,KAAKkuC,UAAUwD,YAExBj0C,EAAY,CACZ,oBAGCoD,EAAAA,IAAIyM,MAAMwjC,GAAc,OAAM9wC,KAAKqF,MACpC5H,EAAU8F,KAAK,YAGd1C,EAAAA,IAAI4jB,KAAKqsB,GAAc,OAAM9wC,KAAKqF,MACnC5H,EAAU8F,KAAK,WAGnB,IAAIsC,EAAYhF,EAAAA,IAAI4L,MAAMzM,KAAKkuC,UAAUroC,WAEnC7F,KAAKhC,OAAUgC,KAAKoB,OAAOpD,OAC7B6H,EAAUtC,KAAKvD,KAAKqF,MAGxB,IAAIiN,EAAazR,EAAAA,IAAIqF,IAAIL,EAAW7F,KAAKqF,MAUzC,GARKrF,KAAKkxC,OACN5+B,EAAatS,KAAKgM,MAGfhM,KAAKm0B,OACR7hB,GAAa,IAGXA,GAActS,KAAKhC,MACrB,OAAO,KAGXgC,KAAKgM,MAAO,EAEZ,IAAI5D,EAAQ,CACR0E,MAAyD,GAAjDjM,EAAAA,IAAIoB,KAAK6uC,EAAQ,CAAEzrC,KAAMrF,KAAKqF,OAAe,MAAU,GAG7DxE,EAAAA,IAAIqF,IAAIL,EAAW7F,KAAKqF,QAC1B+C,EAAMC,QAAU,QAGpB,IAAI1D,EAAU,MAMd,OAJM3E,KAAKgoC,UAAahoC,KAAKkuC,UAAUlG,WACnCrjC,GAAUiE,EAAAA,EAAAA,kBAAiB,gBAGxBC,EAAAA,EAAAA,GAAElE,EAAS,CAAEsD,MAAOxK,EAAW2K,MAAAA,GAAUpI,KAAKoB,OACzD,EAEA2C,OAAM,WAEF,MAAO,CACH/D,KAAKN,KAAK,eAAVM,GAA6BA,KAAKN,KAAK,aAAVM,GAErC,GChS+D,SAAAuL,GAAAC,GAAA,yBAAAA,GAAA,oBAAA3M,OAAAM,UAAAsM,SAAApM,KAAAmM,MAAAE,EAAAA,EAAAA,SAAAF,EAAA,CAEnE,UAEInG,KAAM,SAEN4P,QAAO,WAEH,MAAO,CACHi9B,OAAQlyC,KAEhB,EAEAjE,MAAO,CAEHoW,MAAO,oBAGC,MAAO,EACX,EACAjW,KAAM,CAACmE,QAGXskB,UAAW,oBAGH,OAAO,CACX,EACAzoB,KAAM,CAACqJ,UAGXmgB,QAAS,oBAGD,MAAO,EACX,EACAxpB,KAAM,CAACmE,QAGXukB,QAAS,oBAGD,OAAO,IACX,GAGJrR,SAAU,oBAGF,MAAO,EACX,EACArX,KAAM,CAACmE,QAGXiT,SAAU,oBAGF,MAAO,EACX,EACApX,KAAM,CAACmE,QAGXsjB,OAAQ,oBAGA,MAAO,EACX,EACAznB,KAAM,CAACmE,QAGX8xC,SAAU,oBAGF,MAAO,IACX,EACAj2C,KAAM,CAACoJ,SAGX8sC,QAAS,oBAGD,MAAO,MACX,EACAl2C,KAAM,CAACoJ,SAGX+sC,mBAAoB,oBAGZ,OAAO,CACX,EACAn2C,KAAM,CAACqJ,UAGXiL,MAAO,oBAGC,MAAO,CAAC,UACZ,EACAtU,KAAM,CAACmE,QAGXohB,YAAa,oBAGL,MAAO,CAAC,UACZ,EACAvlB,KAAM,CAACmE,QAGXsiB,OAAQ,oBAGA,OAAO,CACX,EACAzmB,KAAM,CAACqJ,UAGXsa,SAAU,oBAGF,OAAO,SAACxM,GAAM,MAAc,IAATA,CAAa,CACpC,GAGJyR,cAAe,oBAGP,OAAO,CACX,EACA5oB,KAAM,CAACqJ,UAGXyW,WAAY,oBAGJ,OAAO,EACX,EACA9f,KAAM,CAACgB,SAGX6nB,WAAY,oBAGJ,OAAO,EACX,EACA7oB,KAAM,CAACgB,SAGX8nB,kBAAmB,oBAGX,OAAO,CACX,GAGJ1I,WAAY,oBAGJ,MAAO,IACX,EACApgB,KAAM,CAACoJ,SAGXse,UAAW,oBAGH,MAAO,UACX,EACA1nB,KAAM,CAACoJ,SAGX6f,aAAc,oBAGN,OAAO,CACX,EACAjpB,KAAM,CAACqJ,UAGX2f,aAAc,oBAGN,OAAO,CACX,EACAhpB,KAAM,CAACqJ,UAGX6f,aAAc,oBAGN,OAAO,CACX,EACAlpB,KAAM,CAACqJ,UAGX0f,cAAe,oBAGP,OAAO,CACX,GAGJ3B,cAAe,oBAGP,OAAO,SAACjC,GAAI,OAAKA,CAAI,CACzB,GAGJwC,YAAa,oBAGL,OAAO,CACX,EACA3nB,KAAM,CAACqJ,UAGX6d,WAAY,oBAGJ,OAAO,kBAAM,CAAI,CACrB,GAGJvB,WAAY,oBAGJ,OAAO,kBAAM,CAAI,CACrB,GAGJwD,YAAa,oBAGL,OAAO,kBAAM,CAAI,CACrB,GAGJC,UAAW,oBAGH,OAAO,kBAAM,CAAI,CACrB,GAGJlE,UAAW,oBAGH,OAAO,kBAAM,CAAI,CACrB,GAGJhF,UAAW,oBAGH,OAAO,CACX,EACAlgB,KAAM,CAACgB,SAGXmf,QAAS,oBAGD,OAAO,CACX,EACAngB,KAAM,CAACqJ,UAGXggB,UAAW,oBAGH,OAAO,CACX,EACArpB,KAAM,CAACqJ,UAGXigB,iBAAkB,oBAGV,OAAO,GACX,EACAtpB,KAAM,CAACgB,UAKfsY,SAAU,CAENwU,QAAO,WAEH,QAAShqB,KAAK4hB,aAAa9hB,QACvBE,KAAK4hB,aAAa9hB,SAAWE,KAAKmS,MAAMrS,MAChD,EAEA24B,aAAY,WAER,QAASz4B,KAAK4hB,aAAa9hB,QACvBE,KAAK4hB,aAAa9hB,SAAWE,KAAKmS,MAAMrS,MAChD,GAIJ8F,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QACL+yB,SAAU,GACVtK,YAAarqB,KAAK0lB,QAClB4sB,iBAAkB,GAClB1wB,aAAc5hB,KAAKuT,SACnBg/B,aAAcvyC,KAAKmyC,SACnBK,YAAaxyC,KAAKoyC,QAClBK,WAAYzyC,KAAK2jB,OACjB+uB,gBAAiB,GAEzB,EAEArmC,QAAO,WAEHrM,KAAKsmB,OAAO,cACRtmB,KAAK2yC,iBAAkB,CAAEnsB,MAAM,IAE7BxmB,KAAKqqB,YAAYvqB,QACnBe,EAAAA,IAAIC,KAAKd,KAAK20B,SAAU30B,KAAK4yC,cAErC,EAEAprC,MAAO,CAEH+L,SAAQ,SAAC9T,GAELO,KAAK4hB,aAAeniB,CACxB,GAIJqG,QAAS,CAEL+sC,UAAS,SAACC,GAENjyC,EAAAA,IAAI+lB,IAAI5mB,KAAK20B,SAAUme,EACnB,CAAEnxC,IAAKmxC,EAAOnxC,KACtB,EAEAoxC,aAAY,SAACD,GAETjyC,EAAAA,IAAIkB,OAAO/B,KAAK20B,SACZ,CAAEhzB,IAAKmxC,EAAOnxC,KACtB,EAEAqxC,eAAc,SAACF,GAMX,OAJMpyC,EAAAA,IAAIC,SAASmyC,KACfA,EAASA,EAAa,MAGnBjyC,EAAAA,IAAIQ,UAAUrB,KAAKsyC,iBACtBQ,EACR,EAEAG,mBAAkB,SAACH,GAMf,OAJMpyC,EAAAA,IAAIC,SAASmyC,KACfA,EAASA,EAAO5zC,MAGb2B,EAAAA,IAAIqF,IAAIlG,KAAKqqB,YAAayoB,EACrC,EAEAI,gBAAe,SAACJ,GAEZ,IAAI5zC,EAAO4zC,EAUX,OARMpyC,EAAAA,IAAIC,SAASzB,KACfA,EAAO4zC,EAAOX,UAGbzxC,EAAAA,IAAIsF,QAAQ9G,KACbA,EAAO4zC,EAAO5zC,MAGbc,KAAKuyC,eAAiBrzC,EAChB,KAGJc,KAAKwyC,WAChB,EAEAW,gBAAe,SAACL,GAEZ,IAAI5zC,EAAO4zC,EAUX,OARMpyC,EAAAA,IAAIC,SAASzB,KACfA,EAAO4zC,EAAOM,YAGb1yC,EAAAA,IAAIsF,QAAQ9G,KACbA,EAAO4zC,EAAO5zC,MAGX2B,EAAAA,IAAIoB,KAAKjC,KAAKyyC,WAAY,CAC7BY,SAAUn0C,GAElB,EAEAo0C,kBAAiB,SAACR,GAEd,IAAI5zC,EAAO4zC,EAUX,OARMpyC,EAAAA,IAAIC,SAASzB,KACfA,EAAO4zC,EAAOM,YAGb1yC,EAAAA,IAAIsF,QAAQ9G,KACbA,EAAO4zC,EAAO5zC,MAGX2B,EAAAA,IAAIqF,IAAIlG,KAAK0yC,gBAAiBxzC,EACzC,EAEA0zC,cAAa,SAACE,GAELA,EAAOS,kBACR1yC,EAAAA,IAAI+lB,IAAI5mB,KAAKqqB,YAAayoB,EAAO5zC,KAEzC,EAEAyzC,iBAAgB,WAEZ3yC,KAAKsyC,iBAAmBzxC,EAAAA,IAAI2yC,UACxB3yC,EAAAA,IAAI8uC,QAAQ3vC,KAAK20B,SAAU,QAAS30B,KAAKqqB,aAE7CrqB,KAAK+O,UAAU/O,KAAKyG,MAAM4W,UAAUme,SACxC,EAEAiY,aAAY,SAACX,GAET,IAAI5zC,EAAO4zC,EAELpyC,EAAAA,IAAIC,SAASzB,KACfA,EAAO4zC,EAAOX,UAGbzxC,EAAAA,IAAIsF,QAAQ9G,KACbA,EAAO4zC,EAAO5zC,MAIlB,IAAIw0C,EAAM1zC,KAAKwyC,YAEVtzC,IAASc,KAAKuyC,cAAqC,SAArBvyC,KAAKwyC,cACpCkB,EAAM,OAGLx0C,IAASc,KAAKuyC,cAAqC,QAArBvyC,KAAKwyC,cACpCkB,EAAM,QAGL1zC,KAAKwyC,cAAgBkB,GACtB1zC,KAAK6T,MAAM,iBAAkB7T,KAAKwyC,YAAckB,GAG/C1zC,KAAKuyC,eAAiBrzC,GACvBc,KAAK6T,MAAM,kBAAmB7T,KAAKuyC,aAAerzC,GAGtDc,KAAK6T,MAAM,OAAQ7T,KAAKuyC,aAAcvyC,KAAKwyC,YAC/C,EAEAmB,cAAa,SAAChwB,EAAQkR,GACtB,IAAAl1B,EAAA,KACIkB,EAAAA,IAAIgH,QAAQ7H,KAAKyyC,WAAY9uB,EAAQkR,GAErC,IAAI+e,EAAU/yC,EAAAA,IAAI8iB,OAAO3jB,KAAKyyC,WAAY,SAAC9uB,GACvC,OAAO9iB,EAAAA,IAAIqF,IAAIvG,EAAK+yC,gBAAiB/uB,EAAO0vB,SAChD,GAEArzC,KAAK6T,MAAM,gBAAiB+/B,GAE5B5zC,KAAK6T,MAAM,SAAU+/B,EAAS5zC,KAAK0yC,gBACvC,EAEAmB,YAAW,WAEP7zC,KAAKyyC,WAAazyC,KAAK0yC,gBAAkB,GAEzCh8B,EAAAA,MAAM4K,KAAK,eAAgBthB,KAAK2B,KAEhC3B,KAAK6T,MAAM,gBAAiB7T,KAAKyyC,YAEjCzyC,KAAK6T,MAAM,SAAU7T,KAAKyyC,WAAYzyC,KAAK0yC,gBAC/C,EAEA7pB,UAAS,WAEL7oB,KAAKyG,MAAMke,UAAUkE,WACzB,EAEAvB,cAAa,SAAC7nB,GACd,IADqBd,EAAGkB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAEvBG,KAAKyG,MAAMke,UAAU2C,cAAc7nB,EAAOd,EAC9C,EAEAqpB,YAAW,WAEP,OAAOhoB,KAAKyG,MAAMke,UAAUqD,aAChC,EAEA8rB,eAAc,WAEV9zC,KAAKyG,MAAMke,UAAUmvB,gBACzB,GAIJ5uB,aAAY,WAER,OAAMllB,KAAKklB,cAIXzf,EAAAA,EAAAA,aAAA,8CAHW,IAQf,EAEA2f,aAAY,WAER,OAAMplB,KAAKolB,cAIX3f,EAAAA,EAAAA,aAAA,8CAHW,IAQf,EAEA0f,aAAY,WAER,IAAMnlB,KAAKmlB,aACP,OAAO,KAGX,IAAIppB,EAAQ,CACRC,WAAYgE,KAAKgqB,QACjByO,aAAcz4B,KAAKy4B,aACnB97B,UAAWqD,KAAKmS,MAAMrS,OACtB6pB,QAAS3pB,KAAK6oB,WAGlB,OAAApjB,EAAAA,EAAAA,aAAA,0CAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aAEuBnV,EAAK,OAGhC,EAEAuW,WAAU,SAACvW,GAEP,IAAIg4C,EAAUh0C,EAAAA,IAAIe,KAAKd,KAAK20B,SAAU,SAACme,GACnC,OAAOA,EAAOn2C,SAAW,KAAOm2C,EAAOpzC,KAAK,aAAZozC,CAA0B/2C,EAC9D,GAEA,OAAOgE,EAAAA,IAAI43B,OAAOoc,EACtB,EAEAC,cAAa,WACb,IAAAviC,EAAAe,EAAAnP,EAAA,KACQ0wC,EAAUh0C,EAAAA,IAAIe,KAAKd,KAAK20B,SAAU,SAACme,GAEnC,OAAKA,EAAOn2C,SACD,MAGX8I,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,8CACgD4hC,EAAO5zC,MAAI,2BAClD4zC,EAAO90C,MAAK,GAGzB,GAEA,OAAAyH,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,qCACuC,KAAG,4BAAAzL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,sBAAA3F,GAAAkG,EAE7BpO,EAAKzH,MAAM,4BAA0B6V,EAAA,2BAAAA,EAAA,KAAAhM,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,8BAElB7N,EAAKgnB,YAAW,+BAAAlZ,GAAA,OAAhB9N,EAAKgnB,YAAWlZ,CAAA,8BAAA5F,GAAAiH,EACnCzS,EAAAA,IAAI43B,OAAOoc,IAAQvhC,EAAA,2BAAAA,EAAA,OAIpC,EAEAD,WAAU,WAEN,IAAI0hC,EAAgB,CAChBj0C,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,gBAAVM,IAGA+zC,EAAUh0C,EAAAA,IAAIe,KAAKd,KAAK20B,SAAU,SAACme,GACnC,OAAOA,EAAOn2C,SAAW,KAAOm2C,EAAOpzC,KAAK,aAAZozC,EACpC,GAEA,OAAArtC,EAAAA,EAAAA,aAAA,iCAESwuC,GAAa1iC,EAAAA,EAAAA,iBAAA,KAAGxR,EAAAA,IAAI43B,OAAOoc,IAGxC,EAEAhwC,OAAM,WACN,IAAAuG,EAAA,KAKQvO,EAAQgE,EAAAA,IAAIoN,OAAOnN,KAAKmI,OAJf,CACT,UAAW,SAAU,WAAY,UAAW,sBAGJ,CACxCgK,MAAOnS,KAAKmS,MACZoB,SAAUvT,KAAK4hB,aACfzM,WAAW,EACXkH,QAASrc,KAAKqc,UAIlBtgB,EAAkB,WAAI,WAAa,QAAAoE,EAAAN,UAAAC,OAATM,EAAI,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,GAAAT,UAAAS,GAC1BgK,EAAKuJ,MAAKtT,MAAV+J,EAAI,CAAO,aAAW7H,OAAKrC,GAC/B,EAEArE,EAAqB,cAAI,WAAa,QAAA8I,EAAAhF,UAAAC,OAATM,EAAI,IAAAC,MAAAwE,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ1E,EAAI0E,GAAAjF,UAAAiF,GAC7BwF,EAAKuJ,MAAKtT,MAAV+J,EAAI,CAAO,gBAAc7H,OAAKrC,GAClC,EAEArE,EAAM,kBAAoB,SAAC0D,GACvB6K,EAAKuJ,MAAM,eAAgBpU,EAC/B,EAEA1D,EAAM,oBAAsB,SAAC0D,GACzB6K,EAAKuJ,MAAM,iBAAkBpU,EACjC,EAEA1D,EAAM,qBAAuB,SAAC0D,GAC1B6K,EAAKuJ,MAAM,kBAAmBpU,EAClC,EAEA1D,EAAM,qBAAuB,SAAC0D,GAC1B6K,EAAKuJ,MAAM,kBAAmBvJ,EAAKsX,aAAeniB,EACtD,EAEA,IAAIy0C,GAAazuC,EAAAA,EAAAA,aAAA,gCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,cAAAZ,EAAAA,EAAAA,YAAA,kBAEsBvU,EAAK,SAAW,KAAE,CAC1Cc,QAASmD,KAAKN,KAAK,kBAKlC,OAAA+F,EAAAA,EAAAA,aAAA,sCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,oEAEyE,GAAK,2BACjE,CAAC5G,EAAK5K,KAAK,aAAV4K,GAA2B4pC,GAAc,IAE9Cl0C,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,WAG/C,G,4tCC7pBJ,UAEIiE,KAAM,eAEN0P,OAAQ,CAEJm9B,OAAQ,CACJr1C,aAAS0B,IAKjBxC,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJkD,KAAM,oBAGE,OAAO0C,EAAAA,EAAAA,OACX,EACA1F,KAAM,CAACoJ,SAGXtH,MAAO,oBAGC,MAAO,EACX,EACA9B,KAAM,CAACoJ,SAGXq3B,QAAS,oBAGD,MAAO,EACX,EACAzgC,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,QACX,EACAA,KAAM,CAACoJ,SAGX+0B,MAAO,oBAGC,MAAO,MACX,EACAn+B,KAAM,CAACoJ,SAGX8M,KAAM,oBAGE,OAAO,CACX,EACAlW,KAAM,CAACqJ,UAGXoe,OAAQ,oBAGA,OAAO,CACX,EACAznB,KAAM,CAACqJ,UAGXmgB,QAAS,oBAGD,OAAO,CACX,EACAxpB,KAAM,CAACqJ,UAGX5I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,QAASqH,WAGpBunC,eAAgB,oBAGR,OAAO,CACX,EACAj4C,KAAM,CAACqJ,QAASqH,WAGpBwnC,WAAY,oBAGJ,OAAO,CACX,EACAl4C,KAAM,CAACgB,SAGXm3C,YAAa,oBAGL,MAAO,SACX,EACAn4C,KAAM,CAACoJ,SAGXgvC,OAAQ,oBAGA,OAAS,CACb,EACAp4C,KAAM,CAACgB,OAAQoI,SAGnBivC,WAAY,oBAGJ,MAAO,QACX,EACAr4C,KAAM,CAACoJ,SAGXhJ,QAAS,oBAGD,MAAO,EACX,EACAJ,KAAM,CAAC2C,OAAQwB,MAAOuM,WAG1B4nB,aAAc,oBAGN,MAAO,QACX,EACAt4B,KAAM,CAACoJ,SAGXwL,aAAc,oBAGN,MAAO,QACX,EACA5U,KAAM,CAACoJ,SAGX6sC,SAAU,oBAGF,MAAO,EACX,EACAj2C,KAAM,CAACoJ,SAGX8tC,WAAY,oBAGJ,MAAO,EACX,EACAl3C,KAAM,CAACoJ,SAGXkvC,WAAY,oBAGJ,OAAO,CACX,GAGJphC,MAAO,oBAGC,OAAO,CACX,GAGJwX,SAAU,oBAGF,OAAO,GACX,GAGJ1Q,SAAU,oBAGF,OAAO,CACX,GAGJma,UAAW,oBAGH,MAAO,GACX,EACAn4B,KAAM,CAACoJ,SAGXgvB,cAAe,oBAGP,OAAO34B,EAAAA,OAAOC,MAAM,IACxB,EACAM,KAAM,CAACoJ,SAGXmvC,SAAU,oBAGF,OAAO94C,EAAAA,OAAOC,MAAM,MACxB,EACAM,KAAM,CAACoJ,SAGXovC,UAAW,oBAGH,OAAO/4C,EAAAA,OAAOC,MAAM,KACxB,EACAM,KAAM,CAACoJ,SAGXqvC,eAAgB,oBAGR,OAAOh5C,EAAAA,OAAOC,MAAM,mBACxB,EACAM,KAAM,CAACoJ,SAGXkzB,aAAc,oBAGN,OAAO,CACX,EACAt8B,KAAM,CAACqJ,WAKfiQ,SAAU,CAENo/B,aAAY,WACZ,IAAAj1C,EAAA,KACI,GAAmB,WAAdK,KAAK9D,KAAV,CAIA,IAAIy7B,EAAS,CAAC,EAEd,OAAKj3B,EAAAA,IAAIsF,QAAQhG,KAAKhE,aAItB6E,EAAAA,IAAIC,KAAKd,KAAKhE,WAAY,SAACkkB,GACvBngB,EAAAA,IAAIwH,IAAIowB,EAAQzX,EAAKvgB,EAAKuyC,OAAO51B,YAC7B6H,EAAAA,IAAImwB,OAAOp0B,EAAKvgB,EAAK40C,aAC7B,GANW5c,CALX,CAcJ,GAIJ1iB,QAAO,WAEH,MAAO,CACH4/B,aAAc70C,KAEtB,EAEA4F,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QAAQkzC,UAAW,EAEhC,EAEAhvC,QAAS,CAELytC,eAAc,WAEV,IAAI7tB,EAAU1lB,KAAK0lB,QAMnB,OAJK1lB,KAAKo0C,aACN1uB,GAAW1jB,EAAAA,IAAIC,KAAKjC,KAAKkyC,OAAOz7B,KAAKrD,QAAUpT,KAAKo0C,YAGjD1uB,CACX,EAEA+tB,aAAY,SAAC54B,GAEHha,EAAAA,IAAIqF,IAAI,CAAC,EAAG,GAAI2U,EAAMI,SAItBjZ,EAAAA,IAAIC,KAAK4Y,EAAM7X,QAAQie,QAAQ,4BACjCjhB,KAAKkyC,OAAOuB,aAAazzC,MAEjC,GAIJgW,YAAW,WAEPhW,KAAK+0C,cAAgB,CAAC,EACtB/0C,KAAKkyC,OAAOW,UAAU7yC,KAC1B,EAEAgX,cAAa,WAEThX,KAAKkyC,OAAOa,aAAa/yC,KAC7B,EAEAuS,WAAU,WACV,IAAAlP,EAAA,KACI,IAAMrD,KAAKkyC,OAAOe,mBAAmBjzC,MACjC,OAAO,KAGX,IAAIvC,EAAY,CACZ,iBACA,mBAAqBuC,KAAKq6B,MAC1B,mBAAqBr6B,KAAK9D,MAG1B84C,EAAgBh1C,KAAKkyC,OAAOgB,gBAAgBlzC,MAE3Cg1C,GACDv3C,EAAU8F,KAAK,WAAY,KAAOyxC,GAGjCh1C,KAAKw0C,YACN/2C,EAAU8F,KAAK,WAGdvD,KAAKkyC,OAAOoB,kBAAkBtzC,OAC/BvC,EAAU8F,KAAK,cAGnB,IAAIonB,EAAO,WAEQ,GAAd3qB,KAAKoT,QACNuX,EAAO,OAAHloB,OAAUzC,KAAKoT,QAGC,GAAnBpT,KAAKw0C,aACN7pB,EAAO,OAAHloB,OAAUzC,KAAKw0C,WAAU,OAGjC,IAAIz4C,EAAQ,CACRC,WAAYgE,KAAK80C,UACjBnqB,KAAYA,EACZC,SAAY5qB,KAAK4qB,SACjB1Q,SAAYla,KAAKka,SACjBvd,WAAcqD,KAAKw0C,WACnBhkC,MAAY,CAAC,UAAWxQ,KAAKkyC,OAAOvwC,KAGxC5F,cAAyB,SAAC0D,GACtB4D,EAAKyxC,UAAYr1C,CACrB,EAEA1D,sBAA+B,SAAC0D,GAC5B4D,EAAKyxC,UAAYr1C,CACrB,GAMA,OAJKO,KAAKoS,OACNrW,EAAM43B,YAAc3zB,KAAKyzC,eAG7BhuC,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aAAAZ,EAAAA,EAAAA,YAAA,oBACkC7S,GAAe1B,GAAK,2BAC7CsH,EAAK3D,KAAK,iBAAV2D,GACAA,EAAK3D,KAAK,kBAAV2D,GACAA,EAAK3D,KAAK,mBAAV2D,GAA+B,GAG5C,EAEA4xC,gBAAe,WACf,IAAA3qC,EAAA,KAKQysB,GAAStxB,EAAAA,EAAAA,aAAA,aAJG,CACZ,0BAIqB,EAAAA,EAAAA,EAAAA,aAAA,aACVzF,KAAKhC,UAIpB,OAAK0C,EAAAA,IAAIsF,QAAQhG,KAAK28B,SACX5F,EAOJ,CAACA,GAJOtxB,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,wDACe5G,EAAKqyB,QAAO,IAI9C,EAEAuY,eAAc,WAEV,OAAMl1C,KAAKoS,MAIX3M,EAAAA,EAAAA,aAAA,uCAAAA,EAAAA,EAAAA,aAAA,iBAHW,IAQf,EAEA0vC,iBAAgB,WAEZ,IAAMn1C,KAAK2jB,OACP,OAAO,KAGX,IAAIyxB,GAAS3vC,EAAAA,EAAAA,aAAA,yCAAAA,EAAAA,EAAAA,aAAA,WAEKR,KAAK6kB,MAAM+M,WAAS,QAIlCjvB,GAAYgB,EAAAA,EAAAA,kBAAiB,eAC7BoB,EAAAA,IAAIC,QAAQjK,KAAK9D,OAErB,MAAO,CACHk5C,GAAWvsC,EAAAA,EAAAA,GAAEjB,EAAW,CAAEkrC,OAAQ9yC,OAE1C,EAEAsS,WAAU,SAACvW,GAEP,IAAMiE,KAAKkyC,OAAOe,mBAAmBjzC,MACjC,OAAO,KAGX,IAAI2B,EAAM5F,EAAM0D,MAAMO,KAAKkyC,OAAO51B,YAC5Btc,KAAK2B,IAEPlE,EAAY,CACZ,eACA,iBAAmBuC,KAAKq6B,MACxB,iBAAmBr6B,KAAK9D,MAGvB8D,KAAK80C,WACNr3C,EAAU8F,KAAK,WAGnB,IAEI+X,EAAS,EAEE,IAJHtb,KAAKkyC,OAAOc,eAAehzC,QAKnCsb,EAASvf,EAAM0D,MAAM2kB,MAAQpkB,KAAKkyC,OAAOntB,YAG7C,IAAI3c,EAAQ,CACRgL,MAAQpT,KAAK80C,UAAYx5B,EAAU,MAGlCtb,KAAK4qB,WACNxiB,EAAMwiB,SAAY5qB,KAAK4qB,SAAWtP,EAAU,MAG3Ctb,KAAKka,WACN9R,EAAM8R,SAAYla,KAAKka,SAAWoB,EAAU,MAGhD,IAAI8C,EAASre,EAAAA,IAAIoN,OAAOnN,KAAKiB,OAAQ,GAAEiM,GAAAA,GAAA,GAChCnR,GAAK,IAAE4F,IAAKA,EAAKsG,MAAOxK,EAAW2K,MAAOA,EAAO0qC,OAAQ9yC,QAG5D4H,GAAYgB,EAAAA,EAAAA,kBAAiB,aAC7BoB,EAAAA,IAAIC,QAAQjK,KAAK9D,OAErB,OAAO2M,EAAAA,EAAAA,GAAEjB,EAAWwW,EACxB,EAEAra,OAAM,WAEF,OAAO,IACX,GCrfJ,IAEIgR,OAAQ,CAEJm9B,OAAQ,CACJr1C,aAAS0B,GAGb+qB,eAAgB,CACZzsB,aAAS0B,IAKjBxC,MAAO,CAEH4F,IAAK,CACD4nB,UAAU,GAGdupB,OAAQ,CACJvpB,UAAU,GAGdrJ,KAAM,CACFqJ,UAAU,GAGd9pB,MAAO,CACH8pB,UAAU,GAGdE,KAAM,CACFF,UAAU,GAGdxnB,OAAQ,CACJwnB,UAAU,IAMlB/T,SAAU,CAENhN,MAAK,WAED,OAAOzI,EAAAA,IAAIf,IAAIgB,KAAKkgB,KAAMlgB,KAAK8yC,OAAO5zC,KAC1C,GAIJ0G,KAAI,WAEA,MAAO,CAAEoG,MAAM,EACnB,EAEAK,QAAO,WACP,IAAA1M,EAAA,KACIK,KAAK+d,MAAQ7Z,WAAW,kBAAMvE,EAAKqM,MAAO,CAAI,EAAE,GACpD,EAEAgL,cAAa,WAETiH,aAAaje,KAAK+d,MACtB,EAEAjY,QAAS,CAELuvC,cAAa,SAACjsC,GAEVrJ,EAAAA,IAAIwH,IAAIvH,KAAK8yC,OAAOiC,cAChB/0C,KAAK2B,IAAK3B,KAAKs1C,WAAalsC,EACpC,GAIJrF,OAAM,WAEF,OAAK/D,KAAK8yC,OAAO1xC,OAAM,QACZpB,KAAK8yC,OAAO1xC,OAAM,QAASpB,OAGtCyF,EAAAA,EAAAA,aAAA,YACWzF,KAAKwI,OAEpB,GCrFJ,IAEInD,KAAM,mBAENkwC,QAASC,GAETzxC,OAAM,WAEF,OAAO/D,KAAKgM,KAIPhM,KAAK8yC,OAAO5xC,KAAK,UAAWlB,OAC7ByF,EAAAA,EAAAA,aAAA,YACWzF,KAAK8yC,OAAO1xC,OAAM,QAASpB,SAI1CyF,EAAAA,EAAAA,aAAA,aAAAA,EAAAA,EAAAA,aAAA,aAEgB/E,EAAAA,IAAI+0C,cAAcz1C,KAAKwI,MAAOxI,KAAK8yC,OAAOze,eAX/C,IAcf,GCvBJ,IAEIhvB,KAAM,oBAENkwC,QAASC,GAETzxC,OAAM,WAEF,OAAO/D,KAAKgM,KAIPhM,KAAK8yC,OAAO5xC,KAAK,UAAWlB,OAC7ByF,EAAAA,EAAAA,aAAA,YACWzF,KAAK8yC,OAAO1xC,OAAM,QAASpB,SAI1CyF,EAAAA,EAAAA,aAAA,aAAAA,EAAAA,EAAAA,aAAA,aAEgB/E,EAAAA,IAAIg1C,eAAe11C,KAAKwI,MAAOxI,KAAK8yC,OAAO2B,SAAUz0C,KAAK8yC,OAAO4B,eAXtE,IAcf,GCvBJ,IAEIrvC,KAAM,qBAENkwC,QAASC,GAETzxC,OAAM,WAEF,OAAO/D,KAAKgM,KAIPhM,KAAK8yC,OAAO5xC,KAAK,UAAWlB,OAC7ByF,EAAAA,EAAAA,aAAA,YACWzF,KAAK8yC,OAAO1xC,OAAM,QAASpB,SAI1CyF,EAAAA,EAAAA,aAAA,aAAAA,EAAAA,EAAAA,aAAA,aAEgB/E,EAAAA,IAAIi1C,gBAAgB31C,KAAKwI,MAAOxI,KAAK8yC,OAAO6B,eAAgB30C,KAAK8yC,OAAOze,eAX7E,IAcf,GCvBJ,IAEIhvB,KAAM,mBAENkwC,QAASC,GAETld,aAAY,SAAC74B,GAET,IAAInD,EAAU0D,KAAK8yC,OAAOx2C,QAErBoE,EAAAA,IAAI4F,WAAWhK,KAChBA,EAAU0D,KAAK8yC,OAAOx2C,QAAQ0D,OAGlC1D,EAAUuE,EAAAA,IAAIC,KAAKxE,EAAS,SAACmD,EAAOiR,GAChC,MAAO,CAAE0kB,OAAQ31B,EAAO41B,OAAQ3kB,EACpC,GAEA,IAAIxR,EAAOc,KAAK8yC,OAAOte,aAEnBc,EAASz0B,EAAAA,IAAIoB,KAAK3F,EAAS,SAAC4jB,GAC5B,OAAOngB,EAAAA,IAAIf,IAAIkhB,EAAMhhB,IAASO,CAClC,GAEA,OAAO61B,EAIAv1B,EAAAA,IAAIf,IAAIs2B,EAAQt1B,KAAK8yC,OAAOhiC,aAC/B9Q,KAAK8yC,OAAOxe,eAJL,CAACt0B,KAAK8yC,OAAOze,UAK5B,EAEAtwB,OAAM,WAEF,IAAO/D,KAAKgM,KACR,OAAO,KAGX,GAAKhM,KAAK8yC,OAAO5xC,KAAK,UAAWlB,MAC7B,OAAAyF,EAAAA,EAAAA,aAAA,YACWzF,KAAK8yC,OAAO1xC,OAAM,QAASpB,QAI1C,IAAIwI,EAAU9H,EAAAA,IAAIoO,SAAS9O,KAAKwI,OACbxI,KAAKwI,MAApB,CAACxI,KAAKwI,OAEV,OAAA/C,EAAAA,EAAAA,aAAA,aAAAA,EAAAA,EAAAA,aAAA,aAEgB5E,EAAAA,IAAIC,KAAK0H,EAAOxI,KAAKN,KAAK,oBAG9C,GCpDJ,IAEI2F,KAAM,kBAENkwC,QAASC,GAEThgC,SAAU,CAENogC,QAAO,WAEH,OAAO71C,EAAAA,IAAIf,IAAIgB,KAAKkgB,KAAMlgB,KAAK8yC,OAAOuB,YAC1C,GAIJtwC,OAAM,WACN,IAAApE,EAAA,KACI,IAAOK,KAAKgM,KACR,OAAO,KAGX,GAAKhM,KAAK8yC,OAAO5xC,KAAK,UAAWlB,MAC7B,OAAAyF,EAAAA,EAAAA,aAAA,YACWzF,KAAK8yC,OAAO1xC,OAAM,QAASpB,QAI1C,IAAIvC,EAAY,CACZ,eACA,iBAAmBuC,KAAK8yC,OAAO52C,MAG/B25C,EAAe,CACfC,IAAK,UACLplC,MAAO1Q,KAAKspB,eAAe5Y,MAC3BF,MAAOxQ,KAAK8yC,OAAOnxC,IAGvBk0C,QAA0B,WACtBl2C,EAAKuyC,OAAOzrC,MAAMke,UAAUiD,cAAcjoB,EAAK2pB,eAAe5Y,MAClE,GAEA,OAAAjL,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,EAAAgI,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aAAAZ,EAAAA,EAAAA,YAAA,MACDtQ,KAAK41C,SAAW51C,KAAKwI,MAAK,MAASxI,KAAKwI,OAAWqtC,GAAY,OAG3F,G,8pBC/CJ,UAEIxwC,KAAM,mBAENkwC,QAASC,GAETx/B,YAAW,WAEPhW,KAAKs1C,WAAav1C,EAAAA,IAAIf,IAAIgB,KAAK8yC,OAAOiC,cAClC/0C,KAAK2B,IACb,EAEAmE,QAAS,CAELiwC,aAAY,WAER,IAA6B,IAAxB/1C,KAAK8yC,OAAOwB,OACb,OAAOt0C,KAAKg2C,eAGhB,IAAIC,EAAWj2C,KAAK8yC,OAAO92C,WAET,OAAbi6C,IACDA,EAAW,IAGf,IAAI/1B,EAAOrf,EAAAA,IAAIoB,KAAKg0C,EAAQx0C,GAAA,GACvBzB,KAAKkyC,OAAO51B,WAAatc,KAAKP,MAAMO,KAAKkyC,OAAO51B,cAG9C4D,IACHA,EAAOngB,EAAAA,IAAIiB,OAAO,CAAC,EAAGhB,KAAKkgB,KAAIze,GAAA,GAAKzB,KAAK8yC,OAAOyB,WAAa,KAGjE,IAAI2B,EAAgB/xB,EAAAA,IAAG,IAAKjE,EAAKlgB,KAAK8yC,OAAOyB,aAEzCD,EAASzzC,EAAAA,IAAIsO,OAAOgV,EAAAA,IAAImwB,OAAO4B,GAC/B/xB,EAAAA,IAAG,IAAKnkB,KAAK8yC,OAAOwB,SAExBp0B,EAAKlgB,KAAK8yC,OAAOyB,YAAcpwB,EAAAA,IAAIgyB,QAAQ7B,GAE3CzzC,EAAAA,IAAIgH,QAAQouC,EAAU/1B,EAAIze,GAAA,GACrBzB,KAAKkyC,OAAO51B,WAAa4D,EAAKlgB,KAAKkyC,OAAO51B,cAG/Ctc,KAAK8yC,OAAOj/B,MAAM,oBAAqBoiC,EAC3C,EAEAD,aAAY,WAER,IAAIC,EAAWj2C,KAAK8yC,OAAO92C,WAET,OAAbi6C,IACDA,EAAW,IAGf,IAAIr2C,EAAWG,EAAAA,IAAIiB,OAAO,CAAC,EAAGhB,KAAKkgB,KAAIze,GAAA,GAClCzB,KAAK8yC,OAAOyB,WAAav0C,KAAK8yC,OAAOwB,SAGtC8B,EAAM30C,GAAA,GACLzB,KAAKkyC,OAAO51B,WAAatc,KAAKP,MAAMO,KAAKkyC,OAAO51B,aAG1Czb,EAAAA,IAAIoB,KAAKg0C,EAAUG,GAK1Bv1C,EAAAA,IAAIkB,OAAOk0C,EAAUG,GAFrBv1C,EAAAA,IAAI+lB,IAAIqvB,EAAUr2C,GAKtBI,KAAK8yC,OAAOj/B,MAAM,oBAAqBoiC,EAC3C,EAEA/c,UAAS,WAEL,IAAIob,EAASv0C,EAAAA,IAAIf,IAAIgB,KAAK8yC,OAAO8B,aAC7B50C,KAAKkgB,KAAKlgB,KAAKkyC,OAAO51B,aAE1B,IAAOg4B,EACH,OAAO,EAGX,IAAI70C,EAAQ0kB,EAAAA,IAAG,IAAKnkB,KAAK8yC,OAAOwB,QAEhC,OAAgB,IAAX70C,GAIEoB,EAAAA,IAAIqF,IAAIouC,EAAQ70C,EAC3B,EAEAwoB,WAAU,WAEN,OAAOvnB,EAAAA,IAAI4F,WAAWtG,KAAK8yC,OAAOqB,gBAI3Bn0C,KAAK8yC,OAAOqB,eAAen0C,MAHvBA,KAAK8yC,OAAOqB,cAI3B,GAIJpwC,OAAM,WAEF,IAAIimB,EAAUhqB,KAAKk5B,YAMnB,GAJyB,OAApBl5B,KAAKs1C,YACNt1C,KAAKq1C,cAAcrrB,IAGhBhqB,KAAKgM,KACR,OAAO,KAGX,IAAIvO,EAAY,CACZ,0BAGCuC,KAAKs1C,aAAetrB,GACrBvsB,EAAU8F,KAAK,aAGdymB,GACDvsB,EAAU8F,KAAK,aAGnB,IAAI0kB,EAAajoB,KAAKioB,aAEjBjoB,KAAK8yC,OAAOta,eACbvQ,EAAaA,IAAgB+B,GAG5B/B,GACDxqB,EAAU8F,KAAK,cAGnB,IAAIxH,EAAQ,CAAC,EAMb,OAJOksB,IACHlsB,EAAM4tB,QAAU3pB,KAAK+1C,eAGzBtwC,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,WAClBR,KAAK6kB,MAAME,SAAO,OAGxC,GCrJJ,IAEI3kB,KAAM,mBAENkwC,QAASC,GAETx/B,YAAW,WAEPhW,KAAKs1C,WAAav1C,EAAAA,IAAIf,IAAIgB,KAAK8yC,OAAOiC,cAClC/0C,KAAK2B,IACb,EAEAmE,QAAS,CAELkwC,aAAY,WAER,IAAI91B,EAAO,KAEJlgB,KAAKk5B,cACRhZ,EAAOngB,EAAAA,IAAIiB,OAAO,CAAC,EAAGhB,KAAKkgB,OAG/BlgB,KAAK8yC,OAAOj/B,MAAM,oBAAqBqM,EAC3C,EAEAgZ,UAAS,WAEL,OAAKx4B,EAAAA,IAAIsF,QAAQhG,KAAK8yC,OAAO92C,aAItB+D,EAAAA,IAAIf,IAAIgB,KAAK8yC,OAAO92C,WAAYgE,KAAKkyC,OAAO51B,cAC/Ctc,KAAKP,MAAMO,KAAKkyC,OAAO51B,WAC/B,EAEA2L,WAAU,WAEN,OAAOvnB,EAAAA,IAAIsF,QAAQhG,KAAK8yC,OAAO92C,cAI1B0E,EAAAA,IAAI4F,WAAWtG,KAAK8yC,OAAOqB,gBACrBn0C,KAAK8yC,OAAOqB,eAAen0C,MAG/BU,EAAAA,IAAI4F,WAAWtG,KAAK8yC,OAAOn2C,UAI3BqD,KAAK8yC,OAAOn2C,SAASqD,MAHjBA,KAAK8yC,OAAOn2C,SAI3B,GAIJoH,OAAM,WAEF,IAAIimB,EAAUhqB,KAAKk5B,YAMnB,GAJyB,OAApBl5B,KAAKs1C,YACNt1C,KAAKq1C,cAAcrrB,IAGhBhqB,KAAKgM,KACR,OAAO,KAGX,IAAIvO,EAAY,CACZ,0BAGCuC,KAAKs1C,aAAetrB,GACrBvsB,EAAU8F,KAAK,aAGdymB,GACDvsB,EAAU8F,KAAK,aAGnB,IAAI0kB,EAAajoB,KAAKioB,aAEjBjoB,KAAK8yC,OAAOta,eACbvQ,EAAaA,IAAgB+B,GAG5B/B,GACDxqB,EAAU8F,KAAK,cAGnB,IAAIxH,EAAQ,CAAC,EAMb,OAJOksB,IACHlsB,EAAM4tB,QAAU3pB,KAAKg2C,eAGzBvwC,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,OACgB7S,GAAe1B,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,WAClBR,KAAK6kB,MAAME,SAAO,OAGxC,GCtG6D,SAAAze,GAAAC,GAAA,yBAAAA,GAAA,oBAAA3M,OAAAM,UAAAsM,SAAApM,KAAAmM,MAAAE,EAAAA,EAAAA,SAAAF,EAAA,CAEjE,UAEIuJ,OAAQ,CAEJm9B,OAAQ,CACJr1C,aAAS0B,IAKjBxC,MAAO,CAEH+2C,OAAQ,CACJvpB,UAAU,IAKlB/T,SAAU,CAENi9B,WAAU,WAEN,OAAOzyC,KAAKkyC,OAAOiB,gBAAgBnzC,KAAK8yC,OAC5C,EAEAuD,SAAQ,WAEJ,OAASr2C,KAAKkyC,OAAOoB,kBAAkBtzC,KAAK8yC,OAChD,EAEAwD,SAAQ,WAEJ,OAAS51C,EAAAA,IAAIsF,QAAQhG,KAAK2jB,OAAOlkB,MACrC,GAIJmG,KAAI,WAEA,MAAO,CACH+d,OAAQ3jB,KAAKu2C,iBAAkB7wB,SAAS,EAEhD,EAEA1P,YAAW,WAEPhW,KAAKw2C,aACT,EAEAnqC,QAAO,WAEHqK,EAAAA,MAAMC,KAAK,eACP3W,KAAK6zC,YAAa7zC,KAAK4W,EAAEjV,KAE7BK,EAAAA,IAAIC,KAAKC,UAAUS,GAAG,UAClB3C,KAAKipB,UAAWjpB,KAAK4W,EAAEjV,IAC/B,EAEAqV,cAAa,WAETN,EAAAA,MAAMQ,OAAO,eACTlX,KAAK4W,EAAEjV,KAEXK,EAAAA,IAAIC,KAAKC,UAAUkB,IAAI,UACnB,KAAMpD,KAAK4W,EAAEjV,IACrB,EAEAmE,QAAS,CAELywC,eAAc,WAEV,IAAI9D,EAAazyC,KAAKkyC,OAAOiB,gBAAgBnzC,KAAK8yC,QAElD,OAAKpyC,EAAAA,IAAIsF,QAAQysC,GACN,KAGJ1yC,EAAAA,IAAI0M,MAAMgmC,EACrB,EAEAgE,cAAa,WAET,OAAOz2C,KAAK8yC,OAAOM,YACfpzC,KAAK8yC,OAAO5zC,IACpB,EAEAw3C,iBAAgB,WAEZ,MAAO,CACHx6C,KAAY8D,KAAK8yC,OAAO52C,KACxBuD,MAAY,KACZ4zC,SAAYrzC,KAAKy2C,gBAEzB,EAEAD,YAAW,WAEP,GAAKx2C,KAAK2jB,OACN,OAAO3jB,KAAK22C,cAGhB32C,KAAK2jB,OAAS3jB,KAAK02C,mBAEZ12C,KAAKs2C,UAIZz1C,EAAAA,IAAI+lB,IAAI5mB,KAAKkyC,OAAOO,WAAYzyC,KAAK2jB,OAAQ,CACzC0vB,SAAUrzC,KAAKy2C,iBAEvB,EAEA5C,YAAW,SAAClyC,GAEH3B,KAAKkyC,OAAOvwC,MAAQA,IAIzB3B,KAAK2jB,OAAS3jB,KAAK02C,mBAEnB71C,EAAAA,IAAI+lB,IAAI5mB,KAAKkyC,OAAOO,WAAYzyC,KAAK2jB,OAAQ,CACzC0vB,SAAUrzC,KAAKy2C,kBAEvB,EAEAxtB,UAAS,SAACpO,GAEC7a,KAAK0lB,UAIS,KAAhB7K,EAAMI,OAAgBjb,KAAKs2C,UAC5Bt2C,KAAK22C,cAGY,KAAhB97B,EAAMI,OAAkBjb,KAAKs2C,UAC9Bt2C,KAAK42C,eAGyB,KAAhB/7B,EAAMI,OACpBjb,KAAKkyC,OAAOG,oBAEoB,KAAhBx3B,EAAMI,QACtBjb,KAAKyG,MAAM0vB,QAAQpzB,QAE3B,EAEA4zC,YAAW,WAEP,IAAIhzB,EAAS5jB,EAAAA,IAAI0M,MAAMzM,KAAK2jB,QAE5B9iB,EAAAA,IAAI+lB,IAAI5mB,KAAKkyC,OAAOQ,gBAChB1yC,KAAKy2C,iBAETz2C,KAAKkyC,OAAOyB,cAAchwB,EAAQ,CAC9B0vB,SAAUrzC,KAAKy2C,iBAEvB,EAEAG,YAAW,WAEP,IAAIjzB,EAAS3jB,KAAK02C,mBAElB71C,EAAAA,IAAIkB,OAAO/B,KAAKkyC,OAAOQ,gBACnB1yC,KAAKy2C,iBAETz2C,KAAKkyC,OAAOyB,cAAchwB,EAAQ,CAC9B0vB,SAAUrzC,KAAKy2C,kBAGnBz2C,KAAK2jB,OAASA,CAClB,GAIJkzB,WAAU,WAEN,OAAO,IACX,EAEAC,YAAW,WACX,IAAArlC,EACQ1V,EAAQ,CACRG,KAAM,UACN61B,OAAO,EACPt1B,KAAM,KACNE,UAAYqD,KAAKs2C,UAGrB,OAAA7wC,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,YAAAZ,EAAAA,EAAAA,YACiBvU,EAAK,SAAWiE,KAAK22C,cAAWprC,GAAAkG,EACvCzR,KAAKpE,MAAM,UAAQ6V,EAAA,2BAAAA,EAAA,GAGjC,EAEAslC,YAAW,WACX,IAAAvkC,EACQzW,EAAQ,CACRG,KAAM,UACN61B,OAAO,EACPt1B,KAAM,KACNE,SAAUqD,KAAKq2C,UAGnB,OAAA5wC,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,YAAAZ,EAAAA,EAAAA,YACiBvU,EAAK,SAAWiE,KAAK42C,cAAWrrC,GAAAiH,EACvCxS,KAAKpE,MAAM,UAAQ4W,EAAA,2BAAAA,EAAA,GAGjC,EAEAkf,aAAY,WAER,OAAAjsB,EAAAA,EAAAA,aAAA,wCAEUzF,KAAKN,KAAK,cAAVM,GACAA,KAAKN,KAAK,cAAVM,IAGd,EAEA+D,OAAM,WACN,IAAApE,EAAA,KAQI,OAAA8F,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aAAAZ,EAAAA,EAAAA,YAAA,0BACoC3Q,EAAK+lB,QAAO,+BAAAvU,GAAA,OAAZxR,EAAK+lB,QAAOvU,CAAA,GARpC,CACRlJ,MAAO,0BACPikB,QAAS,QACTzvB,KAAM,KACN2W,MAAO,MAIgD,CAE7CvW,QAASmD,KAAKN,KAAK,cAAeqtB,OAAQ/sB,KAAKN,KAAK,iBAItE,GC7OJ,IAEI2F,KAAM,qBAENkwC,QAASyB,GAETlxC,QAAS,CAEL4wC,iBAAgB,WAEZ,MAAO,CACHx6C,KAAY8D,KAAK8yC,OAAO52C,KACxBuD,MAAY,KACZw3C,SAAY,KACZ5D,SAAYrzC,KAAKy2C,gBAEzB,GAIJI,WAAU,WACV,IAAAl3C,EAAA,KACQrD,EAAU,CACV46C,GAAIl3C,KAAKpE,MAAM,kBACfu7C,GAAIn3C,KAAKpE,MAAM,kBACfw7C,GAAIp3C,KAAKpE,MAAM,eACfy7C,GAAIr3C,KAAKpE,MAAM,iBAGnB,OAAA6J,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,wCAAO,EAAPzL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,4CAAO,EAAPzL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,gCAGsCvR,EAAKgkB,OAAOlkB,MAAK,+BAAA0R,GAAA,OAAjBxR,EAAKgkB,OAAOlkB,MAAK0R,CAAA,cAAA1L,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,8CAAAzL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,iCAGhBvR,EAAKgkB,OAAOszB,SAAQ,+BAAA9lC,GAAA,OAApBxR,EAAKgkB,OAAOszB,SAAQ9lC,CAAA,UAAW7U,GAAO,aAIjF,GCvCJ,IAEI+I,KAAM,sBAENkwC,QAASyB,GAETlxC,QAAS,CAEL4wC,iBAAgB,WAEZ,MAAO,CACHx6C,KAAY8D,KAAK8yC,OAAO52C,KACxBuD,MAAY,KACZw3C,SAAY,KACZ5D,SAAYrzC,KAAKy2C,gBAEzB,GAIJI,WAAU,WACV,IAAAl3C,EAAA,KACQrD,EAAU,CACV,EAAG0D,KAAKpE,MAAMoE,KAAK8yC,OAAO2B,UAC1B,EAAGz0C,KAAKpE,MAAMoE,KAAK8yC,OAAO4B,YAG9B,OAAAjvC,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,wCAAO,EAAPzL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,4CAAO,EAAPzL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,iCAGuCvR,EAAKgkB,OAAOlkB,MAAK,+BAAA0R,GAAA,OAAjBxR,EAAKgkB,OAAOlkB,MAAK0R,CAAA,UAAW7U,GAAO,aAI9E,GCnCJ,IAEI+I,KAAM,uBAENkwC,QAASyB,GAETlxC,QAAS,CAEL4wC,iBAAgB,WAEZ,MAAO,CACHx6C,KAAY8D,KAAK8yC,OAAO52C,KACxBuD,MAAY,KACZw3C,SAAY,KACZ5D,SAAYrzC,KAAKy2C,gBAEzB,GAIJI,WAAU,WACV,IAAAl3C,EAAA,KACQrD,EAAU,CACV86C,GAAIp3C,KAAKpE,MAAM,cACf07C,GAAIt3C,KAAKpE,MAAM,eACf27C,GAAIv3C,KAAKpE,MAAM,eAGnB,OAAA6J,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,wCAAO,EAAPzL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,4CAAO,EAAPzL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,qCAG2CvR,EAAKgkB,OAAOlkB,MAAK,+BAAA0R,GAAA,OAAjBxR,EAAKgkB,OAAOlkB,MAAK0R,CAAA,cAAA1L,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,8CAAAzL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,iCAGrBvR,EAAKgkB,OAAOszB,SAAQ,+BAAA9lC,GAAA,OAApBxR,EAAKgkB,OAAOszB,SAAQ9lC,CAAA,UAAW7U,GAAO,aAIjF,GCvCqD,SAAAiP,GAAAC,GAAA,yBAAAA,GAAA,oBAAA3M,OAAAM,UAAAsM,SAAApM,KAAAmM,MAAAE,EAAAA,EAAAA,SAAAF,EAAA,CAEzD,UAEInG,KAAM,qBAENkwC,QAASyB,GAETlxC,QAAS,CAEL4wC,iBAAgB,WAEZ,MAAO,CACHx6C,KAAY8D,KAAK8yC,OAAO52C,KACxBuD,MAAY,GACZw3C,SAAY,KACZ5D,SAAYrzC,KAAKy2C,gBAEzB,GAIJne,aAAY,SAAC74B,GACb,IAAAgS,EACQ1V,EAAQ,CACR0D,MAAOM,EAAAA,IAAIf,IAAIS,EAAOO,KAAK8yC,OAAOte,eAGtC,OAAA/uB,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aACmBnV,EAAKwP,GAAAkG,EAAI1R,EAAAA,IAAIf,IAAIS,EAAOO,KAAK8yC,OAAOhiC,eAAaW,EAAA,2BAAAA,EAAA,GAExE,EAEAolC,WAAU,WACV,IAAArkC,EAAA7S,EAAA,KACQwS,EAAQnS,KAAK8yC,OAAOx2C,QAEnBoE,EAAAA,IAAI4F,WAAW6L,KAChBA,EAAQnS,KAAK8yC,OAAOx2C,QAAQ0D,OAGhCmS,EAAQtR,EAAAA,IAAIC,KAAKqR,EAAO,SAAC1S,EAAOiR,GAC5B,MAAO,CAAE0kB,OAAQ31B,EAAO41B,OAAQ3kB,EACpC,GAEA,IAAIpU,EAAU,CACVk7C,GAAIx3C,KAAKpE,MAAM,kBACf67C,GAAIz3C,KAAKpE,MAAM,mBAGnB,OAAA6J,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,wCAAO,EAAPzL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,4CAAO,EAAPzL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,yDAG+DvR,EAAKgkB,OAAOlkB,MAAK,+BAAA0R,GAAA,OAAjBxR,EAAKgkB,OAAOlkB,MAAK0R,CAAA,GAAA5F,GAAAiH,EAC9D3R,EAAAA,IAAIC,KAAKqR,EAAOxS,EAAKD,KAAK,kBAAgB8S,EAAA,2BAAAA,EAAA,SAAA/M,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,8CAAAzL,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,iCAIrBvR,EAAKgkB,OAAOszB,SAAQ,+BAAA9lC,GAAA,OAApBxR,EAAKgkB,OAAOszB,SAAQ9lC,CAAA,UAAW7U,GAAO,aAIjF,G,muBC7DJ,UAEI+I,KAAM,aAENtJ,MAAO,CAEH27C,KAAM,oBAGE,OAAO,CACX,EACAx7C,KAAM,CAACgB,SAGXy6C,MAAO,oBAGC,OAAO,GACX,EACAz7C,KAAM,CAACgB,SAGX06C,aAAc,oBAGN,MAAO,CAAC,GAAI,GAAI,IAAK,IAAK,IAAM,KACpC,GAGJp6B,MAAO,oBAGC,OAAO,CACX,EACAthB,KAAM,CAACgB,SAGXT,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGXuyC,SAAU,oBAGF,OAAO,CACX,EACA37C,KAAM,CAACgB,SAGX46C,OAAQ,oBAGA,MAAO,CACH,QAAS,QAAS,SAAU,OAAQ,QAE5C,EACA57C,KAAM,CAACmE,SAKfmV,SAAU,CAENuiC,MAAK,WAED,OAAO5zB,EAAAA,IAAIxK,KAAK3Z,KAAKwd,MAAQxd,KAAKg4C,UACtC,EAEAC,YAAW,WAEP,OAAOp3C,EAAAA,IAAI0B,KAAKvC,KAAK+3C,OAAS,EAClC,GAIJnyC,KAAI,WAEA,MAAO,CACHsyC,SAAUl4C,KAAK03C,KAAMM,UAAWh4C,KAAK23C,MAE7C,EAGA7xC,QAAS,CAELqyC,UAAS,SAACT,GAEDA,IAAS13C,KAAKk4C,WACfl4C,KAAKk4C,SAAWR,EAExB,EAEAU,eAAc,WAEV,IAAIC,EAAW,CACXX,KAAM13C,KAAKk4C,SAAUP,MAAO33C,KAAKg4C,WAGrCh4C,KAAK6T,MAAM,WAAYwkC,EAC3B,EAEAC,WAAU,WAENt4C,KAAKu4C,YAAYv4C,KAAKk4C,SAAW,EACrC,EAEAM,WAAU,WAENx4C,KAAKu4C,YAAYv4C,KAAKk4C,SAAW,EACrC,EAEAO,YAAW,WAEPz4C,KAAKu4C,YAAY,EACrB,EAEAG,WAAU,WAEN14C,KAAKu4C,YAAYv4C,KAAK+3C,MAC1B,EAEAQ,YAAW,SAAC94C,GAERO,KAAK6T,MAAM,cAAe7T,KAAKk4C,SAAWz4C,GAE1CO,KAAKo4C,gBACT,EAEAO,aAAY,SAACl5C,GAEJO,KAAKg4C,YAAcv4C,GACpBO,KAAK6T,MAAM,cAAe7T,KAAKk4C,SAAW,GAG9Cl4C,KAAK6T,MAAM,eAAgB7T,KAAKg4C,UAAYv4C,GAE5CO,KAAKo4C,gBACT,GAIJ5wC,MAAO,CAEHkwC,KAAI,SAACj4C,GAEIA,IAAUO,KAAKk4C,WAChBl4C,KAAKk4C,SAAWz4C,EAExB,EAEAk4C,MAAK,SAACl4C,GAEGA,IAAUO,KAAKg4C,YAChBh4C,KAAKg4C,UAAYv4C,EAEzB,GAIJm5C,YAAW,WACX,IAAAj5C,EAAA,KACQ5D,EAAQ,CACRC,WAAYgE,KAAKg4C,UACjBv7C,KAAMuD,KAAKvD,KACXP,KAAM8D,KAAK9D,KACXs4B,aAAc,eACd1jB,aAAc,gBAWlB,OARA/U,EAAMO,QAAUuE,EAAAA,IAAIC,KAAKd,KAAK43C,aAAc,SAACD,GACzC,MAAO,CACHl4C,MAAOk4C,EAAO35C,MAAO2B,EAAKyf,OAAO,eAAgBu4B,GAEzD,GAEA57C,EAAM,uBAAyBiE,KAAK24C,cAEpClzC,EAAAA,EAAAA,aAAA,qCAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAEqBnV,EAAK,OAG9B,EAEA88C,YAAW,WAEP,OAAApzC,EAAAA,EAAAA,aAAA,oCAESzF,KAAKof,OAAO,gDAAiDpf,KAAKwd,QAG/E,EAEAqM,aAAY,WAER,OAAApkB,EAAAA,EAAAA,aAAA,yCAKJ,EAEAqzC,WAAU,WAED94C,KAAKi4C,YAAYn4C,OAItB,IAAI/D,EAAQ,CACRC,WAAYgE,KAAKk4C,SACjBz7C,KAAMuD,KAAKvD,KACXP,KAAM8D,KAAK9D,KACXo4B,cAAe,IACfH,MAAM,EACN73B,QAAS0D,KAAKi4C,YACdzjB,aAAc,SACd1jB,aAAc,UAKlB,OAFA/U,EAAM,uBAAyBiE,KAAKu4C,aAEpC9yC,EAAAA,EAAAA,aAAA,qCACwC,WAAazF,KAAKi4C,YAAYn4C,QAAM,EAAA2F,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WACvDnV,EAAK,OAG9B,EAEA23B,WAAU,WAEN,IAAI33B,EAAQ,CACRG,KAAM8D,KAAK9D,KACXyB,QAAQ,EACRlB,KAAMuD,KAAKvD,KACXmB,KAAMqH,KAAK6kB,MAAMoX,UACjBvX,QAAS3pB,KAAKs4C,YAOlB,OAJKt4C,KAAKk4C,SAAW,EAAI,IACrBn8C,EAAMY,UAAW,IAGrB8I,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WACiBnV,EAAK,KAE1B,EAEA63B,WAAU,WAEN,IAAI73B,EAAQ,CACRG,KAAM8D,KAAK9D,KACXyB,QAAQ,EACRlB,KAAMuD,KAAKvD,KACXmB,KAAMqH,KAAK6kB,MAAMC,WACjBJ,QAAS3pB,KAAKw4C,YAOlB,OAJKx4C,KAAKk4C,SAAW,EAAIl4C,KAAK+3C,QAC1Bh8C,EAAMY,UAAW,IAGrB8I,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WACiBnV,EAAK,KAE1B,EAEAg9C,YAAW,WAEP,GAAK/4C,KAAK+3C,MAAQ/3C,KAAK63C,SACnB,OAAO,KAGX,IAAI97C,EAAQ,CACRG,KAAM8D,KAAK9D,KACXyB,QAAQ,EACRlB,KAAMuD,KAAKvD,KACXmB,KAAMqH,KAAK6kB,MAAMkvB,gBACjBrvB,QAAS3pB,KAAKy4C,aAOlB,OAJKz4C,KAAKk4C,SAAW,EAAI,IACrBn8C,EAAMY,UAAW,IAGrB8I,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WACiBnV,EAAK,KAE1B,EAEAk9C,WAAU,WAEN,GAAKj5C,KAAK+3C,MAAQ/3C,KAAK63C,SACnB,OAAO,KAGX,IAAI97C,EAAQ,CACRG,KAAM8D,KAAK9D,KACXyB,QAAQ,EACRlB,KAAMuD,KAAKvD,KACXmB,KAAMqH,KAAK6kB,MAAMovB,iBACjBvvB,QAAS3pB,KAAK04C,YAOlB,OAJK14C,KAAKk4C,SAAW,EAAIl4C,KAAK+3C,QAC1Bh8C,EAAMY,UAAW,IAGrB8I,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WACiBnV,EAAK,KAE1B,EAEAo9C,WAAU,SAACzoC,GACX,IAAArN,EAAA,KACQq0C,EAAO13C,KAAKk4C,SAEZH,EAAQroC,KAAKysB,IAAIn8B,KAAK63C,SAAW,GAEhCH,EAAOK,IACRL,EAAOK,GAGX,IAAIrf,EAASr4B,MAAML,KAAK+3C,OAAOj4C,OAE1B43C,EAAOhf,EAASqf,IACjBL,EAAOhf,EAASqf,GAGpB,IAAInzB,EAAUT,EAAAA,IAAG,IAAKzT,GAEtB,GAAKkU,EAAU8yB,EAAOK,EAClB,OAAO,KAGX,GAAKnzB,EAAUlV,KAAKzS,IAAI,EAAGy6C,EAAOK,GAC9B,OAAO,KAGX,IAhW8CvsC,EAgW1CzP,EAAQ,CACRG,KAAM8D,KAAK9D,KACXO,KAAMuD,KAAKvD,MAWf,OARKmoB,IAAY5kB,KAAKk4C,WAClBn8C,EAAMY,UAAW,GAGrBZ,EAAM4tB,QAAU,WACZtmB,EAAKk1C,YAAY3zB,EACrB,GAEAnf,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WACiBnV,EA9W6B,mBAAAyP,EA8WrBoZ,IA9WqB,oBAAA/lB,OAAAM,UAAAsM,SAAApM,KAAAmM,MAAAE,EAAAA,EAAAA,SAAAF,GA8WrBoZ,EAAO,2BAAPA,EAAO,GAEpC,EAEAw0B,YAAW,WACX,IAAA9uC,EAAA,KACQytC,EAAQl3C,EAAAA,IAAIC,KAAKd,KAAKi4C,YAAa,SAACvnC,GACpC,OAAOpG,EAAK5K,KAAK,aAAV4K,CAAwBoG,EACnC,GAEA,OAAAjL,EAAAA,EAAAA,aAAA,oCAESzF,KAAKN,KAAK,cAAVM,GACAA,KAAKN,KAAK,aAAVM,IAAyByC,OAAAge,GACtBs3B,GAAK,CACR/3C,KAAKN,KAAK,aAAVM,GACAA,KAAKN,KAAK,aAAVM,KAGb,EAEAmL,WAAU,SAACkuC,GAEP,IAAIpmC,EAAiBjT,KAAKN,KAAK,SAC3BsK,EAAAA,IAAIC,QAAQovC,IAEhB,OAAK34C,EAAAA,IAAI4F,WAAW2M,GACTA,IAGJjT,KAAKoB,OAAOi4C,IAASr5C,KAAKoB,OAAOi4C,IAC5C,EAEAt1C,OAAM,WACN,IAAA+G,EAAA,KACQwuC,EAAY,CACZ,cACA,gBAAkBt5C,KAAKvD,KACvB,gBAAkBuD,KAAK9D,MAG3B,OAAAuJ,EAAAA,EAAAA,aAAA,aAAmB6zC,GAAS,CAEpBz4C,EAAAA,IAAIC,KAAKd,KAAK83C,OAAQ,SAACuB,GACnB,OAAOvuC,EAAKpL,KAAK,aAAVoL,CAAwBuuC,EACnC,IAGZ,GC5ZJ,UAEIh0C,KAAM,QAENiD,MAAO,CACHpJ,KAAM,QAGVnD,MAAO,CAEHmkB,KAAM,oBAGE,OAAO,IACX,GAGJq5B,UAAW,oBAGH,OAAO,IACX,GAGJr9C,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGX0iC,SAAU,oBAGF,OAAO,CACX,EACA9rC,KAAM,CAACqJ,UAGXuf,cAAe,oBAGP,OAAO,CACX,EACA5oB,KAAM,CAACqJ,WAKfK,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QACL+yB,SAAU,GACVr4B,QAAS,GACTuJ,UAAW7F,KAAKkgB,KAExB,EAEA1Y,MAAO,CAEH0Y,KAAI,SAACzgB,GAEIA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,GAIJ4M,QAAO,WAEHrM,KAAKw5C,eACT,EAEAxiC,cAAa,WAEThX,KAAKy5C,iBACT,EAEA1I,QAAO,WACP,IAAApxC,EAAA,KACIe,EAAAA,IAAIwC,MAAM,WACDvD,EAAK8G,MAAM4W,SAGpB,EAAG,IACP,EAEAvX,QAAS,CAEL0zC,cAAa,WACb,IAAAn2C,EAAA,KACI,GAAMrD,KAAKu5C,UAAX,CAIAv5C,KAAK1D,QAAU0D,KAAKu5C,UAEf74C,EAAAA,IAAI4F,WAAWtG,KAAK1D,WACrB0D,KAAK1D,QAAU0D,KAAK1D,QAAQ0D,OAShC0W,EAAAA,MAAMC,KAAK3W,KAAK1D,QAAQ,GANL,SAACmD,IAAUI,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,QAChBwD,EAAK/G,QAAQ,IACtB+G,EAAKq2C,SAASj6C,EAEtB,EAGIO,KAAK2B,IAfT,CAgBJ,EAEA83C,gBAAe,WAEX/iC,EAAAA,MAAMQ,OAAOlX,KAAK1D,QAAQ,GAAI0D,KAAK2B,IACvC,EAEA+3C,SAAQ,SAACj6C,GAELO,KAAK6T,MAAM,oBACP7T,KAAK6F,UAAYpG,EACzB,EAEAozC,UAAS,SAACC,GAENjyC,EAAAA,IAAI+lB,IAAI5mB,KAAK20B,SACTme,EAAQ,CAAEnxC,IAAKmxC,EAAOnxC,KAC9B,EAEAoxC,aAAY,SAACD,GAETjyC,EAAAA,IAAIkB,OAAO/B,KAAK20B,SACZ,CAAEhzB,IAAKmxC,EAAOnxC,KACtB,GAIJsT,QAAO,WAEH,MAAO,CACH0kC,MAAO35C,KAEf,EAEAmpB,YAAW,WACX,IAAA7e,EAAA,KACI,OAAA7E,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,yBAC2BlR,KAAK8kB,cAAa,kDACpCxa,EAAKlJ,OAAO4D,OAASsF,EAAKlJ,OAAO4D,SAAWsF,EAAK1O,MAAM,YAAW,GAG/E,EAEA0W,WAAU,WACV,IAAAxH,EAAA,KACI,GAAKpK,EAAAA,IAAIsF,QAAQhG,KAAK6F,WAClB,OAAO7F,KAAKN,KAAK,cAAVM,GAGX,IAAI20B,EAAW50B,EAAAA,IAAIe,KAAKd,KAAK20B,SAAU,SAACme,GACpC,OAAArtC,EAAAA,EAAAA,aAAA,gCAESqtC,EAAOpzC,KAAK,cAAZozC,CAA2B,CAAE5yB,KAAMpV,EAAKjF,YACxCitC,EAAOpzC,KAAK,aAAZozC,CAA0B,CAAE5yB,KAAMpV,EAAKjF,aAGpD,GAEA,OAAAJ,EAAAA,EAAAA,aAAA,8BAES/E,EAAAA,IAAIqM,KAAK4nB,IAGtB,EAEA5wB,OAAM,WACN,IAAA0N,EA5L0DjG,EA6LlD/N,EAAY,CACZ,SACA,WAAauC,KAAK9D,KAClB,WAAa8D,KAAKvD,MAGlBm9C,GAAQn0C,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,wCAC8BlR,KAAKgoC,UApMO,mBAAAx8B,EAoMCiG,EAC9CzR,KAAKN,KAAK,aAAVM,KArM6C,oBAAAnB,OAAAM,UAAAsM,SAAApM,KAAAmM,MAAAE,EAAAA,EAAAA,SAAAF,GAqMpBiG,EAAA,2BAAAA,EAAA,IAIlC,OAAAhM,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CAChB,CAACm8C,EAAU55C,KAAKoB,OAAM,YAGnC,GC3MJ,IAEIiE,KAAM,cAEN0P,OAAQ,CAEJ4kC,MAAO,CACH98C,aAAS0B,IAKjBxC,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJkD,KAAM,oBAGE,MAAO,IACX,EACAhD,KAAM,CAACoJ,SAGXtH,MAAO,oBAGC,MAAO,EACX,EACA9B,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,QACX,EACAA,KAAM,CAACoJ,SAGX+uC,YAAa,oBAGL,MAAO,SACX,EACAn4C,KAAM,CAACoJ,SAGXhJ,QAAS,oBAGD,MAAO,EACX,EACAJ,KAAM,CAAC2C,OAAQwB,MAAOuM,WAG1B4nB,aAAc,oBAGN,MAAO,QACX,EACAt4B,KAAM,CAACoJ,SAGXwL,aAAc,oBAGN,MAAO,QACX,EACA5U,KAAM,CAACoJ,SAGX+uB,UAAW,oBAGH,OAAO14B,EAAAA,OAAOC,MAAM,IACxB,EACAM,KAAM,CAACoJ,SAGXmvC,SAAU,oBAGF,OAAO94C,EAAAA,OAAOC,MAAM,MACxB,EACAM,KAAM,CAACoJ,SAGXovC,UAAW,oBAGH,OAAO/4C,EAAAA,OAAOC,MAAM,KACxB,EACAM,KAAM,CAACoJ,SAGXqvC,eAAgB,oBAGR,OAAOh5C,EAAAA,OAAOC,MAAM,mBACxB,EACAM,KAAM,CAACoJ,UAKfM,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QAEb,EAEAoU,YAAW,WAEPhW,KAAK25C,MAAM9G,UAAU7yC,KACzB,EAEAgX,cAAa,WAEThX,KAAK25C,MAAM5G,aAAa/yC,KAC5B,EAEAo6B,YAAW,WAEP,OAAKp6B,KAAKoB,OAAOpD,MACNgC,KAAKoB,OAAOpD,SAGvByH,EAAAA,EAAAA,aAAA,gCAAAA,EAAAA,EAAAA,aAAA,aAEezF,KAAKhC,SAGxB,EAEAsU,WAAU,SAACvW,GAEP,IAAIqiB,EAASre,EAAAA,IAAIoN,OAAOpR,EAAO,GAAI,CAC/B+2C,OAAQ9yC,OAGR4H,GAAYgB,EAAAA,EAAAA,kBAAiB,aAC7BoB,EAAAA,IAAIC,QAAQjK,KAAK9D,OAErB,OAAO0L,GAIPwW,EAAM,MAAS,CACX,eACA,iBAAmBpe,KAAK9D,OAGpB2M,EAAAA,EAAAA,GAAEjB,EAAWwW,IARV,IASf,EAEAra,OAAM,WAEF,OAAO,IACX,GCtKJ,IAEIgR,OAAQ,CAEJ4kC,MAAO,CACH98C,aAAS0B,IAKjBxC,MAAO,CAEH+2C,OAAQ,CACJvpB,UAAU,GAGdrJ,KAAM,CACFqJ,UAAU,IAKlB/T,SAAU,CAENhN,MAAK,WAED,OAAOzI,EAAAA,IAAIf,IAAIgB,KAAKkgB,KAAMlgB,KAAK8yC,OAAO5zC,KAC1C,GAIJ6E,OAAM,WAEF,OAAA0B,EAAAA,EAAAA,aAAA,aAAAA,EAAAA,EAAAA,aAAA,aAEgBzF,KAAKwI,SAGzB,GCrCJ,IAEInD,KAAM,mBAENkwC,QAASsE,GAET91C,OAAM,WAEF,OAAK/D,KAAK8yC,OAAO5xC,KAAK,UAAWlB,OAC7ByF,EAAAA,EAAAA,aAAA,YACWzF,KAAK8yC,OAAO1xC,OAAM,QAASpB,SAI1CyF,EAAAA,EAAAA,aAAA,aAAAA,EAAAA,EAAAA,aAAA,aAEgB/E,EAAAA,IAAI+0C,cAAcz1C,KAAKwI,MAAOxI,KAAK8yC,OAAOze,cAG9D,GCnBJ,IAEIhvB,KAAM,oBAENkwC,QAASsE,GAET91C,OAAM,WAEF,OAAK/D,KAAK8yC,OAAO5xC,KAAK,UAAWlB,OAC7ByF,EAAAA,EAAAA,aAAA,YACWzF,KAAK8yC,OAAO1xC,OAAM,QAASpB,SAI1CyF,EAAAA,EAAAA,aAAA,aAAAA,EAAAA,EAAAA,aAAA,aAEgB/E,EAAAA,IAAIg1C,eAAe11C,KAAKwI,MAAOxI,KAAK8yC,OAAO2B,SAAUz0C,KAAK8yC,OAAO4B,cAGrF,GCnBJ,IAEIrvC,KAAM,qBAENkwC,QAASsE,GAET91C,OAAM,WAEF,OAAK/D,KAAK8yC,OAAO5xC,KAAK,UAAWlB,OAC7ByF,EAAAA,EAAAA,aAAA,YACWzF,KAAK8yC,OAAO1xC,OAAM,QAASpB,SAI1CyF,EAAAA,EAAAA,aAAA,aAAAA,EAAAA,EAAAA,aAAA,aAEgB/E,EAAAA,IAAIi1C,gBAAgB31C,KAAKwI,MAAOxI,KAAK8yC,OAAO6B,eAAgB30C,KAAK8yC,OAAOze,cAG5F,GCnBJ,IAEIhvB,KAAM,mBAENkwC,QAASsE,GAETvhB,aAAY,SAAC74B,GAET,IAAInD,EAAU0D,KAAK8yC,OAAOx2C,QAErBoE,EAAAA,IAAI4F,WAAWhK,KAChBA,EAAU0D,KAAK8yC,OAAOx2C,QAAQ0D,OAGlC,IAAId,EAAOc,KAAK8yC,OAAOte,aAEvBl4B,EAAUuE,EAAAA,IAAIC,KAAKxE,EAAS,SAACmD,EAAOiR,GAChC,MAAO,CAAE0kB,OAAQ31B,EAAO41B,OAAQ3kB,EACpC,GAEA,IAAI4kB,EAASz0B,EAAAA,IAAIoB,KAAK3F,EAAS,SAAC4jB,GAC5B,OAAOngB,EAAAA,IAAIf,IAAIkhB,EAAMhhB,IAASO,CAClC,GAEA,OAAO61B,EAIAv1B,EAAAA,IAAIf,IAAIs2B,EAAQt1B,KAAK8yC,OAAOhiC,aAC/B9Q,KAAK8yC,OAAOxe,eAJL,CAACt0B,KAAK8yC,OAAOze,UAK5B,EAEAtwB,OAAM,WAEF,GAAK/D,KAAK8yC,OAAO5xC,KAAK,UAAWlB,MAC7B,OAAAyF,EAAAA,EAAAA,aAAA,YACWzF,KAAK8yC,OAAO1xC,OAAM,QAASpB,QAI1C,IAAIwI,EAAU9H,EAAAA,IAAIoO,SAAS9O,KAAKwI,OACbxI,KAAKwI,MAApB,CAACxI,KAAKwI,OAEV,OAAA/C,EAAAA,EAAAA,aAAA,aAAAA,EAAAA,EAAAA,aAAA,aAEgB5E,EAAAA,IAAIC,KAAK0H,EAAOxI,KAAKN,KAAK,oBAG9C,GChDJ,IAEI2F,KAAM,kBAENkwC,QAASsE,GAETrkC,SAAU,CAENogC,QAAO,WAEH,OAAO71C,EAAAA,IAAIf,IAAIgB,KAAKkgB,KAAMlgB,KAAK8yC,OAAOuB,YAC1C,GAIJtwC,OAAM,WAEF,GAAK/D,KAAK8yC,OAAO5xC,KAAK,UAAWlB,MAC7B,OAAAyF,EAAAA,EAAAA,aAAA,YACWzF,KAAK8yC,OAAO1xC,OAAM,QAASpB,QAQ1C,OAAAyF,EAAAA,EAAAA,aAAA,aAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,aAAAZ,EAAAA,EAAAA,YAAA,MAEwBtQ,KAAK41C,SAAW51C,KAAKwI,MAAK,MAASxI,KAAKwI,OANpD,CACRstC,IAAK,YAKuE,OAGpF,GCjCJ,UAEIzwC,KAAM,WAENtJ,MAAO,CAEH+9C,KAAM,oBAGE,OAAO,IACX,GAGJC,MAAO,oBAGC,OAAO,IACX,GAGJrpB,MAAO,oBAGC,OAAO,IACX,EACAx0B,KAAM,CAACoJ,SAGXoL,MAAO,oBAGC,OAAO,CACX,EACAxU,KAAM,CAACgB,OAAQoI,SAGnBkL,MAAO,oBAGC,OAAO5O,EAAAA,EAAAA,OACX,EACA1F,KAAM,CAACoJ,SAGXwwC,IAAK,oBAGG,MAAO,OACX,EACA55C,KAAM,CAACoJ,SAGX00C,KAAM,oBAGE,OAAO,IACX,EACA99C,KAAM,CAACoJ,SAGXswC,QAAS,oBAGD,OAAO,CACX,EACA15C,KAAM,CAACqJ,UAGX00C,QAAS,oBAGD,OAAO,CACX,EACA/9C,KAAM,CAACqJ,UAGX20C,WAAY,oBAGJ,OAAOv+C,EAAAA,OAAOC,MAAM,gBACxB,EACAM,KAAM,CAACoJ,SAGX60C,aAAc,oBAGN,OAAO,CACX,EACAj+C,KAAM,CAACqJ,WAKfiQ,SAAU,CAEN4kC,SAAQ,WAEJ,OAAOp6C,KAAK85C,MAAQ95C,KAAK+5C,KAC7B,EAEAM,UAAS,WAEL,OAAOr6C,KAAK+5C,OAAS/5C,KAAK85C,IAC9B,GAIJ7kC,QAAO,WAEH,MAAO,CAAEqlC,SAAUt6C,KACvB,EAEA8F,QAAS,CAELy0C,QAAO,WAEHv6C,KAAKyG,MAAM3E,MAAMy4C,SACrB,EAEAC,SAAQ,WAEJx6C,KAAKyG,MAAM3E,MAAM04C,UACrB,GAIJC,YAAW,WAEP,OAAK/5C,EAAAA,IAAIsF,QAAQhG,KAAK0wB,OACX,MAGXjrB,EAAAA,EAAAA,aAAA,mCAAAA,EAAAA,EAAAA,aAAA,aAEezF,KAAK0wB,SAGxB,EAEAgqB,cAAa,WAET,IAAO16C,KAAK41C,QACR,OAAO51C,KAAKN,KAAK,aAAVM,GAKX,GAAc,UAFHA,KAAK26C,cAAcC,QAAQ56C,KAAKq6C,WAGvC,OAAA50C,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,sBAA4BlR,KAAKq6C,WAAS,MAO9C,OAAA50C,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,kBAAAZ,EAAAA,EAAAA,YAAA,KAA4BtQ,KAAKq6C,WAJrB,CACRJ,SAAS,EAAOE,cAAc,IAGmB,KACzD,EAEAU,WAAU,WAEN,IAAI3+C,EAAO8D,KAAK26C,cAAcC,QAAQ56C,KAAKo6C,UAE3C,GAAc,UAATl+C,EACD,OAAAuJ,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,sBAA4BlR,KAAKo6C,UAAQ,MAG7C,GAAc,UAATl+C,EACD,OAAAuJ,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,sBAA4BlR,KAAKo6C,UAAQ,MAG7C,IAAIr+C,EAAQ,CACRk+C,QAASj6C,KAAKi6C,QAASC,WAAYl6C,KAAKk6C,WAAYC,aAAcn6C,KAAKm6C,cAG3E,OAAA10C,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,kBAAAZ,EAAAA,EAAAA,YAAA,KAA4BtQ,KAAKo6C,UAAcr+C,GAAK,KACxD,EAEA2Y,YAAW,WAEP,IAAO1U,KAAK41C,QACR,OAAO,KAGX,IAAIjhC,EAAa,CACbjE,MAAO1Q,KAAK0Q,MAAOF,MAAOxQ,KAAKwQ,MAAOspC,KAAM95C,KAAKo6C,UAGrD,OAAA30C,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,kBAAAZ,EAAAA,EAAAA,YAAA,cACmCqE,GAAU,KAEjD,EAEA5Q,OAAM,WACN,IAAApE,EAAA,KACQlC,EAAY,CACZ,YACA,cAAgBuC,KAAK81C,KAGpB91C,KAAK41C,SACNn4C,EAAU8F,KAAK,eAGnB,IAAIrH,EAAO8D,KAAK26C,cAAcC,QAAQ56C,KAAKo6C,UAEtCl+C,GACDuB,EAAU8F,KAAK,UAAYrH,GAG/B,IAAI69C,EAAQ/5C,KAAK26C,cAAcC,QAAQ56C,KAAKq6C,WAEvCN,GACDt8C,EAAU8F,KAAK,kBAAoBw2C,GAGvC,IAAIh+C,EAAQ,CAAC,EAERiE,KAAK41C,UACN75C,EAAM4tB,QAAU,kBAAMhqB,EAAK46C,SAAS,GAGxC,IAAI57C,EAAM+O,KAAK1N,KAAKq6C,WAEpB,OAAA50C,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,KACc3R,EAAG,MAASlB,GAAe1B,GAAK,CACpC,CAACiE,KAAKN,KAAK,gBAAVM,GAA8BA,KAAKN,KAAK,cAAVM,GAA4BA,KAAKN,KAAK,cAAVM,KAGzE,GCrOJ,IAEIqF,KAAM,gBAENtJ,MAAO,CAEHuyB,IAAK,oBAGG,OAAO,IACX,GAGJ2rB,QAAS,oBAGD,OAAO,CACX,EACA/9C,KAAO,CAACqJ,UAGZ20C,WAAY,oBAGJ,OAAOv+C,EAAAA,OAAOC,MAAM,gBACxB,EACAM,KAAM,CAACoJ,SAGX60C,aAAc,oBAGN,OAAO,CACX,EACAj+C,KAAO,CAACqJ,WAKhBiQ,SAAU,CAENskC,KAAI,WACA,OAAO/5C,EAAAA,IAAIf,IAAIgB,KAAKsuB,IAAK,OAAQtuB,KAAKsuB,IAC1C,GAIJvqB,OAAM,WACN,IAAApE,EAAA,KAKQ+I,EAAQ,GAEZA,EAAM,IAAEjD,EAAAA,EAAAA,aAAA,WACEzF,KAAK26C,cAAcG,QAAQ96C,KAAK85C,QAGrC95C,KAAKi6C,SACNvxC,EAAMnF,MAAIkC,EAAAA,EAAAA,aAAC,KAAD,mBAAuBzF,KAAK85C,QAG1C,IAAI3J,EAAc,CACdryC,WAAY,IAAKmS,KAAMjQ,KAAK85C,KAAM92C,OAAQ,UAG1C+3C,GAAUt1C,EAAAA,EAAAA,aAAA,2BAAAA,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WAEOi/B,EAAW,2BAAIxwC,EAAKu6C,WAAU,MAQnD,OAJKl6C,KAAKm6C,cACNzxC,EAAMnF,KAAKw3C,IAGft1C,EAAAA,EAAAA,aAAA,aA5BgB,CACZ,oBA4BqB,EAAAA,EAAAA,EAAAA,aAAA,WACXiD,KAGlB,GClFJ,IAEIrD,KAAM,gBAENtJ,MAAO,CAEHuyB,IAAK,oBAGG,OAAO,IACX,IAKR1oB,KAAI,WAEA,MAAO,CACHo1C,MAAM,EAAOC,QAAS,KAE9B,EAEAjlC,YAAW,WAEAva,OAAOy/C,aACVz/C,OAAOy/C,WAAa,IAIjBr6C,EAAAA,IAAIqF,IAAIzK,OAAOy/C,WAAYl7C,KAAKsuB,OACnCtuB,KAAKi7C,QAAUj7C,KAAKsuB,IAG5B,EAEAjiB,QAAO,WAEHrM,KAAKm7C,aACT,EAEA3zC,MAAO,CAEH,IAAO,WACHxH,KAAKm7C,aACT,GAIJr1C,QAAS,CAELq1C,YAAW,WACX,IAAAx7C,EAAA,KACI,IAAKkB,EAAAA,IAAIqF,IAAIzK,OAAOy/C,WAAYl7C,KAAKsuB,KAArC,CAMA,GAFAtuB,KAAKi7C,QAAU,KAEVv6C,EAAAA,IAAIoO,SAAS9O,KAAKsuB,KACnB,OAAOtuB,KAAKo7C,cAGhBp5C,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAM0mB,OAAOkuB,OAAO,WAK9Bx6C,EAAAA,IAAI+lB,IAAInrB,OAAOy/C,WAAYv7C,EAAK2uB,KAKhC5tB,EAAAA,IAAIwC,MAAM,kBAAMvD,EAAKq7C,MAAO,CAAK,EAAE,IACvC,GAEAh7C,KAAKs7C,MAAO,CArBZ,CAsBJ,EAEAF,YAAW,WACX,IAAA/3C,EAAA,KACQk4C,EAAS,IAAIC,WAEjBD,EAAOE,OAAS,WACZp4C,EAAK43C,QAAUM,EAAOpyC,MAC1B,EAEAoyC,EAAOG,cAAc17C,KAAKsuB,IAC9B,GAIJvqB,OAAM,WAEF,IAAItG,EAAY,CACZ,mBAWJ,OARKoD,EAAAA,IAAIqF,IAAIzK,OAAOy/C,WAAYl7C,KAAKsuB,MACjC7wB,EAAU8F,KAAK,YAGZvD,KAAKg7C,MACRv9C,EAAU8F,KAAK,YAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,EAAAgI,EAAAA,EAAAA,aAAA,uBACKzF,KAAKi7C,SAAWj7C,KAAKsuB,KAAG,OAG1D,GC9GJ,IAEIjpB,KAAM,gBAENtJ,MAAO,CAEHuyB,IAAK,oBAGG,OAAO,IACX,IAKR1oB,KAAI,WAEA,MAAO,CACH+1C,SAAU,QAASr3B,OAAQ,KAAM22B,QAAS,KAElD,EAEA5uC,QAAO,WAEHrM,KAAK47C,aACT,EAEAp0C,MAAO,CAEH,IAAO,WACHxH,KAAK47C,aACT,GAIJ91C,QAAS,CAEL81C,YAAW,WAEP57C,KAAKi7C,QAAU,KAEVj7C,KAAK67C,kBAIL77C,KAAK87C,iBAILp7C,EAAAA,IAAIoO,SAAS9O,KAAKsuB,MACnBtuB,KAAKo7C,cAGTp7C,KAAK27C,SAAW,QACpB,EAEAP,YAAW,WAEP7wC,QAAQwc,IAAI,yCAChB,EAEA80B,eAAc,WAEV,IAAIE,EAAU/7C,KAAK26C,cAAcqB,cAAch8C,KAAKsuB,KAEpD,QAAOytB,IAIP/7C,KAAK27C,SAAW,UAEhB37C,KAAK6T,MAAM,kBAAmB7T,KAAKskB,OAASy3B,IAErC,EACX,EAEAD,aAAY,WAER,IAAIG,EAAQj8C,KAAK26C,cAAcuB,YAAYl8C,KAAKsuB,KAEhD,QAAO2tB,IAIPj8C,KAAK27C,SAAW,QAEhB37C,KAAK6T,MAAM,gBAAiB7T,KAAKskB,OAAS23B,IAEnC,EACX,GAIJE,cAAa,WAET,IAAIpgD,EAAQ,CACRuyB,IAAK,iCAAF7rB,OAAmCzC,KAAKskB,SAG/C,OAAA7e,EAAAA,EAAAA,aAAA,SACgB1J,EAAK,KAEzB,EAEAqgD,YAAW,WAEP,IAAIrgD,EAAQ,CACRuyB,IAAK,kCAAF7rB,OAAoCzC,KAAKskB,SAGhD,OAAA7e,EAAAA,EAAAA,aAAA,SACgB1J,EAAK,KAEzB,EAEAsgD,YAAW,WAEP,IAAI/tB,EAAMvuB,EAAAA,IAAIf,IAAIgB,KAAKsuB,IAAK,OAAQtuB,KAAKsuB,KAEzC,OAAA7oB,EAAAA,EAAAA,aAAA,iDAAAA,EAAAA,EAAAA,aAAA,cAEqBzF,KAAKi7C,SAAWj7C,KAAKsuB,IAAG,KAAQtuB,KAAK26C,cAAcG,QAAQxsB,IAAI,OAGxF,EAEAvqB,OAAM,WAMF,OAAA0B,EAAAA,EAAAA,aAAA,aAJgB,CACZ,oBAIqB,CACfzF,KAAKN,KAAK,SAAWsK,EAAAA,IAAIC,QAAQjK,KAAK27C,UAAtC37C,IAGd,GCzIJ,IAEIqF,KAAM,gBAEN0P,OAAQ,CAEJulC,SAAU,CACNz9C,aAAS0B,IAKjBxC,MAAO,CAEH+9C,KAAM,oBAGE,OAAO,IACX,GAGJppC,MAAO,oBAGC,OAAO,CACX,EACAxU,KAAM,CAACgB,OAAQoI,SAGnBkL,MAAO,oBAGC,OAAO5O,EAAAA,EAAAA,OACX,EACA1F,KAAM,CAACoJ,UAKfM,KAAI,WAEA,MAAO,CAAEjE,KAAKC,EAAAA,EAAAA,QAAQ8jB,SAAS,EACnC,EAEAlQ,SAAU,CAEN4kC,SAAQ,WACJ,OAAOr6C,EAAAA,IAAIf,IAAIgB,KAAK85C,KAAM,OAAQ95C,KAAK85C,KAC3C,GAIJtyC,MAAO,CAEHke,QAAS,SAAUjmB,GACVA,GACDO,KAAKs6C,SAASzmC,MAAM,QAE5B,GAIJxH,QAAO,WAEHrM,KAAKs8C,eAAe73C,SACfG,OAAO5E,KAAKyW,KAEjBzW,KAAKs8C,eAAe13C,OAAO5E,KAC/B,EAEAgX,cAAa,WAEThX,KAAKyW,IAAI1U,SAET/B,KAAKs8C,eAAev6C,OAAO/B,KAC/B,EAEA8F,QAAS,CAELy0C,QAAO,WAEHv6C,KAAKs8C,eAAe1vB,KAAK5sB,KAC7B,EAEAw6C,SAAQ,WAEJx6C,KAAKs8C,eAAev5C,OACxB,GAIJ83C,WAAU,WAEN,IAAIp9C,EAAY,CACZ,mBAGAu8C,EAAOh6C,KAAK26C,cAAcC,QAAQ56C,KAAKo6C,UAE3C,GAAc,UAATJ,EACD,OAAAv0C,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,wBAA8BzT,EAAS,IAAOuC,KAAK85C,MAAI,MAG3D,GAAc,UAATE,EACD,OAAAv0C,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,wBAA8BzT,EAAS,IAAOuC,KAAK85C,MAAI,MAG3D,IAAI/9C,EAAQ,CACRk+C,UAASj6C,KAAKs6C,UAAWt6C,KAAKs6C,SAASL,SAG3C,OAAAx0C,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,kBAAAZ,EAAAA,EAAAA,YAAA,OAA8B7S,EAAS,IAAOuC,KAAK85C,MAAU/9C,GAAK,KACtE,EAEAgI,OAAM,WAEF,OAAO/D,KAAK0lB,QAIL1lB,KAAKN,KAAK,aAAVM,GAHI,IAIf,G,+sBCzHG,IAAM26C,GAAa,oBAAAA,K,4FAAAn5C,CAAA,KAAAm5C,EAAA,Q,4GAAA17B,CAAA07B,EAAA,OAAAh8C,IAAA,SAAAc,MAItB,SAAciI,GACd,IADsB9H,EAAQC,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,QAEzBoG,EAAQyB,EAAOzB,MAAM,uBAEzB,OAAOA,EAIFvF,EAAAA,IAAIsF,QAAQC,EAAM,IACZrG,EAGJqG,EAAM,GAPFrG,CAQf,GAAC,CAAAjB,IAAA,UAAAc,MAED,SAAeiI,GACf,IADuB9H,EAAQC,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,OAE1Bi6C,EAAO/5C,EAAAA,IAAIf,IAAI0I,EAAQ,OAAQA,GAEnC,GAAKhH,EAAAA,IAAIsF,QAAQ8zC,GACb,OAAOl6C,EAGX,IAAI28C,EAAY5B,EAAc6B,OAAO1C,GAErC,OAAKa,EAAcqB,cAAclC,IAI5Ba,EAAcuB,YAAYpC,GAHpB,SAOX/5C,EAAAA,IAAIe,KAAKrF,OAAOghD,aAAc,SAACC,EAAM/9C,GAC5BkC,EAAAA,IAAIqF,IAAIw2C,EAAMH,KAAa38C,EAAWjB,EAC/C,GAEOiB,EACX,GAAC,CAAAjB,IAAA,UAAAc,MAED,SAAeiI,GACf,IADuB9H,EAAQC,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,aAE1Bi6C,EAAO/5C,EAAAA,IAAIf,IAAI0I,EAAQ,OAAQA,GAEnC,OAAKhH,EAAAA,IAAIsF,QAAQ8zC,GACNl6C,EAGN+6C,EAAcqB,cAAct0C,GACtB,gBAGNizC,EAAcuB,YAAYx0C,GACpB,cAGJizC,EAAcC,QAAQd,GAAQ,IAAMa,EAAc6B,OAAO1C,EACpE,GAAC,CAAAn7C,IAAA,cAAAc,MAED,SAAmBiI,GACnB,IAD2B9H,EAAQC,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAElC,IAAOa,EAAAA,IAAIC,SAAS+G,GAChB,OAAO9H,EAKX,IAFW8H,EAAOzB,MAAM,2CAGpB,OAAOrG,EAGX,IAAIoH,EAAOU,EAAOzB,MAAM,mBAExB,OAAKe,GAAwB,IAAhBA,EAAKlH,OACPkH,EAAK,GAAGa,QAAQ,WAAY,IAGhCjI,CACX,GAAC,CAAAjB,IAAA,gBAAAc,MAED,SAAqBiI,EAAQ9H,GAEzB,IAAOc,EAAAA,IAAIC,SAAS+G,GAChB,OAAO9H,EAKX,IAFW8H,EAAOzB,MAAM,gDAGpB,OAAOrG,EAGX,IAAIqiB,EAAKva,EAAOzB,MAAM,oBAEtB,GAAKgc,GAAoB,IAAdA,EAAGniB,OACV,OAAOmiB,EAAG,GAAGpa,QAAQ,QAAS,IAGlC,IAAIb,EAAOU,EAAOzB,MAAM,uBAExB,GAAKe,GAAwB,IAAhBA,EAAKlH,OACd,OAAOkH,EAAK,GAAGa,QAAQ,UAAW,IAGtC,IAAInE,EAAQgE,EAAOzB,MAAM,qBAEzB,OAAKvC,GAA0B,IAAjBA,EAAM5D,OACT4D,EAAM,GAAGmE,QAAQ,aAAc,IAGnCjI,CACX,IAAC,CAnHqB,I,oHAqHzB6B,CArHYk5C,GAAa,QAEP,iBAqHZl/C,OAAOk/C,GAAct2C,SACxB5I,OAAOk/C,GAAct2C,OAASs2C,IAGlC,Y,80BC3HAl/C,OAAOkhD,cAAgB,CAAC,EAEjB,IAAML,GAAc,kB,4GAAAr9B,CAAA,SAAAq9B,K,4FAAA96C,CAAA,KAAA86C,EAAA,SAAA39C,IAAA,SAAAc,MAMvB,SAAcygB,GAEJzkB,OAAOkhD,cAAcz8B,EAAK1P,SAC5B/U,OAAOkhD,cAAcz8B,EAAK1P,OAAS,CAAC,GAGxC/U,OAAOkhD,cAAcz8B,EAAK1P,OAAO0P,EAAKve,KAAOue,CACjD,GAAC,CAAAvhB,IAAA,SAAAc,MAED,SAAcygB,UAEHzkB,OAAOkhD,cAAcz8B,EAAK1P,OAAO0P,EAAKve,IACjD,GAAC,CAAAhD,IAAA,MAAAc,MAED,SAAW+Q,GAMP,OAJM/U,OAAOkhD,cAAcnsC,KACvB/U,OAAOkhD,cAAcnsC,GAAS,CAAC,GAG5B3P,EAAAA,IAAIuR,KAAK3W,OAAOkhD,cAAcnsC,GAAQ,QACjD,GAAC,CAAA7R,IAAA,OAAAc,MAED,WAEI,IAAOiB,EAAAA,IAAIoO,SAAS9O,KAAK4kB,SACrB,OAAO,KAGX,IAAIzS,EAAQnS,KAAKhB,IAAIgB,KAAK4kB,QAAQpU,OAE9BE,EAAQ7P,EAAAA,IAAIQ,UAAU8Q,EAAO,CAC7BxQ,IAAK3B,KAAK4kB,QAAQjjB,MAGlB+7B,EAAO78B,EAAAA,IAAIyM,MAAM6E,GAMrB,OAJKA,EAAMrS,OAAS4Q,EAAQ,IACxBgtB,EAAO78B,EAAAA,IAAI7B,IAAImT,EAAOzB,EAAQ,IAG3B1Q,KAAI,OAAQ09B,EACvB,GAAC,CAAA/+B,IAAA,OAAAc,MAED,WAEI,IAAOiB,EAAAA,IAAIoO,SAAS9O,KAAK4kB,SACrB,OAAO,KAGX,IAAIzS,EAAQnS,KAAKhB,IAAIgB,KAAK4kB,QAAQpU,OAE9BE,EAAQ7P,EAAAA,IAAIQ,UAAU8Q,EAAO,CAC7BxQ,IAAK3B,KAAK4kB,QAAQjjB,MAGlBigC,EAAO/gC,EAAAA,IAAI4jB,KAAKtS,GAMpB,OAJK,GAAKzB,EAAQ,IACdkxB,EAAO/gC,EAAAA,IAAI7B,IAAImT,EAAOzB,EAAQ,IAG3B1Q,KAAI,OAAQ4hC,EACvB,GAAC,CAAAjjC,IAAA,SAAAc,MAED,WACA,IAAAE,EAAA,KAGI,IAFA0C,EAAKL,EAAAA,IAAIC,KAAK,qBAENnC,SACJ,OAAOuC,EAGX,IAOIA,EAAKL,EAAAA,IAAIO,KAAK,MAAO,CACrB9E,UARY,CACZ,kBACA,sBACA,2BACA,iBAIqBgG,KAAK,OAG9BpB,EAAGod,KAAK,eAAgB,QAExB,IAAI1c,EAAQf,EAAAA,IAAIO,KAAK,MAAO,CACxB9E,UAAW,yBACX+E,UAAW,aAAFC,OAAewC,KAAK6kB,MAAM0H,MAAK,YAG5CzuB,EAAMJ,GAAG,QAAS,WACdhD,EAAKoD,OACT,GAEAA,EAAML,SAASL,GAEf,IAAIu/B,EAAO5/B,EAAAA,IAAIO,KAAK,MAAO,CACvB9E,UAAW,wBACX+E,UAAW,aAAFC,OAAewC,KAAK6kB,MAAMoX,UAAS,YAGhDU,EAAKj/B,GAAG,QAAS,WACbhD,EAAKiiC,MACT,GAEAA,EAAKl/B,SAASL,GAEd,IAAIq7B,EAAO17B,EAAAA,IAAIO,KAAK,MAAO,CACvB9E,UAAW,wBACX+E,UAAW,aAAFC,OAAewC,KAAK6kB,MAAMC,WAAU,YAWjD,OARA2T,EAAK/6B,GAAG,QAAS,WACbhD,EAAK+9B,MACT,GAEAA,EAAKh7B,SAASL,GAEdA,EAAGK,SAASR,SAASC,MAEdE,CACX,GAAC,CAAA1D,IAAA,OAAAc,MAED,SAAYygB,GACZ,IAAA7c,EAAA,KACQhB,EAAKrC,KAAKyE,SAqBdzC,EAAAA,IAAIC,KAAKxG,QAAQkH,GAAG,UAnBJ,SAACC,GAEb,OAAmB,KAAdA,EAAEC,SACHD,EAAEE,kBACKO,EAAKN,SAGG,KAAdH,EAAEC,SACHD,EAAEE,kBACKO,EAAKu+B,QAGG,KAAdh/B,EAAEC,SACHD,EAAEE,kBACKO,EAAKq6B,aAFhB,CAKJ,EAE0C,CACtC/7B,IAAK,oBAGT3B,KAAI,OAAQkgB,GAEPlgB,KAAKhB,IAAIkhB,EAAK1P,OAAO1Q,OAAS,GAC/BuC,EAAGc,SAAS,WAGhBd,EAAGc,SAAS,UAChB,GAAC,CAAAxE,IAAA,QAAAc,MAED,WAEI,IAAI4C,EAAKrC,KAAKyE,SAEdzC,EAAAA,IAAIC,KAAKxG,QAAQ2H,IAAI,UAAW,KAAM,CAClCzB,IAAK,oBAGT3B,KAAI,OAAQ,MAEZqC,EAAGuV,YAAY,CAAC,UAAW,WAC/B,GAAC,CAAAjZ,IAAA,SAAAc,MAED,SAAcygB,GAYV,OAVKxf,EAAAA,IAAIoO,SAAS9O,KAAK4kB,UACnB7kB,EAAAA,IAAIwH,IAAIvH,KAAK4kB,QAAS,WAAW,GAGrC5kB,KAAK4kB,QAAU1E,EAEVxf,EAAAA,IAAIoO,SAAS9O,KAAK4kB,UACnB7kB,EAAAA,IAAIwH,IAAIvH,KAAK4kB,QAAS,WAAW,GAG9B1E,CACX,IAAC,CAhMsB,GAkM1Bze,GAlMY66C,GAAc,QAER,kBAAgB76C,GAFtB66C,GAAc,UAIN,MAgMd7gD,OAAO6gD,iBACV7gD,OAAO6gD,eAAiBA,IAG5B,YCnMA7gD,OAAOmhD,oBAAsB,CACzBzvB,MAAO,CACH,MAAO,OAAQ,MAAO,MAAO,MAAO,OAExC0vB,MAAO,CACH,MAAO,OAAQ,OAEnBC,MAAO,CACH,MAAO,OAEXC,KAAM,CACF,OAAQ,MAAO,OAEnBr7C,KAAM,CACF,MAAO,MAAO,QAElBs7C,YAAa,CACT,MAAO,MAAO,QCxBtB,UAEI33C,KAAM,OAENtJ,MAAO,CAEHkhD,IAAK,oBAGG,OAAO,CACX,EACA/gD,KAAM,CAACgB,SAGXggD,IAAK,oBAGG,OAAO,CACX,EACAhhD,KAAM,CAACgB,SAGXigD,KAAM,oBAGE,OAAO,EACX,EACAjhD,KAAM,CAACgB,UAKf+X,QAAO,WAEH,MAAO,CACHmoC,KAAMp9C,KAEd,EAEA4F,KAAI,WAEA,MAAO,CAAEoG,MAAM,EAAOqxC,UAAW,GAAIC,QAAS,KAClD,EAEA91C,MAAO,CAEHy1C,IAAG,WACH,IAAAt9C,EAAA,KACIe,EAAAA,IAAIwC,MAAM,kBAAMvD,EAAK29C,QAAQC,cAAc,EAAE,IACjD,EAEAL,IAAG,WACH,IAAA75C,EAAA,KACI3C,EAAAA,IAAIwC,MAAM,kBAAMG,EAAKi6C,QAAQC,cAAc,EAAE,IACjD,GAIJlxC,QAAO,WAEHrM,KAAKs9C,QAAU,IAAIE,EAAAA,IAAIx9C,KAAKyW,IAAK,CAC7BwmC,IAAKj9C,KAAKi9C,IAAKC,IAAKl9C,KAAKk9C,IAAKC,KAAMn9C,KAAKm9C,OAG7Cn9C,KAAKgM,MAAO,EAEZnL,EAAAA,IAAIC,KAAKd,KAAKq9C,UAAW,SAACjyC,GAAQ,OAAKA,GAAU,EACrD,EAEAtF,QAAS,CAEL23C,OAAM,WAEF,OAAOz9C,KAAKs9C,OAChB,EAEAI,QAAO,SAACtyC,GAEJpL,KAAKgM,KAAOZ,IAAapL,KAAKq9C,UAAU95C,KAAK6H,EACjD,GAIJrH,OAAM,WAMF,OAAA0B,EAAAA,EAAAA,aAAA,aAJgB,CACZ,UAIqB,CACfzF,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,WAGhD,GC9FJ,IAEIiE,KAAM,aAEN0P,OAAQ,CAEJqoC,KAAM,CACFvgD,aAAS0B,IAKjBxC,MAAO,CAEHkhD,IAAK,oBAGG,OAAO,CACX,EACA/gD,KAAM,CAACgB,SAGXggD,IAAK,oBAGG,OAAO,CACX,EACAhhD,KAAM,CAACgB,SAGX8oB,KAAM,oBAGE,OAAO,CACX,EACA9pB,KAAM,CAACqJ,UAGXjJ,QAAS,oBAGD,MAAO,CAAE8L,MAAO,UACpB,EACAlM,KAAM,CAAC2C,UAKf+G,KAAI,WAEA,MAAO,CACHqc,IAAIrgB,EAAAA,EAAAA,QAAQ+7C,WAAY,KAEhC,EAEA73C,QAAS,CAEL83C,qBAAoB,WAEhB59C,KAAK29C,WAAWE,OAAOC,YAAY,CAC/Bb,IAAKj9C,KAAKi9C,IAAKC,IAAKl9C,KAAKk9C,KAEjC,EAEAa,qBAAoB,WAEhB/9C,KAAK6T,MAAM,aAAc7T,KAAK29C,WAAWE,OAAOG,cAAcf,OAC9Dj9C,KAAK6T,MAAM,aAAc7T,KAAK29C,WAAWE,OAAOG,cAAcd,MAClE,EAEAe,iBAAgB,WAChB,IAAAt+C,EAAA,KACQrD,EAAUyD,EAAAA,IAAIiB,OAAO,CACrBi8C,IAAK94B,EAAAA,IAAG,MAAOnkB,KAAKi9C,KAAMC,IAAK/4B,EAAAA,IAAG,MAAOnkB,KAAKk9C,KAAMv4B,UAAW3kB,KAAKgmB,MACrEhmB,KAAK1D,SAEDoE,EAAAA,IAAIsF,QAAQhG,KAAKoB,OAAM,WAC1B9E,EAAQ6iB,KAAOnf,KAAKyW,IAAIjU,WAG5BxC,KAAK29C,WAAa39C,KAAKo9C,KAAKK,SAASS,aAAal+C,KAAKiiB,GAAI3lB,GAE3D0D,KAAK29C,WAAWE,OAAOM,YAAY,mBAC/Bz9C,EAAAA,IAAI0pB,SAASpqB,KAAK+9C,uBAEtB/9C,KAAK29C,WAAWE,OAAOM,YAAY,YAC/B,kBAAMx+C,EAAKkU,MAAM,YAAalU,EAAKg+C,WAAW,GAElD39C,KAAK29C,WAAWE,OAAOM,YAAY,UAC/B,kBAAMx+C,EAAKkU,MAAM,UAAWlU,EAAKg+C,WAAW,GAEhD39C,KAAK29C,WAAWE,OAAOM,YAAY,YAC/B,kBAAMx+C,EAAKkU,MAAM,aAAclU,EAAKg+C,WAAW,GAEnD39C,KAAK29C,WAAWE,OAAOM,YAAY,WAC/B,kBAAMx+C,EAAKkU,MAAM,aAAclU,EAAKg+C,WAAW,EACvD,EAEAS,mBAAkB,SAACC,GACnB,IAAAh7C,EAAA,KASIrD,KAAKo9C,KAAKK,SAASW,mBAAmBp+C,KAAKiiB,GAAIo8B,GAC1C1jC,KATgB,WACjBtX,EAAK+5C,KAAKK,SAASF,aAAa,KAAMl6C,EAAK+5C,KAAKD,KACpD,EAEmB,WACf95C,EAAKi7C,OAAOj7C,EAAKzH,MAAM,sBAAuB,SAClD,EAIJ,GAIJ4L,MAAO,CAEHy1C,IAAG,WAECj9C,KAAK49C,sBACT,EAEAV,IAAG,WAECl9C,KAAK49C,sBACT,GAIJ5nC,YAAW,WAEPhW,KAAKo9C,KAAKM,QAAQ19C,KAAKi+C,iBAC3B,EAEAl6C,OAAM,WAEF,OAAA0B,EAAAA,EAAAA,aAAA,gCAEUzF,KAAKoB,OAAM,SAAYpB,KAAKoB,OAAM,WAGhD,G,muBC5IJ,UAEIiE,KAAM,QAENtJ,MAAO,CAEHC,WAAY,oBAGJ,OAAO,IACX,GAGJo4B,SAAU,oBAGF,OAAO,CACX,EACAl4B,KAAM,CAACqJ,UAGX3H,KAAM,oBAGE,MAAO,EACX,EACA1B,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXysB,MAAO,oBAGC,OAAO,CACX,EACA71B,KAAM,CAACqJ,UAGX5I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGXjI,YAAa,oBAGL,MAAO,EACX,EACApB,KAAM,CAACoJ,SAGXvI,UAAW,oBAGH,OAAO,CACX,EACAb,KAAM,CAACqJ,UAGXg5C,cAAe,oBAGP,OAAOt5C,KAAK6kB,MAAM0H,KACtB,EACAt1B,KAAM,CAACoJ,SAGX40C,WAAY,oBAGJ,OAAOv+C,EAAAA,OAAOC,MAAM,cACxB,EACAM,KAAM,CAACoJ,UAKfM,KAAI,WAEA,MAAO,CACHC,UAAW7F,KAAKhE,WAExB,EAEAwL,MAAO,CAEHxL,WAAU,WAEDgE,KAAKhE,aAAegE,KAAK6F,YAC1B7F,KAAK6F,UAAY7F,KAAKhE,WAE9B,EAEA6J,UAAS,WAEAnF,EAAAA,IAAIsF,QAAQhG,KAAK6F,aAClB7F,KAAKyG,MAAM+B,MAAM/I,MAAQ,KAEjC,GAIJqG,QAAS,CAEL04C,YAAW,WAEPx+C,KAAKyG,MAAM+B,MAAMzK,OACrB,EAEA0gD,WAAU,WAEN,IAAI54C,EAAS4a,GACNzgB,KAAKyG,MAAM+B,MAAMk2C,OAGjB1+C,KAAKo0B,WACRvuB,EAAYA,EAAU,IAG1B7F,KAAK6T,MAAM,oBAAqB7T,KAAK6F,UAAYA,EACrD,EAEA84C,UAAS,WAEL3+C,KAAK6T,MAAM,oBAAqB,KACpC,GAIJgB,YAAW,WAEP,IAAI9Y,EAAQ,CACRU,KAAMuD,KAAKvD,KACXE,UAAU,EACVsB,cAAc,GAkBlB,OAfAlC,EAAmB,YAAIiE,KAAK2+C,UAErB3+C,KAAKo0B,WACRr4B,EAAMC,WAAa+D,EAAAA,IAAIf,IAAIgB,KAAK6F,UAAW,SAG1C7F,KAAKo0B,WACNr4B,EAAMC,WAAaL,EAAAA,OAAOyjB,OAAO,2BAC7Bpf,KAAK6F,UAAU/F,SAGlBE,KAAKjD,YAAc2D,EAAAA,IAAIsF,QAAQhG,KAAK6F,aACrC9J,EAAM6B,KAAOoC,KAAKu+C,gBAGtB94C,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,UACgBnV,EAAK,KAIzB,EAEAo+C,aAAY,WACZ,IAAAx6C,EAAA,KACQ5D,EAAQ,CACRU,KAAMuD,KAAKvD,KACXE,SAAUqD,KAAKrD,SACfiB,KAAMoC,KAAKpC,KACXm0B,MAAO/xB,KAAK+xB,MACZpI,QAAS3pB,KAAKw+C,aAGlB,OAAA/4C,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,WACiBnV,EAAK,2BAAG4D,EAAKu6C,WAAU,GAE5C,EAEA0E,aAAY,WAER,IAAI7iD,EAAQ,CACR,QAAWiE,KAAKy+C,YAGpB,OAAAh5C,EAAAA,EAAAA,aAAA,gCAAAA,EAAAA,EAAAA,aAAA,SAAA6K,EAAAA,EAAAA,YAAA,kCAEiDtQ,KAAKo0B,UAAcr4B,GAAK,OAG7E,EAEAgI,OAAM,WAEF,IAAItG,EAAY,CACZ,UAOJ,OAJKuC,KAAKrD,UACNc,EAAU8F,KAAK,eAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACfuC,KAAKN,KAAK,cAAVM,GACAA,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,eAAVM,IAGd,GCtNJ,UAEIqF,KAAM,UAENtJ,MAAO,CAEHC,WAAY,oBAGJ,OAAO,CACX,EACAE,KAAM,CAACgB,SAGXg+B,MAAO,oBAGC,MAAO,EACX,EACAh/B,KAAM,CAACgB,SAGXy+B,MAAO,oBAGC,OAAO,CACX,EACAz/B,KAAM,CAACgB,SAGXD,IAAK,oBAGG,OAAO,CACX,EACAf,KAAM,CAACgB,SAGXT,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGX8Z,OAAQ,oBAGA,MAAO,QACX,EACAljB,KAAM,CAACoJ,SAGXpJ,KAAM,oBAGE,MAAO,SACX,EACAA,KAAM,CAACoJ,SAGX3I,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,WAKfiQ,SAAU,CAENqpC,aAAY,WAER,OAAO16B,EAAAA,IAAIwX,MAAM,EAAI37B,KAAK/C,IAAM+C,KAAKhE,WAAa,EAAGgE,KAAK27B,MAC9D,GAIJmjB,YAAW,WACX,IAAAn/C,EAAA,KAKI,OAAOkB,EAAAA,IAAIC,KAJC,CACR,EAAG,EAAG,EAAG,EAAG,GAGQ,SAACi+C,GAErB,IAAIzF,EAAY,UAUhB,OARK35C,EAAKk/C,cAAgBE,EAAO,KAC7BzF,EAAY,WAGX35C,EAAKk/C,cAAgBE,IACtBzF,EAAY,YAGhB7zC,EAAAA,EAAAA,aAAA,cACiB6zC,GAAS,KAE9B,EACJ,EAEA0F,YAAW,WAEP,IAAIC,EAAO,CACPx/C,MAAO0kB,EAAAA,IAAI5mB,OAAOyC,KAAKhE,WAAY,IAAK,GAAIgE,KAAK27B,QAGrD,OAAK37B,KAAKoB,OAAM,QACLpB,KAAKoB,OAAM,QAAS69C,GAGxBtjD,EAAAA,OAAOyjB,OAAOpf,KAAKof,OAAQpf,KAAKhE,WAAYijD,EACvD,EAEAl7C,OAAM,WAEF,IAAItG,EAAY,CACZ,WACA,aAAeuC,KAAKvD,KACpB,aAAeuD,KAAK9D,MAOxB,OAJK8D,KAAKrD,UACNc,EAAU8F,KAAK,eAGnBkC,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,EAAAgI,EAAAA,EAAAA,aAAA,iCAEZzF,KAAKN,KAAK,cAAVM,MAA0ByF,EAAAA,EAAAA,aAAA,iCAG1BzF,KAAKN,KAAK,cAAVM,MAIjB,GC5IJvE,OAAOyjD,aAAe,GAEtB,UAEI75C,KAAM,UAEN0P,OAAQ,CAEJoqC,QAAS,CACLtiD,aAAS0B,IAKjBxC,MAAO,CAEHC,WAAY,oBAGJ,OAAO,CACX,EACAE,KAAM,CAACqJ,UAGX0mB,OAAQ,oBAGA,OAAO,CACX,EACA/vB,KAAM,CAACqJ,UAGX8I,OAAQ,oBAGA,OAAO,CACX,EACAnS,KAAM,CAACqJ,UAGXqT,SAAU,oBAGF,OAAO,IACX,GAGJjc,SAAU,oBAGF,OAAO,CACX,EACAT,KAAM,CAACqJ,UAGX6N,MAAO,oBAGC,MAAO,KACX,EACAlX,KAAM,CAACoJ,SAGXorB,MAAO,oBAGC,MAAO,EACX,EACAx0B,KAAM,CAACoJ,SAGX6mB,MAAO,oBAGC,MAAO,MACX,EACAjwB,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXulB,SAAU,oBAGF,MAAO,OACX,EACA3uB,KAAM,CAACoJ,SAGXqrB,SAAU,oBAGF,OAAO,CACX,EACAz0B,KAAM,CAACqJ,UAGXqrB,YAAa,oBAGL,OAAO,CACX,EACA10B,KAAM,CAACqJ,WAKfiC,MAAO,CAEHxL,WAAU,SAACyD,GAEFA,IAAUO,KAAK6F,YAChB7F,KAAK6F,UAAYpG,EAEzB,EAEAoG,UAAS,WAEL7F,KAAK6wB,qBACT,GAIJ5b,QAAO,WAEH,MAAO,CACHkqC,QAASn/C,KAEjB,EAEA4F,KAAI,WAEA,MAAO,CACH5C,OAAQ,KAAM6C,WAAW,EAEjC,EAEAwG,QAAO,WACP,IAAA1M,EAAA,KACIK,KAAKgD,OAAShB,EAAAA,IAAIC,KAAKjC,KAAK4Y,UAAY5Y,KAAKyW,KACxC+V,WAAWxtB,IAAI,GAEpBgD,EAAAA,IAAIC,KAAKC,SAASC,MAAMQ,GAAG,YACvB3C,KAAK+wB,WAAY/wB,KAAK4W,EAAEjV,KAE5BK,EAAAA,IAAIC,KAAKC,SAASC,MAAMQ,GAAG,UACvB3C,KAAKgxB,aAAchxB,KAAK4W,EAAEjV,KAMzB3B,KAAKhE,YACN0E,EAAAA,IAAIwC,MALS,WACbvD,EAAKkG,WAAY,CACrB,EAG0B,KAG1B7D,EAAAA,IAAIC,KAAKC,SAASC,MAAMyC,OAAO5E,KAAKyW,IACxC,EAEAO,cAAa,WAEThX,KAAKyW,IAAI1U,QACb,EAEAqpB,UAAS,WAELppB,EAAAA,IAAIC,KAAKC,SAASC,MAAMiB,IAAI,YACxB,KAAMpD,KAAK4W,EAAEjV,KAEjBK,EAAAA,IAAIC,KAAKC,SAASC,MAAMiB,IAAI,UACxB,KAAMpD,KAAK4W,EAAEjV,IACrB,EAEAmE,QAAS,CAELmrB,UAAS,WACT,IADUC,EAAKrxB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,IAAAA,UAAA,GAAU6H,EAAM7H,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAEzBG,KAAK6F,aAIL7F,KAAK2wB,UAAYO,KAClBlxB,KAAK6F,WAAY,GAGrB7F,KAAK6T,MAAM,qBAAqB,EAAMnM,GAC1C,EAEA03C,YAAW,WACX,IADYluB,EAAKrxB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,IAAAA,UAAA,GAAU6H,EAAM7H,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,KAEhC,GAAOG,KAAK6F,UAAZ,CAIA,IAAO7F,KAAKqO,OACR,OAAOrO,KAAK6T,MAAM,QAASnM,IAG1B1H,KAAK2wB,UAAYO,KAClBlxB,KAAK6F,WAAY,GAGrB7F,KAAK6T,MAAM,qBAAqB,EAAOnM,EAVvC,CAWJ,EAEA0pB,mBAAkB,WAEdnT,aAAaje,KAAKunB,SAElBvlB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKmB,YAAY,UACnC,EAEAiZ,oBAAmB,WAEf,IAAO7wB,KAAK6F,UACR,OAAO7F,KAAKoxB,qBAGhB31B,OAAOo0B,QAAU,EAEjB7tB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKgJ,KAAK,cACpBhkB,OAAOo0B,QAEX7tB,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKrU,IAAI,CACnB,UAAW3G,OAAOo0B,SAGtB7vB,KAAKqxB,qBACT,EAEAA,oBAAmB,WACnB,IAAAhuB,EAAA,KACI,IAAOrD,KAAK6F,UACR,OAAO7F,KAAKoxB,qBAGhBpxB,KAAKunB,QAAUrjB,WAAW,WACtBlC,EAAAA,IAAIC,KAAKoB,EAAKoT,KAAKtT,SAAS,UAChC,EAAG,IACP,EAEA4tB,WAAU,SAAClW,EAAOxY,GAEd,IAAKrC,KAAKrD,UAA4B,IAAhBke,EAAMI,MAA5B,CAIA,IAAI9R,IAAYnH,EAAAA,IAAIC,KAAKI,GAAI4e,QAAQjhB,KAAKgD,QAE1C,IAAOmG,GAAYnJ,KAAK6F,aAInB7F,KAAK6F,WAAa7F,KAAK2wB,WACxBxnB,GAAWnH,EAAAA,IAAIC,KAAKI,GAAI4e,QAAQjhB,KAAKyG,MAAM6qB,WAG1CnoB,IAAWnJ,KAAK6F,WAIrB,OAAOsD,OAIFnJ,KAAKisB,QACNjsB,KAAKixB,WAAU,EAAM,aAJdjxB,KAAKo/C,aAAY,EAAO,SAjBnC,CAuBJ,EAEApuB,aAAY,SAACnW,EAAOxY,GAEhB,GAAOrC,KAAK6F,WAA6B,KAAhBgV,EAAMI,MAA/B,CAIA,IAIIsW,EAAUvvB,EAAAA,IAAIC,KAAK,4BAClBnB,KALc,SAACgB,GAChB,OAAOE,EAAAA,IAAIC,KAAKH,GAAO2d,KAAK,cAChC,GAKI/O,EAAQ1O,EAAAA,IAAIC,KAAKjC,KAAKyW,KAAKgJ,KAAK,eAE/B5e,EAAAA,IAAI4jB,KAAK8M,EAAQnf,UAAY1B,GAIlC1Q,KAAKo/C,aAAY,EAAO,SAfxB,CAgBJ,GAIJxuB,YAAW,WACX,IAAAtmB,EAAA,KACI,IAAOtK,KAAK4wB,cAAiB5wB,KAAK2wB,SAC9B,OAAO,KAGX,IAAI50B,EAAQ,CACR4tB,QAAS,WAAF,OAAQrf,EAAK80C,aAAY,EAAO,SAAS,GAGpD,OAAA35C,EAAAA,EAAAA,aAAA,OAAA6K,EAAAA,EAAAA,YAAA,0BACqCvU,GAAK,EAAA0J,EAAAA,EAAAA,aAAA,cACrBR,KAAK6kB,MAAM0H,OAAK,OAGzC,EAEAC,aAAY,WAER,OAAOzxB,KAAKoB,OAAO0rB,QAAY9sB,KAAK0wB,OAIpCjrB,EAAAA,EAAAA,aAAA,kCAEU,CAACzF,KAAKoB,OAAO0rB,QAAU9sB,KAAKoB,OAAO0rB,OAAO,CAAEsyB,YAAap/C,KAAKo/C,eAAkBp/C,KAAK0wB,MAAO1wB,KAAKN,KAAK,cAAVM,MAL3F,IAQf,EAEA0xB,aAAY,WAER,OAAO1xB,KAAKoB,OAAO2rB,QAInBtnB,EAAAA,EAAAA,aAAA,kCAEUzF,KAAKoB,OAAO2rB,OAAO,CAAEqyB,YAAap/C,KAAKo/C,gBALtC,IAQf,EAEA9sC,WAAU,WACV,IAAAxH,EAAA,KACQ6mB,GAAQlsB,EAAAA,EAAAA,cAAAyL,EAAAA,EAAAA,kBAAA,yCAC8B,EAAI,uDACpCpG,EAAK1J,OAAM,SAAY0J,EAAK1J,OAAM,QAAS,CAAEg+C,YAAat0C,EAAKs0C,cAAc,IAQvF,OAJKp/C,KAAKoB,OAAOe,OACbwvB,EAAW3xB,KAAKoB,OAAOe,KAAK,CAAEi9C,YAAap/C,KAAKo/C,gBAGpD35C,EAAAA,EAAAA,aAAA,gCAEUksB,GAGd,EAEAC,YAAW,WAEP,IAAO5xB,KAAK6F,UACR,OAAO,KAGX,IAAIuC,EAAQ,CACRgL,MAAOpT,KAAKoT,OAGZye,EAAY,CACZ7xB,KAAKN,KAAK,eAAVM,GACAA,KAAKN,KAAK,aAAVM,GACAA,KAAKN,KAAK,eAAVM,IAGJ,OAAAyF,EAAAA,EAAAA,aAAA,qCACwC2C,GAAK,CACnCpI,KAAKoB,OAAOyrB,IAAM7sB,KAAKoB,OAAOyrB,MAAQgF,GAGpD,EAEAC,eAAc,WAMV,OAAArsB,EAAAA,EAAAA,aAAA,4BAJgB,CACZ,uBAIoC,KAE5C,EAEA1B,OAAM,WAEKtI,OAAOo0B,SACVp0B,OAAOo0B,OAAS,KAGpB,IAAIpyB,EAAY,CACZ,WACA,aAAeuC,KAAKvD,KACpB,aAAeuD,KAAK6qB,UAGnB7qB,KAAKmsB,OACN1uB,EAAU8F,KAAK,YAAcvD,KAAKmsB,OAGjCnsB,KAAK6F,WACN7F,KAAKqxB,sBAGJrxB,KAAK4wB,aACNnzB,EAAU8F,KAAK,cAGZvD,KAAK6F,WACRpI,EAAU8F,KAAK,YAGnB,IAAIsuB,EAAY,KAMhB,OAJK7xB,KAAK6F,YACNgsB,EAAY7xB,KAAKN,KAAK,cAAVM,KAGhByF,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CACf,CAACo0B,EAAW7xB,KAAKN,KAAK,iBAAVM,KAG1B,GCnbJ,UAEIqF,KAAM,aAEN0P,OAAQ,CACJsqC,OAAQ,CACJxiD,aAAS0B,IAIjBxC,MAAO,CAEH0D,MAAO,oBAGC,OAAO,CACX,EACAvD,KAAM,CAACoJ,OAAQpI,SAGnBoiD,KAAM,oBAGE,OAAO3jD,EAAAA,OAAOC,MAAM,QACxB,EACAM,KAAM,CAACoJ,SAGXtH,MAAO,oBAGC,OAAOrC,EAAAA,OAAOC,MAAM,QACxB,EACAM,KAAM,CAACoJ,OAAQpI,SAGnBhB,KAAM,oBAGE,OAAO,IACX,EACAA,KAAM,CAACoJ,SAGXmsC,MAAO,oBAGC,OAAO,IACX,IAKR7rC,KAAI,WAEA,MAAO,CACHjE,KAAKC,EAAAA,EAAAA,QAEb,EAEAoU,YAAW,WAEFhW,KAAKq/C,QACNr/C,KAAKq/C,OAAOE,cAAcv/C,KAElC,EAEAgX,cAAa,WAEJhX,KAAKq/C,QACNr/C,KAAKq/C,OAAOhwC,cAAcrP,KAElC,EAEA8F,QAAS,CAEL05C,SAAQ,SAAC9uC,GACT,IADgB4oC,EAASz5C,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,eAExB,OAAOa,EAAAA,IAAIsF,QAAQhG,KAAK9D,MAIjBo9C,EAAY,WAAat5C,KAAKy/C,SAAS/uC,GAHnC4oC,EAAY,KAAOt5C,KAAK9D,IAIvC,EAEAujD,SAAQ,SAAC/uC,GAEL,GAAoB,SAAf1Q,KAAKyxC,MACN,OAAOzxC,KAAKyxC,MAGhB,IAAIA,EAAQzxC,KAAKq/C,OAAO5N,MAAQ/gC,EAE5BgvC,EAAYhwC,KAAK+N,MAAMg0B,EACvBzxC,KAAKq/C,OAAOM,YAEhB,OAAOlO,EAASzxC,KAAKq/C,OAAOM,WACxBD,CACR,GAIJ37C,OAAM,WAEF,OAAO,IACX,G,muBCzGJ,UAEIsB,KAAM,cAEN4P,QAAO,WAEH,MAAO,CACHoqC,OAAQr/C,KAEhB,EAEAjE,MAAO,CAEHqW,KAAM,oBAGE,OAAO,CACX,EACAlW,KAAM,CAACqJ,UAGX6N,MAAO,oBAGC,OAAO,CACX,EACAlX,KAAM,CAACgB,SAGXu0C,MAAO,oBAGC,OAAO,EACX,EACAv1C,KAAM,CAACgB,SAGXyiD,WAAY,oBAGJ,OAAO,EACX,EACAzjD,KAAM,CAACgB,SAGXc,MAAO,oBAGC,OAAOrC,EAAAA,OAAOC,MAAM,cACxB,EACAM,KAAM,CAACoJ,SAGXs6C,WAAY,oBAGJ,OAAOjkD,EAAAA,OAAOC,MAAM,cACxB,EACAM,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXu6C,QAAS,oBAGD,OAAO,CACX,EACA3jD,KAAM,CAACqJ,UAGXoyC,MAAO,oBAGC,OAAO,CACX,EACAz7C,KAAM,CAACgB,SAGX4iD,aAAc,oBAGN,OAAO,CACX,EACA5jD,KAAM,CAACqJ,WAKfiQ,SAAU,CAENgI,MAAK,WAED,IAAI0B,EAAQre,EAAAA,IAAIC,KAAKd,KAAK20B,SAAU,SAACzU,GACjC,OAAOiE,EAAAA,IAAG,MAAOjE,EAAKzgB,MAC1B,GAEA,OAAO0kB,EAAAA,IAAIgyB,QAAQj3B,EACvB,EAEAyc,MAAK,WAED,IAAIzc,EAAQre,EAAAA,IAAIC,KAAKd,KAAK20B,SAAU,SAACzU,GACjC,OAAOiE,EAAAA,IAAG,MAAOjE,EAAKzgB,MAC1B,GAEA,OAAO0kB,EAAAA,IAAIgyB,QAAQj3B,EACvB,GAIJtZ,KAAI,WAMA,MAAO,CACHonC,MALQ,CACR,GAAM,KAAM,GAAM,KAAM,EAAK,WAItBrY,SAAU,GAEzB,EAEA3e,YAAW,WAEPhW,KAAK+/C,IAAM//C,KAAKggD,IAAM,EAC1B,EAEAl6C,QAAS,CAELy5C,cAAa,SAAC56C,GAEV3E,KAAK0Q,OAAU,EAEf7P,EAAAA,IAAI+lB,IAAI5mB,KAAK20B,SAAUhwB,EAAS,CAC5BhD,IAAKgD,EAAQhD,KAErB,EAEA0N,cAAa,SAACirB,GAEVt6B,KAAK0Q,OAAU,EAEf7P,EAAAA,IAAIkB,OAAO/B,KAAK20B,SAAU,CACtBhzB,IAAK24B,EAAS34B,KAEtB,EAEAynB,aAAY,SAAClJ,GAETle,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAM/E,MAAMU,IAAI,CAC1B,kBAAmB,IAAFK,OAAMyd,EAAKliB,MAAK,KACjC,kBAAmBmmB,EAAAA,IAAG,IAAKjE,EAAKzgB,QAExC,EAEA4pB,aAAY,SAACnJ,GAETle,EAAAA,IAAIC,KAAKjC,KAAKyG,MAAM/E,MAAMU,IAAI,KAClC,GAIJ69C,aAAY,SAAC//B,EAAMxP,GACnB,IAAA/Q,EAAA,KACQugD,EAAQlgD,KAAK+/C,IAAIjgD,QAAwB,EAAbE,KAAKoT,OAE9B1S,EAAAA,IAAIsF,QAAQhG,KAAKggD,OACpBE,GAAQlgD,KAAK+/C,IAAIjgD,OAAS,IAAmB,EAAbE,KAAKoT,QAGzC,IAAK+sC,GACC,IAAMD,GAAQ/7B,EAAAA,IAAG,MAAOjE,EAAKzgB,OAASO,KAAKwd,MAAuB,EAAbxd,KAAKoT,MAI5DkI,GAAwB,EAAdtb,KAAKykB,KAEbzkB,KAAK6/C,UACPvkC,EAAS5L,KAAK1S,IAAIse,EAAuB,GAAbtb,KAAKoT,MAAc,IAGnD,IAAIgtC,EAASD,EAEPngD,KAAK6/C,UACPO,EAAS1wC,KAAKzS,IAAImjD,EAAuB,IAAbpgD,KAAKoT,MAAc,IAGnD,IAAIitC,EAAa,CACb,eAAgBngC,EAAKs/B,SAAS9uC,IAO9B4vC,EAAa,CACb,oBAAqBn8B,EAAAA,IAAIwX,MAAMrgB,EAAQ,GACvC,mBAAoB6I,EAAAA,IAAIwX,MAAMykB,EAAQ,GAAK,QAG3CG,EAAaD,EAYjB,OAVAC,EAAyB,aAAI,WACzB5gD,EAAKypB,aAAalJ,EACtB,EAEAqgC,EAAyB,aAAI,WACzB5gD,EAAK0pB,aAAanJ,EACtB,EAEAlgB,KAAKykB,KAAO07B,EAAWngD,KAAKykB,MAE5Bhf,EAAAA,EAAAA,aAAA,8BAAAA,EAAAA,EAAAA,aAAA,UAAA6K,EAAAA,EAAAA,YAAA,OArBiB,CACb,kBAsBmCiwC,EAAgBvgD,KAAKgtC,OAAK,OAAAvnC,EAAAA,EAAAA,aAAA,UAAA6K,EAAAA,EAAAA,YAAA,OAC1C+vC,GAAgBC,EAAgBtgD,KAAKgtC,OAAK,OAGrE,EAEAwT,kBAAiB,SAACC,EAAQtuC,GAEtB,GAAKzR,EAAAA,IAAIsF,QAAQy6C,GACb,OAAO,KAGX,IAAIvhC,EAAQre,EAAAA,IAAIC,KAAK2/C,EAAQ,SAACvgC,GAC1B,OAAOiE,EAAAA,IAAG,MAAOjE,EAAKzgB,MAC1B,GAEIygB,EAAO,CACPliB,MAAOgC,KAAK4/C,WAAYngD,MAAO0kB,EAAAA,IAAIgyB,QAAQj3B,GAG/CgB,SAAmB,WACf,MAAO,qBACX,GAEA,OAAOlgB,KAAKN,KAAK,eAAVM,CAA0BkgB,EAAM/N,EAAMrS,OAAQqS,EACzD,EAEAuuC,UAAS,WACT,IAAAr9C,EAAA,KACIrD,KAAKykB,KAAO,EAEZ,IAAAlV,EAAyB,CACrB1O,EAAAA,IAAI4L,MAAMzM,KAAK20B,UAAW9zB,EAAAA,IAAIuR,KAAKpS,KAAK20B,SAAU,SAASgsB,WAD1DhsB,EAAQplB,EAAA,GAAEuhC,EAAMvhC,EAAA,GAIhBvP,KAAKoS,OACNuiB,EAAW9zB,EAAAA,IAAI4L,MAAMqkC,IAGzB,IAAI8P,EAAO//C,EAAAA,IAAImjB,OAAO8sB,EAAQ,EAAG9wC,KAAK23C,OAAShjB,EAAS70B,QAEpD4lB,EAAU7kB,EAAAA,IAAI8iB,OAAOgR,EAAU,SAACtyB,GAChC,QAAUxB,EAAAA,IAAIoB,KAAK2+C,EAAM,CAAEj/C,IAAKU,EAAGV,KACvC,GAEIk/C,EAAShgD,EAAAA,IAAI8iB,OAAOgR,EAAU,SAACtyB,GAC/B,OAASxB,EAAAA,IAAIoB,KAAK2+C,EAAM,CAAEj/C,IAAKU,EAAGV,KACtC,GAAGkO,EAEoB,CACnB6V,EAASm7B,GADZ7gD,KAAK+/C,IAAGlwC,EAAA,GAAE7P,KAAKggD,IAAGnwC,EAAA,GAInB,IAAIsC,EAAQtR,EAAAA,IAAIC,KAAK4kB,EAAS,SAACxF,EAAMxP,GACjC,OAAOrN,EAAK3D,KAAK,eAAV2D,CAA0B6c,EAAMxP,EAC3C,GAEIowC,GAAQr7C,EAAAA,EAAAA,aAAA,UAAA6K,EAAAA,EAAAA,YAAA,8BACgCtQ,KAAKgtC,OAAK,MAGlD+T,EAAa/gD,KAAKN,KAAK,qBAAoBa,WAAA,EAAI,CAC/CsgD,EAAQn7B,IAGZ,OAAAjgB,EAAAA,EAAAA,aAAA,yDAEUq7C,GAAQr+C,OAAAge,GAAKtO,GAAK,CAAE4uC,KAGlC,EAEAn9C,WAAU,WAEN,OAAA6B,EAAAA,EAAAA,aAAA,iDAAAA,EAAAA,EAAAA,aAAA,mBAAAA,EAAAA,EAAAA,aAAA,mBAKJ,EAEAu7C,YAAW,WAEP,OAAAv7C,EAAAA,EAAAA,aAAA,sCAES,CAACzF,KAAKN,KAAK,YAAVM,GAA0BA,KAAKN,KAAK,aAAVM,KAGxC,EAEAihD,kBAAiB,SAACJ,EAAQn7B,GAEtB,GAAKhlB,EAAAA,IAAIsF,QAAQ66C,GACb,OAAO,KAGX,IAAI3hC,EAAQre,EAAAA,IAAIC,KAAK+/C,EAAQ,SAAC3gC,GAC1B,OAAOiE,EAAAA,IAAG,MAAOjE,EAAKzgB,MAC1B,GAEIygB,EAAO,CACPliB,MAAOgC,KAAK4/C,WAAYngD,MAAO0kB,EAAAA,IAAIgyB,QAAQj3B,GAG/CgB,SAAmB,WACf,MAAO,uBACX,GAEA,OAAOlgB,KAAKN,KAAK,mBAAVM,CAA8BkgB,EAAMwF,EAAQ5lB,OACvD,EAEAohD,iBAAgB,SAAChhC,EAAMxP,GAEnB,IAAIjT,EAAY,CACZ,iBACAyiB,EAAKs/B,SAAS9uC,EAAO,mBAGzB,OAAAjL,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,EAAAgI,EAAAA,EAAAA,aAAA,aACVya,EAAKliB,SAAKyH,EAAAA,EAAAA,aAAA,aACVya,EAAKzgB,SAGxB,EAEAqgD,aAAY,WACZ,IAAAx1C,EAAA,KACI,IAAOtK,KAAK8/C,aACR,OAAO,KAGX,IAAI3tC,EAAQtR,EAAAA,IAAIC,KAAKd,KAAK+/C,IAAK,SAAC7/B,EAAMxP,GAClC,OAAOpG,EAAK5K,KAAK,mBAAV4K,CAA8B4V,EAAMxP,EAC/C,GAEIqwC,EAAa/gD,KAAKN,KAAK,qBAAoBa,WAAA,EAAI,CAC/CP,KAAKggD,IAAKhgD,KAAK+/C,MAGnB,OAAAt6C,EAAAA,EAAAA,aAAA,0CAAAhD,OAAAge,GAEatO,GAAK,CAAE4uC,KAGxB,EAEAh9C,OAAM,WAEF,IAAItG,EAAY,CACZ,gBACA,kBAAoBuC,KAAKvD,MAGxBuD,KAAK6/C,SACNpiD,EAAU8F,KAAK,0BAGnB,IAAI6E,EAAQ,CACR,kBAAmB,IAAF3F,OAAMzC,KAAKhC,MAAK,KACjC,kBAAmBmmB,EAAAA,IAAG,IAAKnkB,KAAKwd,OAChC,mBAAoB2G,EAAAA,IAAG,IAAKnkB,KAAKoT,OACjC,yBAA0B+Q,EAAAA,IAAG,IAAkB,IAAbnkB,KAAKoT,QAGvCue,EAAW,CACX3xB,KAAKN,KAAK,cAAVM,GACAA,KAAKN,KAAK,eAAVM,IAOJ,OAJKA,KAAKoB,OAAM,SACZuwB,EAASpuB,KAAKvD,KAAKoB,OAAM,YAG7BqE,EAAAA,EAAAA,aAAA,aACgBhI,EAAS,MAAS2K,GAAK,CAC9BupB,GAGb,G,muBC/YJ,UAEItsB,KAAM,YAEN4P,QAAO,WAEH,MAAO,CACHoqC,OAAQr/C,KAEhB,EAEAjE,MAAO,CAEHqW,KAAM,oBAGE,OAAO,CACX,EACAlW,KAAM,CAACqJ,UAGXksC,MAAO,oBAGC,OAAO,EACX,EACAv1C,KAAM,CAACgB,SAGXyiD,WAAY,oBAGJ,OAAO,EACX,EACAzjD,KAAM,CAACgB,SAGXc,MAAO,oBAGC,OAAOrC,EAAAA,OAAOC,MAAM,QACxB,EACAM,KAAM,CAACoJ,SAGXs6C,WAAY,oBAGJ,OAAOjkD,EAAAA,OAAOC,MAAM,QACxB,EACAM,KAAM,CAACoJ,SAGX7I,KAAM,oBAGE,MAAO,IACX,EACAP,KAAM,CAACoJ,SAGXqyC,MAAO,oBAGC,OAAO,CACX,EACAz7C,KAAM,CAACgB,SAGXikD,UAAW,oBAGH,OAAO,CACX,EACAjlD,KAAM,CAACgB,SAGX4iD,aAAc,oBAGN,OAAO,CACX,EACA5jD,KAAM,CAACqJ,WAKfiQ,SAAU,CAENgI,MAAK,WAED,IAAI0B,EAAQre,EAAAA,IAAIC,KAAKd,KAAK20B,SAAU,SAACzU,GACjC,OAAOiE,EAAAA,IAAG,MAAOjE,EAAKzgB,MAC1B,GAEA,OAAO0kB,EAAAA,IAAIgyB,QAAQj3B,EACvB,EAEAliB,IAAG,WAEC,IAAIA,EAAME,OAAOC,UAMjB,OAJA0D,EAAAA,IAAIC,KAAKd,KAAK20B,SAAU,SAACzU,GACrBljB,EAAM0S,KAAK1S,IAAIA,EAAKmnB,EAAAA,IAAG,MAAOjE,EAAKzgB,OACvC,GAEO0kB,EAAAA,IAAG,MAAOnnB,EACrB,EAEAC,IAAG,WAEC,IAAIA,EAAMC,OAAOsS,UAMjB,OAJA3O,EAAAA,IAAIC,KAAKd,KAAK20B,SAAU,SAACzU,GACrBjjB,EAAMyS,KAAKzS,IAAIA,EAAKknB,EAAAA,IAAG,MAAOjE,EAAKzgB,OACvC,GAEO0kB,EAAAA,IAAG,MAAOlnB,EACrB,GAIJ2I,KAAI,WAEA,MAAO,CACH+uB,SAAU,GAElB,EAEA7uB,QAAS,CAELy5C,cAAa,SAAC56C,GAEV3E,KAAK0Q,OAAS,EAEd7P,EAAAA,IAAI+lB,IAAI5mB,KAAK20B,SAAUhwB,EAAS,CAC5BhD,IAAKgD,EAAQhD,KAErB,EAEA0N,cAAa,SAACirB,GAEVt6B,KAAK0Q,OAAS,EAEd7P,EAAAA,IAAIkB,OAAO/B,KAAK20B,SAAU,CACtBhzB,IAAK24B,EAAS34B,KAEtB,GAIJy/C,cAAa,SAAClhC,EAAMxP,GAEhB,IAAIjT,EAAY,CACZ,eAAgByiB,EAAKs/B,SAAS9uC,IAG9B2C,GAAW,IAAMrT,KAAKmhD,WAAanhD,KAAK/C,IAAMijB,EAAKzgB,MAASO,KAAKmhD,UAEjE/4C,EAAQ,CACR,mBAAoB+b,EAAAA,IAAG,IAAK9Q,GAAU,KAGtC8L,EAAO,GAqBX,OAnBAA,EAAK5b,MAAIkC,EAAAA,EAAAA,aAAC,MAAD,kCAMT0Z,EAAK5b,MAAIkC,EAAAA,EAAAA,aAAC,MAAD,kCAMT0Z,EAAK5b,MAAIkC,EAAAA,EAAAA,aAAC,MAAD,+BAAAA,EAAAA,EAAAA,aAAC,OAAD,MAEMya,EAAKo/B,QAAI75C,EAAAA,EAAAA,aAAA,aACTya,EAAKzgB,YAIpBgG,EAAAA,EAAAA,aAAA,aACgBhI,EAAS,MAAS2K,GAAK,CAC9B+W,GAGb,EAEAkiC,eAAc,SAACR,EAAQn7B,GAEnB,GAAKhlB,EAAAA,IAAIsF,QAAQ66C,GACb,OAAO,KAGX,IAAI3hC,EAAQre,EAAAA,IAAIC,KAAK+/C,EAAQ,SAAC3gC,GAC1B,OAAOiE,EAAAA,IAAG,MAAOjE,EAAKzgB,MAC1B,GAEIygB,EAAO,CACPo/B,KAAMt/C,KAAK4/C,WAAYngD,MAAO0kB,EAAAA,IAAIgyB,QAAQj3B,GAG9CgB,SAAmB,WACf,MAAO,qBACX,GAEA,OAAOlgB,KAAKN,KAAK,gBAAVM,CAA2BkgB,EAAMwF,EAAQ5lB,OACpD,EAEAwhD,WAAU,WACV,IAAA3hD,EAAA,KACI4P,EAAyB,CACrB1O,EAAAA,IAAI4L,MAAMzM,KAAK20B,UAAW9zB,EAAAA,IAAIuR,KAAKpS,KAAK20B,SAAU,SAASgsB,WAD1DhsB,EAAQplB,EAAA,GAAEuhC,EAAMvhC,EAAA,GAIhBvP,KAAKoS,OACNuiB,EAAW9zB,EAAAA,IAAI4L,MAAMqkC,IAGzB,IAAI8P,EAAO//C,EAAAA,IAAImjB,OAAO8sB,EAAQ,EAAG9wC,KAAK23C,OAAShjB,EAAS70B,QAEpD4lB,EAAU7kB,EAAAA,IAAI8iB,OAAOgR,EAAU,SAACtyB,GAChC,QAAUxB,EAAAA,IAAIoB,KAAK2+C,EAAM,CAAEj/C,IAAKU,EAAGV,KACvC,GAIGkO,EAEoB,CACnB6V,EALS7kB,EAAAA,IAAI8iB,OAAOgR,EAAU,SAACtyB,GAC/B,OAASxB,EAAAA,IAAIoB,KAAK2+C,EAAM,CAAEj/C,IAAKU,EAAGV,KACtC,IAEC3B,KAAK+/C,IAAGlwC,EAAA,GAAE7P,KAAKggD,IAAGnwC,EAAA,GAInB,IAAIsC,EAAQtR,EAAAA,IAAIC,KAAK4kB,EAAS,SAACxF,EAAMxP,GACjC,OAAO/Q,EAAKD,KAAK,gBAAVC,CAA2BugB,EAAMxP,EAC5C,GAEIqwC,EAAa/gD,KAAKN,KAAK,kBAAiBa,WAAA,EAAI,CAC5CP,KAAKggD,IAAKhgD,KAAK+/C,MAGnB,OAAAt6C,EAAAA,EAAAA,aAAA,sCAAAhD,OAAAge,GAEatO,GAAK,CAAE4uC,KAGxB,EAEAQ,WAAU,WAEN,OAAA97C,EAAAA,EAAAA,aAAA,oCAAAA,EAAAA,EAAAA,aAAA,aAEezF,KAAK/C,OAAGwI,EAAAA,EAAAA,aAAA,aACRzF,KAAKhD,OAGxB,EAEAikD,kBAAiB,SAACJ,EAAQn7B,GAEtB,GAAKhlB,EAAAA,IAAIsF,QAAQ66C,GACb,OAAO,KAGX,IAAI3hC,EAAQre,EAAAA,IAAIC,KAAK+/C,EAAQ,SAAC3gC,GAC1B,OAAOiE,EAAAA,IAAG,MAAOjE,EAAKzgB,MAC1B,GAEIygB,EAAO,CACPo/B,KAAMt/C,KAAK4/C,WAAYngD,MAAO0kB,EAAAA,IAAIgyB,QAAQj3B,GAG9CgB,SAAmB,WACf,MAAO,uBACX,GAEA,OAAOlgB,KAAKN,KAAK,mBAAVM,CAA8BkgB,EAAMwF,EAAQ5lB,OACvD,EAEAohD,iBAAgB,SAAChhC,EAAMxP,GAEnB,IAAIjT,EAAY,CACZ,iBACAyiB,EAAKs/B,SAAS9uC,EAAO,mBAGzB,OAAAjL,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,EAAAgI,EAAAA,EAAAA,aAAA,aACVya,EAAKo/B,QAAI75C,EAAAA,EAAAA,aAAA,aACTya,EAAKzgB,SAGxB,EAEAqgD,aAAY,WACZ,IAAAz8C,EAAA,KACI,IAAOrD,KAAK8/C,aACR,OAAO,KAGX,IAAI3tC,EAAQtR,EAAAA,IAAIC,KAAKd,KAAK+/C,IAAK,SAAC7/B,EAAMxP,GAClC,OAAOrN,EAAK3D,KAAK,mBAAV2D,CAA8B6c,EAAMxP,EAC/C,GAEIqwC,EAAa/gD,KAAKN,KAAK,qBAAoBa,WAAA,EAAI,CAC/CP,KAAKggD,IAAKhgD,KAAK+/C,MAGnB,OAAAt6C,EAAAA,EAAAA,aAAA,wCAAAhD,OAAAge,GAEatO,GAAK,CAAE4uC,KAGxB,EAEAh9C,OAAM,WAEF,IAAItG,EAAY,CACZ,cACA,gBAAkBuC,KAAKvD,MAGvBk1B,EAAW,CACX3xB,KAAKN,KAAK,aAAVM,GACAA,KAAKN,KAAK,eAAVM,IAOJ,OAJKA,KAAKoB,OAAM,SACZuwB,EAASpuB,KAAKvD,KAAKoB,OAAM,YAG7BqE,EAAAA,EAAAA,aAAA,aACgBhI,GAAS,CAChBk0B,GAGb,GCtSJ,IAAM6vB,GAAc,CC7CL,SAAUC,GAErBhmD,OAAO6G,WAAao/C,GAAG3hD,IAAIiB,OAAOvF,OAAOwJ,KAAK6kB,MAC1CruB,OAAO6G,YAAc,CAAC,GAE1B,IAAIq/C,EAAa,CACbpgD,GAGJmgD,GAAG7gD,IAAIC,KAAK6gD,EAAY,SAACC,GACrBH,EAAI/7C,OAAOm8C,iBAAiBD,EAAKv9C,OAAS5I,OAAOmmD,EAAKv9C,OAASu9C,CACnE,EAEJ,ECZe,SAAUH,GAErB,IAAMr9C,EAAmB,CACrB09C,QAASrmD,OAAOwJ,KAAK6kB,MAAMi4B,KAC3BC,UAAWvmD,OAAOwJ,KAAK6kB,MAAMi4B,KAC7BE,QAASxmD,OAAOwJ,KAAK6kB,MAAMm4B,QAC3BC,QAASzmD,OAAOwJ,KAAK6kB,MAAMo4B,QAC3BC,OAAQ1mD,OAAOwJ,KAAK6kB,MAAMq4B,OAC1BJ,KAAMtmD,OAAOwJ,KAAK6kB,MAAMi4B,MAG5BtmD,OAAO2I,iBAAmBs9C,GAAG3hD,IAAIiB,OAAOoD,EACpC3I,OAAO2I,kBAAoB,CAAC,GAEhC,IAAIu9C,EAAa,CACb39C,EAAqBO,GAGzBm9C,GAAG7gD,IAAIC,KAAK6gD,EAAY,SAACC,GACrBH,EAAI/7C,OAAOm8C,iBAAiBD,EAAKv9C,OAAS5I,OAAOmmD,EAAKv9C,OAASu9C,CACnE,EACJ,ECtBe,SAAUH,GACrBA,EAAI75C,UAAUw6C,EAAU/8C,KAAM+8C,EAClC,ECEe,SAASX,GACpBA,EAAI75C,UAAUy6C,EAAQh9C,KAAMg9C,GAC5BZ,EAAI75C,UAAU06C,EAAYj9C,KAAMi9C,GAChCb,EAAI75C,UAAU26C,EAASl9C,KAAMk9C,GAC7Bd,EAAI75C,UAAU46C,EAAen9C,KAAMm9C,GACnCf,EAAI75C,UAAU66C,EAAgBp9C,KAAMo9C,EACxC,ECVe,SAAUhB,GACrBA,EAAI75C,UAAU86C,EAAUr9C,KAAMq9C,EAClC,ECFe,SAAUjB,GACrBA,EAAI75C,UAAU+6C,EAAgBt9C,KAAMs9C,EACxC,ECEe,SAAUlB,GACrBA,EAAI75C,UAAUg7C,GAASv9C,KAAMu9C,IAC7BnB,EAAI75C,UAAUi7C,GAAax9C,KAAMw9C,IACjCpB,EAAI75C,UAAUk7C,GAASz9C,KAAMy9C,IAC7BrB,EAAI75C,UAAUm7C,GAAa19C,KAAM09C,IACjCtB,EAAI75C,UAAUo7C,GAAS39C,KAAM29C,GACjC,ECVe,SAAUvB,GACrBA,EAAI75C,UAAUq7C,GAAO59C,KAAM49C,GAC/B,ECDe,SAAUxB,GAErBA,EAAI75C,UAAUs7C,GAAY79C,KAAM69C,GACpC,ECEe,SAAUzB,GAErB,IAAIE,EAAa,CACb1zB,GAAgBN,GAAgBH,IAGpCk0B,GAAG7gD,IAAIC,KAAK6gD,EAAY,SAACC,GACrBH,EAAI/7C,OAAOm8C,iBAAiBD,EAAKv9C,OAAS5I,OAAOmmD,EAAKv9C,OAASu9C,CACnE,GAEA,IAAIuB,EAAa,CACbz2B,GAAS02B,GAAcC,IAG3B3B,GAAG7gD,IAAIC,KAAKqiD,EAAY,SAACG,GACrB7B,EAAI75C,UAAU07C,EAAKj+C,KAAMi+C,EAC7B,EACJ,ECvBe,SAAU7B,GACrBA,EAAI75C,UAAU27C,GAAMl+C,KAAMk+C,GAC9B,ECDe,SAAU9B,GACrBA,EAAI75C,UAAU47C,GAAOn+C,KAAMm+C,IAC3B/B,EAAI75C,UAAU67C,GAAYp+C,KAAMo+C,GACpC,ECJe,SAAUhC,GACrBA,EAAI75C,UAAU87C,GAAMr+C,KAAMq+C,GAC9B,ECFe,SAAUjC,GACrBA,EAAI75C,UAAU+7C,GAAYt+C,KAAMs+C,GACpC,ECFe,SAAUlC,GACrBA,EAAI75C,UAAUg8C,GAASv+C,KAAMu+C,GACjC,ECDe,SAAUnC,GACrBA,EAAI75C,UAAUi8C,GAAOx+C,KAAMw+C,IAC3BpC,EAAI75C,UAAUk8C,GAAaz+C,KAAMy+C,GACrC,ECHe,SAAUrC,GACrBA,EAAI75C,UAAUm8C,GAAS1+C,KAAM0+C,IAC7BtC,EAAI75C,UAAUo8C,GAAc3+C,KAAM2+C,GACtC,ECHe,SAAUvC,GACrBA,EAAI75C,UAAUq8C,GAAO5+C,KAAM4+C,IAC3BxC,EAAI75C,UAAU+yB,GAAYt1B,KAAMs1B,GACpC,ECJe,SAAU8mB,GACrBA,EAAI75C,UAAUs8C,GAAO7+C,KAAM6+C,GAC/B,ECFe,SAAUzC,GACrBA,EAAI75C,UAAUu8C,GAAO9+C,KAAM8+C,GAC/B,ECDe,SAAU1C,GAErB,IAAI5jB,EAAe,CACfikB,QAASrmD,OAAOwJ,KAAK6kB,MAAMi4B,KAC3BC,UAAWvmD,OAAOwJ,KAAK6kB,MAAMi4B,KAC7BE,QAASxmD,OAAOwJ,KAAK6kB,MAAMm4B,QAC3BC,QAASzmD,OAAOwJ,KAAK6kB,MAAMo4B,QAC3BC,OAAQ1mD,OAAOwJ,KAAK6kB,MAAMq4B,OAC1BJ,KAAMtmD,OAAOwJ,KAAK6kB,MAAMi4B,MAG5BtmD,OAAOoiC,aAAe6jB,GAAG3hD,IAAIiB,OAAO68B,EAChCpiC,OAAOoiC,cAAgB,CAAC,GAE5B,IAAI8jB,EAAa,CACblkB,IAGJikB,GAAG7gD,IAAIC,KAAK6gD,EAAY,SAACC,GACrBH,EAAI/7C,OAAOm8C,iBAAiBD,EAAKv9C,OAAS5I,OAAOmmD,EAAKv9C,OAASu9C,CACnE,GAEAH,EAAI75C,UAAU01B,GAAQj4B,KAAMi4B,GAChC,ECvBe,SAAUmkB,GACrBA,EAAI75C,UAAUw8C,GAAc/+C,KAAM++C,IAClC3C,EAAI75C,UAAUy8C,GAASh/C,KAAMg/C,GACjC,ECHe,SAAU5C,GACrBA,EAAI75C,UAAU08C,GAAgBj/C,KAAMi/C,IACpC7C,EAAI75C,UAAU28C,GAAWl/C,KAAMk/C,GACnC,ECHe,SAAU9C,GACrBA,EAAI75C,UAAU48C,GAAgBn/C,KAAMm/C,IACpC/C,EAAI75C,UAAU68C,GAAWp/C,KAAMo/C,GACnC,ECJe,SAAUhD,GACrBA,EAAI75C,UAAU88C,GAAer/C,KAAMq/C,GACvC,ECFe,SAAUjD,GACrBA,EAAI75C,UAAU+8C,GAAet/C,KAAMs/C,GACvC,ECFe,SAAUlD,GACrBA,EAAI75C,UAAUg9C,GAASv/C,KAAMu/C,GACjC,ECEe,SAAUnD,GACrBA,EAAI75C,UAAUi9C,GAAKx/C,KAAMw/C,IACzBpD,EAAI75C,UAAUk9C,GAAQz/C,KAAMy/C,IAC5BrD,EAAI75C,UAAUm9C,GAAU1/C,KAAM0/C,IAC9BtD,EAAI75C,UAAUo9C,GAAS3/C,KAAM2/C,IAC7BvD,EAAI75C,UAAUq9C,GAAU5/C,KAAM4/C,GAClC,ECTe,SAAUxD,GACrBA,EAAI75C,UAAUs9C,GAAK7/C,KAAM6/C,IACzBzD,EAAI75C,UAAUu9C,GAAS9/C,KAAM8/C,GACjC,ECHe,SAAU1D,GACrBA,EAAI75C,UAAUw9C,GAAK//C,KAAM+/C,IACzB3D,EAAI75C,UAAUy9C,GAAShgD,KAAMggD,GACjC,ECHe,SAAU5D,GACrBA,EAAI75C,UAAU09C,GAASjgD,KAAMigD,IAC7B7D,EAAI75C,UAAU29C,GAAalgD,KAAMkgD,GACrC,ECSe,SAAU9D,GACrBA,EAAI75C,UAAU49C,GAAMngD,KAAMmgD,IAC1B/D,EAAI75C,UAAU69C,GAAYpgD,KAAMogD,IAChChE,EAAI75C,UAAU89C,GAAgBrgD,KAAMqgD,IACpCjE,EAAI75C,UAAU+9C,GAAiBtgD,KAAMsgD,IACrClE,EAAI75C,UAAUg+C,GAAkBvgD,KAAMugD,IACtCnE,EAAI75C,UAAUi+C,GAAgBxgD,KAAMwgD,IACpCpE,EAAI75C,UAAUk+C,GAAezgD,KAAMygD,IACnCrE,EAAI75C,UAAUm+C,GAAgB1gD,KAAM0gD,IACpCtE,EAAI75C,UAAUo+C,GAAgB3gD,KAAM2gD,IACpCvE,EAAI75C,UAAUq+C,GAAkB5gD,KAAM4gD,IACtCxE,EAAI75C,UAAUs+C,GAAmB7gD,KAAM6gD,IACvCzE,EAAI75C,UAAUu+C,GAAoB9gD,KAAM8gD,IACxC1E,EAAI75C,UAAUw+C,GAAkB/gD,KAAM+gD,GAC1C,EC3Be,SAAU3E,GACrBA,EAAI75C,UAAUy+C,GAAUhhD,KAAMghD,GAClC,ECIe,SAAU5E,GACrBA,EAAI75C,UAAU0+C,GAAKjhD,KAAMihD,IACzB7E,EAAI75C,UAAU2+C,GAAWlhD,KAAMkhD,IAC/B9E,EAAI75C,UAAU4+C,GAAgBnhD,KAAMmhD,IACpC/E,EAAI75C,UAAU6+C,GAAiBphD,KAAMohD,IACrChF,EAAI75C,UAAU8+C,GAAkBrhD,KAAMqhD,IACtCjF,EAAI75C,UAAU++C,GAAgBthD,KAAMshD,IACpClF,EAAI75C,UAAUg/C,GAAevhD,KAAMuhD,GACvC,E3Cce,SAAUnF,GAEdhmD,OAAOghD,eACVhhD,OAAOghD,aAAeiF,GAAG3hD,IAAIiB,OAAOvF,OAAOmhD,oBAAqBnhD,OAAOghD,eAG3E,IAAIkF,EAAa,CACbhH,GAAe2B,IAGnBoF,GAAG7gD,IAAIC,KAAK6gD,EAAY,SAACC,GACrBH,EAAI/7C,OAAOm8C,iBAAiBD,EAAKv9C,OAASu9C,CAC9C,GAEA,IAAIuB,EAAa,CACb0D,GAASC,GAAcC,GAAcC,GAAcC,IAGvDvF,GAAG7gD,IAAIC,KAAKqiD,EAAY,SAACG,GACrB7B,EAAI75C,UAAU07C,EAAKj+C,KAAMi+C,EAC7B,EAEJ,E4CjDe,SAAU7B,GACrBA,EAAI75C,UAAU41C,GAAIn4C,KAAMm4C,IACxBiE,EAAI75C,UAAUs/C,GAAU7hD,KAAM6hD,GAClC,ECJe,SAAUzF,GACrBA,EAAI75C,UAAUu/C,GAAK9hD,KAAM8hD,GAC7B,ECFe,SAAU1F,GACrBA,EAAI75C,UAAUw/C,GAAO/hD,KAAM+hD,GAC/B,ECFe,SAAU3F,GACrBA,EAAI75C,UAAU27C,GAAMl+C,KAAMk+C,GAC9B,ECAe,SAAU9B,GACrBA,EAAI75C,UAAUy/C,GAAUhiD,KAAMgiD,IAC9B5F,EAAI75C,UAAU0/C,GAAWjiD,KAAMiiD,IAC/B7F,EAAI75C,UAAU2/C,GAASliD,KAAMkiD,GACjC,GvCkFaz9B,GAAQ,CACjBnH,OAAQ,mBACRqH,QAAS,cACTw9B,OAAQ,eACR/uB,aAAc,cACdgvB,MAAO,cACPC,SAAU,iBACVl2B,MAAO,cACPswB,QAAS,oBACTE,UAAW,oBACXC,QAAS,qBACTC,QAAS,2BACTC,OAAQ,qBACRJ,KAAM,oBACN4F,QAAS,iBACT59B,WAAY,oBACZ8M,UAAW,mBACXqK,UAAW,mBACX8X,gBAAiB,0BACjBE,iBAAkB,4BAGTh0C,GAAW,CACpBrH,aAAc,SACdsH,WAAY,KACZC,eAAgB,gBAGb,SAASwiD,GAAQnG,GACxB,IAD6B33B,EAAKjqB,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGqF,EAAQrF,UAAAC,OAAA,QAAAvB,IAAAsB,UAAA,GAAAA,UAAA,GAAG,CAAC,EAMjD,QAA0B,IAAdpE,OAAOimD,GACf,OAAOn3C,QAAQC,MAAM,6BAGzBzK,EAAAA,IAAIe,KAAKrF,OAAOimD,GAAI,SAACjiD,EAAOd,GACxB8iD,EAAI/7C,OAAOm8C,iBAAiBljD,GAAOc,CACvC,GAEAgiD,EAAI/7C,OAAOm8C,iBAAiBniD,KAAOmoD,EAAUnoD,KAC7C+hD,EAAI/7C,OAAOm8C,iBAAiBrhD,KAAOsnD,EAAUtnD,KAC7CihD,EAAI/7C,OAAOm8C,iBAAiB3gD,KAAO6mD,EAAU7mD,KAE7CugD,EAAI/7C,OAAOm8C,iBAAiBjmD,MAAQD,EAAAA,OAAOC,MAC3C6lD,EAAI/7C,OAAOm8C,iBAAiBziC,OAASzjB,EAAAA,OAAOyjB,OAE5C3jB,OAAOwJ,KAAK6kB,MAAQ/pB,EAAAA,IAAIiB,OAAOvF,OAAOwJ,KAAK6kB,MAAOA,GAClDruB,OAAOwJ,KAAKC,SAAWnF,EAAAA,IAAIiB,OAAOvF,OAAOwJ,KAAKC,SAAUA,GAExDrE,EAAAA,IAAIC,KAAK0gD,GAAa,SAACwG,GACnBA,EAAWvG,EACf,EAIJ,CAEO,IAAMwG,GAAO,CAChBn+B,MAAOA,GAAO5kB,SAAUA,GAAU0iD,QAASA,IAG/CnsD,OAAO+jB,QAAU,GAEjBxd,EAAAA,IAAIC,KAAKC,UAAUS,GAAG,UAAW,SAACkY,GAC9Bha,EAAAA,IAAI+lB,IAAInrB,OAAO+jB,QAAS3E,EAAMI,MAClC,GAEAjZ,EAAAA,IAAIC,KAAKC,UAAUS,GAAG,QAAS,SAACkY,GAC5Bha,EAAAA,IAAIkB,OAAOtG,OAAO+jB,QAAS3E,EAAMI,MACrC,GAEAjZ,EAAAA,IAAIC,KAAKC,UAAUS,GAAG,YAAa,SAACkY,GAChCha,EAAAA,IAAI+lB,IAAInrB,OAAO+jB,QAAS3E,EAAMI,MAClC,GAEAjZ,EAAAA,IAAIC,KAAKC,UAAUS,GAAG,UAAW,SAACkY,GAC9Bpf,OAAO+jB,QAAU,EACrB,QAE4B,IAAhB/jB,OAAOwJ,OACfxJ,OAAOwJ,KAAOgjD,IAGlB,Y","sources":["webpack://Nano/webpack/universalModuleDefinition","webpack://Nano/./src/config/src/builder/prototypes/durationpicker/n-durationpicker.js","webpack://Nano/./src/config/src/builder/prototypes/switch/n-switch.js","webpack://Nano/external umd {\"root\":\"pi\",\"commonjs2\":\"@kizmann/pico-js\",\"commonjs\":\"@kizmann/pico-js\",\"amd\":\"@kizmann/pico-js\"}","webpack://Nano/./src/config/src/builder/prototypes/rating/n-rating.js","webpack://Nano/./src/config/src/builder/prototypes/input-number/n-input-number.js","webpack://Nano/external umd {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}","webpack://Nano/./src/config/src/builder/prototypes/html/span.js","webpack://Nano/./src/config/src/builder/prototypes/html/div.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-group.js","webpack://Nano/./src/config/src/builder/prototypes/slider/n-slider.js","webpack://Nano/./src/config/src/builder/prototypes/datepicker/n-datepicker.js","webpack://Nano/./src/config/src/builder/prototypes/button/n-button-group.js","webpack://Nano/./src/config/src/builder/prototypes/datetimepicker/n-datetimepicker.js","webpack://Nano/./src/config/src/builder/prototypes/select/n-select.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table-column.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio-group.js","webpack://Nano/./src/config/src/builder/prototypes/input/n-input.js","webpack://Nano/./src/config/src/builder/prototypes/table/n-table.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags.js","webpack://Nano/./src/config/src/builder/prototypes/form/n-form-item.js","webpack://Nano/./src/config/src/builder/prototypes/html/nano.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox.js","webpack://Nano/./src/config/src/builder/prototypes/tabs/n-tabs-item.js","webpack://Nano/./src/config/src/builder/prototypes/empty/n-empty.js","webpack://Nano/./src/config/src/builder/prototypes/tags/n-tags-item.js","webpack://Nano/./src/config/src/builder/prototypes/checkbox/n-checkbox-group.js","webpack://Nano/./src/config/src/builder/prototypes/cascader/n-cascader.js","webpack://Nano/./src/config/src/builder/prototypes/loader/n-loader.js","webpack://Nano/./src/config/src/builder/prototypes/timepicker/n-timepicker.js","webpack://Nano/./src/config/src/builder/prototypes/modal/n-modal.js","webpack://Nano/./src/config/src/builder/prototypes/confirm/n-confirm.js","webpack://Nano/./src/config/src/builder/prototypes/radio/n-radio.js","webpack://Nano/./src/config/src/builder/prototypes/transfer/n-transfer.js","webpack://Nano/webpack/bootstrap","webpack://Nano/webpack/runtime/define property getters","webpack://Nano/webpack/runtime/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/config/src/builder/builder.jsx","webpack://Nano/./src/config/src/reference-panel/reference-panel.jsx","webpack://Nano/./src/config/src/reference-picker/reference-picker.jsx","webpack://Nano/./src/scrollbar/src/scrollbar/scrollbar.jsx","webpack://Nano/./src/virtualscroller/src/virtualscroller/virtualscroller.jsx","webpack://Nano/./src/draggable/src/draghandler/draghandler.js","webpack://Nano/./src/draggable/src/draglist/draglist.jsx","webpack://Nano/./src/draggable/src/draglist-item/draglist-item.jsx","webpack://Nano/./src/draggable/src/draggrid/draggrid.jsx","webpack://Nano/./src/draggable/src/draggrid-item/draggrid-item.jsx","webpack://Nano/./src/draggable/src/dropzone/dropzone.jsx","webpack://Nano/./src/loader/src/loader/loader.jsx","webpack://Nano/./src/resizer/src/resizer/resizer.jsx","webpack://Nano/./src/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.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 ","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDurationpicker'] = Locale.trans('NDurationpicker');\n\nwindow.NanoBuilderIndexies['NDurationpicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDurationpicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSwitch'] = Locale.trans('NSwitch');\n\nwindow.NanoBuilderIndexies['NSwitch'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSwitch']['props'] = {\n modelValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n onValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n offValue: {\n for: ['binds', 'props'], type: 'Any'\n },\n onType: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n offType: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n size: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeSizes\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n};","module.exports = __WEBPACK_EXTERNAL_MODULE__55__;","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRating'] = Locale.trans('NRating');\n\nwindow.NanoBuilderIndexies['NRating'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRating']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NInputNumber'] = Locale.trans('NInputNumber');\n\nwindow.NanoBuilderIndexies['NInputNumber'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NInputNumber']['props'] = {\n modelValue: {\n for: ['binds', 'props'], default: null, type: 'Number'\n },\n clearValue: {\n for: ['binds', 'props'], default: null, type: 'Number'\n },\n clearable: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n min: {\n for: ['binds', 'props'], default: 0, type: 'Number'\n },\n max: {\n for: ['binds', 'props'], default: Number.MAX_VALUE, type: 'Number'\n },\n stepSize: {\n for: ['binds', 'props'], default: 1, type: 'Number'\n },\n precision: {\n for: ['binds', 'props'], default: 0, type: 'Number'\n },\n size: {\n for: ['binds', 'props'], default: 'md', type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: window.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n placeholder: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n format: {\n for: ['binds', 'props'], default: ':count', type: 'String'\n },\n decimals: {\n for: ['binds', 'props'], default: '.', type: 'String'\n },\n};","module.exports = __WEBPACK_EXTERNAL_MODULE__122__;","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['span'] = Locale.trans('span');\n\nwindow.NanoBuilderIndexies['span'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['span']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['div'] = Locale.trans('div');\n\nwindow.NanoBuilderIndexies['div'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['div']['props'] = {\n classList: {\n type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTabs'] = Locale.trans('NTabs');\n\nwindow.NanoBuilderIndexies['NTabs'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTabs']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NButton'] = Locale.trans('NButton');\n\nwindow.NanoBuilderIndexies['NButton'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NButton']['props'] = {\n size: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], type: 'String', options: window.NanoPrototypeTypes\n },\n link: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n square: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n disabled: {\n for: ['binds', 'props'], type: 'Boolean', options: window.NanoPrototypeBools\n },\n icon: {\n for: ['binds', 'props'], type: 'String'\n },\n iconPosition: {\n for: ['binds', 'props'], type: 'String', options: ['before', 'after']\n },\n nativeType: {\n for: ['binds', 'props'], type: 'String', options: ['button', 'a', 'div']\n },\n click: {\n for: ['on'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NFormGroup'] = Locale.trans('NFormGroup');\n\nwindow.NanoBuilderIndexies['NFormGroup'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NFormGroup']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSlider'] = Locale.trans('NSlider');\n\nwindow.NanoBuilderIndexies['NSlider'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSlider']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDatepicker'] = Locale.trans('NDatepicker');\n\nwindow.NanoBuilderIndexies['NDatepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDatepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NButtonGroup'] = Locale.trans('n-button-group');\n\nwindow.NanoBuilderIndexies['NButtonGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NButtonGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NDatetimepicker'] = Locale.trans('NDatetimepicker');\n\nwindow.NanoBuilderIndexies['NDatetimepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NDatetimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NSelect'] = Locale.trans('NSelect');\n\nwindow.NanoBuilderIndexies['NSelect'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NSelect']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTableColumn'] = Locale.trans('NTableColumn');\n\nwindow.NanoBuilderIndexies['NTableColumn'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTableColumn']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NForm'] = Locale.trans('NForm');\n\nwindow.NanoBuilderIndexies['NForm'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NForm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRadioGroup'] = Locale.trans('NRadioGroup');\n\nwindow.NanoBuilderIndexies['NRadioGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRadioGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NInput'] = Locale.trans('NInput');\n\nwindow.NanoBuilderIndexies['NInput'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NInput']['props'] = {\n modelValue: {\n for: ['binds', 'props'], default: null, type: 'String'\n },\n size: {\n for: ['binds', 'props'], default: 'md', type: 'String', options: window.NanoPrototypeSizes\n },\n type: {\n for: ['binds', 'props'], default: 'primary', type: 'String', options: window.NanoPrototypeTypes\n },\n disabled: {\n for: ['binds', 'props'], default: false, type: 'Boolean', options: window.NanoPrototypeBools\n },\n placeholder: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n nativeType: {\n for: ['binds', 'props'], default: 'text', type: 'String', options: ['text', 'password', 'email']\n },\n icon: {\n for: ['binds', 'props'], default: '', type: 'String'\n },\n iconPosition: {\n for: ['binds', 'props'], default: 'before', type: 'String', options: ['before', 'after']\n },\n iconDisabled: {\n for: ['binds', 'props'], default: null, type: 'Boolean', options: window.NanoPrototypeBools\n },\n iconClick: {\n for: ['on'], type: 'String'\n },\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTable'] = Locale.trans('NTable');\n\nwindow.NanoBuilderIndexies['NTable'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTable']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTags'] = Locale.trans('NTags');\n\nwindow.NanoBuilderIndexies['NTags'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTags']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NFormItem'] = Locale.trans('NFormItem');\n\nwindow.NanoBuilderIndexies['NFormItem'] = {\n childs: true, props: {}\n};\n\nwindow.NanoBuilderIndexies['NFormItem']['props'] = {\n label: {\n for: ['binds', 'props'], type: 'String'\n }\n};","window.NanoPrototypeSizes = [\n 'xs', 'sm', 'md', 'lg'\n];\n\nwindow.NanoPrototypeTypes = [\n 'primary', 'secondary', 'success', 'warning', 'danger', 'info'\n];\n\nwindow.NanoPrototypeBools = [\n 'true', 'false'\n];","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCheckbox'] = Locale.trans('n-checkbox');\n\nwindow.NanoBuilderIndexies['NCheckbox'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCheckbox']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTabsItem'] = Locale.trans('NTabsItem');\n\nwindow.NanoBuilderIndexies['NTabsItem'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTabsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NEmpty'] = Locale.trans('NEmpty');\n\nwindow.NanoBuilderIndexies['NEmpty'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NEmpty']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTagsItem'] = Locale.trans('NTagsItem');\n\nwindow.NanoBuilderIndexies['NTagsItem'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTagsItem']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCheckboxGroup'] = Locale.trans('NCheckboxGroup');\n\nwindow.NanoBuilderIndexies['NCheckboxGroup'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCheckboxGroup']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NCascader'] = Locale.trans('n-cascader');\n\nwindow.NanoBuilderIndexies['NCascader'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NCascader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NLoader'] = Locale.trans('NLoader');\n\nwindow.NanoBuilderIndexies['NLoader'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NLoader']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTimepicker'] = Locale.trans('NTimepicker');\n\nwindow.NanoBuilderIndexies['NTimepicker'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTimepicker']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NModal'] = Locale.trans('NModal');\n\nwindow.NanoBuilderIndexies['NModal'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NModal']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NConfirm'] = Locale.trans('n-confirm');\n\nwindow.NanoBuilderIndexies['NConfirm'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NConfirm']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NRadio'] = Locale.trans('NRadio');\n\nwindow.NanoBuilderIndexies['NRadio'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NRadio']['props'] = {\n //\n};","import { Locale } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderTypes['NTransfer'] = Locale.trans('NTransfer');\n\nwindow.NanoBuilderIndexies['NTransfer'] = {\n childs: false, props: {}\n};\n\nwindow.NanoBuilderIndexies['NTransfer']['props'] = {\n //\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Arr, Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n ctor(key, fallback = null)\n {\n let ctor = Obj.get(this.$options, key.split('.'), -1);\n\n // if ( ctor === -1 ) {\n // ctor = Obj.get(this.$vnode.componentOptions.Ctor,\n // Arr.merge(['options'], key.split('.')), -1);\n // }\n\n if ( ctor === -1 ) {\n ctor = fallback;\n }\n\n if ( typeof ctor !== 'function' ) {\n return ctor;\n }\n\n return (...args) => ctor.apply(this, args);\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n cmer(classList)\n {\n let attrsList = {};\n\n if ( Any.isString(classList) ) {\n attrsList[classList] = true;\n }\n\n if ( Any.isArray(classList) ) {\n Arr.each(classList, (value) => attrsList[value] = true);\n }\n\n if ( Any.isPlain(classList) ) {\n Obj.assign(attrsList, classList);\n }\n\n if ( Any.isString(this.$attrs.class) ) {\n attrsList[this.$attrs.class] = true;\n }\n\n if ( Any.isArray(this.$attrs.class) ) {\n Arr.each(this.$attrs.class, (value) => attrsList[value] = true);\n }\n\n if ( Any.isPlain(this.$attrs.class) ) {\n Obj.assign(attrsList, this.$attrs.class);\n }\n\n return attrsList;\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport { Comment } from \"vue\";\n\nexport default {\n\n cslo(slot = 'default', props = {})\n {\n if ( ! this.$slots[slot] ) {\n return false;\n }\n\n return this.$slots[slot](props).findIndex((o) => {\n return o.type !== Comment;\n }) !== -1;\n }\n\n}\n","import { Any, Str, Obj, Dom, Locale, Arr, UUID } 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: UUID(),\n });\n }\n\n close()\n {\n this.unbindEvents();\n this.modal.remove();\n\n Dom.find(document.body).css({\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 Any.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 ( Any.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).css({\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 { UUID, Str, Obj, Dom, Any } 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 Any.delay(() => {\n NotificationHandler.remove(uid);\n }, el.options.duration);\n\n return uid;\n }\n\n static create(uid = 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, Any } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfig',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return this;\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n solveAwait(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( Any.isString(value) && value.match(/\\$\\$scope/) ) {\n return Obj.has({ $$scope: this.scope }, value);\n }\n\n if ( Any.isString(value) && value.match(/\\$\\$value/) ) {\n return Obj.has({ $$value: this.tempValue }, value);\n }\n\n return false;\n },\n\n solveValue(value, ...args)\n {\n if ( Any.isFunction(value) ) {\n return value.apply(this.scope, [this.tempValue, ...args]);\n }\n\n if ( Any.isString(value) && value.match(/^\\$\\$scope/) ) {\n return Obj.get({ $$scope: this.scope }, value);\n }\n\n if ( Any.isString(value) && value.match(/^\\$\\$value/) ) {\n return Obj.get({ $$value: this.tempValue }, value);\n }\n\n return value;\n },\n\n solveEvent(value)\n {\n let scope = Obj.assign(this.scope, {\n $configRefs: this.$refs\n });\n\n if ( Any.isFunction(value) ) {\n return (...args) => value.apply(scope, args);\n }\n\n return value;\n },\n\n solveContent(value, ...args)\n {\n if ( Any.isFunction(value) ) {\n return value.apply(this.scope, [this.$render, this.tempValue, ...args]);\n }\n\n return value;\n },\n\n prepareValue(veModel)\n {\n if ( ! veModel.path ) {\n return veModel.fallback;\n }\n\n if ( ! Obj.has(this.tempValue, veModel.path) ) {\n this.deepSet(this.tempValue, veModel.path, veModel.fallback);\n }\n\n return Obj.get(this.tempValue, veModel.path);\n },\n\n inputClosure(veModel, closure = null)\n {\n if ( ! veModel.path ) {\n return () => null;\n }\n\n return (value) => {\n\n if ( closure ) {\n closure(value, this.tempValue);\n }\n\n this.deepSet(this.tempValue, veModel.path, value);\n };\n },\n\n deepSet(obj, keys, val)\n {\n keys = (typeof keys === 'string') ?\n keys.split('.') : keys;\n\n let key = keys.shift();\n\n if ( obj[key] === undefined || obj[key] === null ) {\n Obj.set(obj, key, {});\n }\n\n if ( keys.length === 0 ) {\n return Obj.set(obj, key, val);\n }\n\n return this.deepSet(obj[key], keys, val);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n renderLayer(source)\n {\n if ( ! Any.isPlain(source) ) {\n return source;\n }\n\n return Arr.each(source, (setup, component) => {\n\n component = component.replace(/:.*?$/, '');\n\n // Set setup defaults\n setup = Obj.assign({\n vIf: true, vShow: true, vAwait: null, class: null, $on: {}, $props: {}, $attrs: {}\n }, setup);\n\n if ( ! this.solveAwait(setup.vAwait) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vIf) ) {\n return null;\n }\n\n if ( ! this.solveValue(setup.vShow) ) {\n setup.style = { display: 'none' };\n }\n\n // Build default model\n let veModel = Obj.assign({\n prop: 'modelValue', fallback: null\n }, setup.model);\n\n // Delete model from setup\n delete setup.model;\n\n // Normalize props\n setup.$props = this.solveValue(setup.$props);\n\n // Normalize class\n setup.class = this.solveValue(setup.class);\n\n // Solve props\n Obj.map(setup.$props, (value) => this.solveValue(value));\n\n // Normalize attrs\n setup.$attrs = this.solveValue(setup.$attrs);\n\n // Solve attrs\n Obj.map(setup.$attrs, (value) => this.solveValue(value));\n\n // Solve events\n Obj.map(setup.$on, (value) => this.solveEvent(value));\n\n if ( veModel.path ) {\n\n // Override input event\n setup['onUpdate:modelValue'] = this.inputClosure(veModel, setup.$on.input);\n\n // Set prop in value or get fallback\n setup.$props[veModel.prop] = this.prepareValue(veModel);\n }\n\n Obj.assign(setup, setup.$props);\n delete setup.$props;\n\n Obj.assign(setup, setup.$attrs);\n delete setup.$attrs;\n\n Obj.assign(setup, setup.$on);\n delete setup.$on;\n\n let content = setup.content;\n delete setup.content;\n\n delete setup.vIf;\n delete setup.vShow;\n delete setup.vAwait;\n\n // Solve content if is functional\n let slots = this.solveContent(content, setup);\n\n let domtypes = [\n 'div', 'span', 'a'\n ];\n\n let resolved = component;\n\n if ( ! Arr.has(domtypes, resolved) ) {\n resolved = resolveComponent(component);\n }\n\n return h(resolved, setup, this.ctor('renderLayer')(slots));\n });\n },\n\n render()\n {\n return this.ctor('renderLayer')(this.config)[0];\n }\n\n}","import { Arr, Obj, Str, Any } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NConfigNext',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n extraValue: {\n default()\n {\n return null;\n },\n type: [Object]\n },\n\n config: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue, sempValue: this.extraValue || this.modelValue\n };\n },\n\n watch: {\n\n modelValue: function (value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n extraValue: function (value) {\n if ( value !== this.sempValue ) {\n this.sempValue = value;\n }\n }\n\n },\n\n methods: {\n\n getString(value)\n {\n let final = value.replace(/^@/, '')\n .replace(/^\\\\@/, '@');\n\n\n\n if ( value.match(/^@/) ) {\n return this.trans(final);\n }\n\n return final;\n },\n\n propAwait(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Any.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, true);\n });\n\n return ! Arr.has(result, false);\n },\n\n propExists(value)\n {\n if ( Any.isEmpty(value) ) {\n return true;\n }\n\n if ( ! Any.isArray(value) ) {\n value = [value];\n }\n\n let result = Arr.each(value, (state) => {\n return this.getState(state, false);\n });\n\n return ! Arr.has(result, false);\n },\n\n getState(value, exists = true)\n {\n if ( Any.isFunction(value) ) {\n return !! this.solveInput(value);\n }\n\n if ( ! Any.isString(value) ) {\n return !! value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return !! value;\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( exists ) {\n return Obj.get(sources, value, undefined) === undefined;\n }\n\n return !! Obj.get(sources, value);\n },\n\n toPropKey(value)\n {\n let splits = value.replace(/^!/, '').split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n toEventKey(value)\n {\n if ( ! value.match(/^on/) ) {\n value = 'on-' + value;\n }\n\n let splits = value.split('-');\n\n value = Arr.each(splits, (split) => {\n return Str.ucfirst(split);\n });\n\n return Str.lcfirst(value.join(''));\n },\n\n solveInput(cb, fallback)\n {\n return cb.call(this.scope, this.tempValue, fallback);\n },\n\n solveContext(cb)\n {\n if ( ! Any.isFunction(cb) ) {\n return () => console.error('Raw suffix (!) only allowed on functions');\n }\n\n return (...args) => cb.call(this.scope, ...args);\n },\n\n getProp(key, value)\n {\n if ( key.match(/^!/) ) {\n return this.solveContext(value);\n }\n\n if ( Any.isFunction(value) ) {\n return this.solveInput(value);\n }\n\n if ( ! Any.isString(value) ) {\n return value;\n }\n\n if ( ! value.match(/(\\$scope|\\$model|\\$global)/) ) {\n return this.getString(value);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n let result = Obj.get(sources, value.replace(/^!+/, ''));\n\n if ( value.match(/^!!\\$/) ) {\n result = Any.isEmpty(result);\n }\n\n if ( value.match(/^!\\$/) ) {\n result = Any.isEmpty(result);\n }\n\n return result;\n },\n\n getInput(prop, fallback)\n {\n if ( Any.isFunction(prop) ) {\n return this.solveInput(prop, fallback);\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n if ( ! Any.isNull(fallback) && Obj.get(sources, prop, -1337) === -1337 ) {\n Obj.set(sources, prop, fallback);\n }\n\n return Obj.get(sources, prop);\n },\n\n setInput(prop, value)\n {\n if ( Any.isFunction(prop) ) {\n return console.error('NConfigNew: Bind with function is not allowed!');\n }\n\n let sources = {\n $scope: this.scope, $model: this.tempValue, $extra: this.sempValue, $global: window\n };\n\n Obj.set(sources, prop, value);\n }\n\n },\n\n renderSetup(setup, alias)\n {\n if ( ! Any.isPlain(setup) ) {\n return setup;\n }\n\n if ( ! this.propExists(setup['vIf']) ) {\n return null;\n }\n\n if ( ! this.propAwait(setup['vAwait']) ) {\n return null;\n }\n\n let defaults = {\n binds: {}, props: {}, events: {}, content: {}, slots: {}\n };\n\n let defaultsBind = {\n value: '', fallback: null\n };\n\n setup = Obj.assign(defaults, setup);\n\n let binds = {};\n\n Obj.each(setup['binds'], (value, key) => {\n\n if ( Any.isString(value) ) {\n value = { value: value };\n }\n\n binds[key] = Obj.assign(defaultsBind, value);\n });\n\n let events = {};\n\n Obj.each(setup['events'], (value, key) => {\n events[this.toEventKey(key)] = this.solveContext(value);\n });\n\n let props = {};\n\n Obj.each(setup['props'], (value, key) => {\n props[this.toPropKey(key)] = this.getProp(key, value);\n });\n\n props = Obj.assign(props, events);\n\n Obj.each(binds, (value, key) => {\n\n let updateKey = 'onUpdate:' + key;\n\n props[this.toEventKey(updateKey)] = (input) => {\n this.setInput(value.value, input);\n };\n\n props[this.toPropKey(key)] = this.getInput(value.value,\n value.fallback);\n });\n\n let component = alias.replace(/:.*?$/, '');\n\n if ( !Arr.has(['div', 'p'], component) ) {\n component = resolveComponent(component);\n }\n\n if ( Any.isEmpty(component) ) {\n return null;\n }\n\n if ( !this.propExists(setup['vShow']) ) {\n props.style = \"display: none;\";\n }\n\n let slots = {\n default: this.ctor('renderSlot')(setup.content)\n };\n\n Obj.each(setup.slots, (slot, key) => {\n slots[key] = this.ctor('renderSlot')(slot);\n });\n\n return h(component, props, slots);\n },\n\n renderSlot(callback)\n {\n let render = () => Arr.each(callback, (value, key) => {\n return this.ctor('renderSetup')(value, key);\n });\n\n if ( Any.isFunction(callback) ) {\n render = () => callback.apply(this.scope);\n }\n\n if ( Any.isString(callback) ) {\n render = () => this.getString(callback);\n }\n\n return render;\n },\n\n render()\n {\n return Arr.each(this.config, (value, key) => this.ctor('renderSetup')(value, key));\n }\n\n}","import { Arr, Dom, Any, Locale, Obj, UUID, Num } from \"@kizmann/pico-js\";\n\nwindow.NanoBuilderPropType = {\n 'root': Locale.trans('Root'),\n 'binds': Locale.trans('Bind'),\n 'props': Locale.trans('Property'),\n 'attrs': Locale.trans('Attribute'),\n 'on': Locale.trans('Event'),\n};\n\nwindow.NanoBuilderPropCode = {\n 'string': Locale.trans('String'),\n 'number': Locale.trans('Number'),\n 'boolean': Locale.trans('Boolean'),\n 'object': Locale.trans('Object'),\n 'function': Locale.trans('Function'),\n};\n\nwindow.NanoBuilderProps = {\n classList: {\n for: ['root', 'attrs', 'props'], type: 'String'\n },\n vIf: {\n for: ['root'], type: 'String'\n },\n vShow: {\n for: ['root'], type: 'String'\n },\n};\n\nwindow.NanoBuilderTypes = {\n //\n};\n\nwindow.NanoBuilderIndexies = {\n //\n};\n\n// DOM elements\nrequire('./prototypes/html/nano');\nrequire('./prototypes/html/div');\nrequire('./prototypes/html/span');\n\n// Nano elements\nrequire('./prototypes/button/n-button');\nrequire('./prototypes/button/n-button-group');\nrequire('./prototypes/cascader/n-cascader');\nrequire('./prototypes/checkbox/n-checkbox');\nrequire('./prototypes/checkbox/n-checkbox-group');\nrequire('./prototypes/confirm/n-confirm');\nrequire('./prototypes/datepicker/n-datepicker');\nrequire('./prototypes/datetimepicker/n-datetimepicker');\nrequire('./prototypes/durationpicker/n-durationpicker');\nrequire('./prototypes/empty/n-empty');\nrequire('./prototypes/form/n-form');\nrequire('./prototypes/form/n-form-group');\nrequire('./prototypes/form/n-form-item');\nrequire('./prototypes/input/n-input');\nrequire('./prototypes/input-number/n-input-number');\nrequire('./prototypes/loader/n-loader');\nrequire('./prototypes/modal/n-modal');\nrequire('./prototypes/radio/n-radio');\nrequire('./prototypes/radio/n-radio-group');\nrequire('./prototypes/rating/n-rating');\nrequire('./prototypes/select/n-select');\nrequire('./prototypes/slider/n-slider');\nrequire('./prototypes/switch/n-switch');\nrequire('./prototypes/table/n-table');\nrequire('./prototypes/table/n-table-column');\nrequire('./prototypes/tabs/n-tabs');\nrequire('./prototypes/tabs/n-tabs-item');\nrequire('./prototypes/tags/n-tags');\nrequire('./prototypes/tags/n-tags-item');\nrequire('./prototypes/timepicker/n-timepicker');\nrequire('./prototypes/transfer/n-transfer');\n\nexport default {\n\n name: 'NBuilder',\n\n props: {\n\n modelValue: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n renderDemo: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderExport: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n init: false, demo: false, collapse: [], safevar: this.normalizeModel(this.modelValue)\n };\n },\n\n watch: {\n modelValue: function () {\n this.safevar = this.normalizeModel(this.modelValue)\n }\n },\n\n mounted()\n {\n this.init = true;\n },\n\n methods: {\n\n exportJson(value)\n {\n return JSON.stringify(Obj.clone(value), null, 4).replace(/\"!FUNC:(.*?):FUNC!\"/g, (matches) => {\n return matches.replace(/^\"!FUNC:/, '').replace(/:FUNC!\"$/, '').replace(/\\\\\"/, '\"').replace(/\\\\n/g, \"\\n\");\n });\n },\n\n exportExecutable(value)\n {\n return new Function(`return ${this.exportJson(value)};`)();\n },\n\n normalizeModel(model)\n {\n let result = {};\n\n Obj.each(model, (value, key) => {\n result[key] = Obj.assign(this.normalizeChild(value), {\n order: (Any.vals(result).length + 1) * 100\n });\n });\n\n return result;\n },\n\n normalizeChild(child)\n {\n let result = this.applyProps(null, {\n ...Obj.except(child, ['content']), content: {}, builder: this.buildProps(child),\n });\n\n if ( Any.isArray(child.content) ) {\n child.content = Arr.first(child.content);\n }\n\n if ( ! Any.isPlain(child.content) && ! Any.isString(child.content) ) {\n child.content = {};\n }\n\n result.builder[\"null\"] = {\n type: typeof child.content\n }\n\n if (Any.isPlain(child.content)) {\n Obj.each(child.content || {}, (value, key) => {\n\n if ( ! key.match(':') ) {\n key += ':' + UUID();\n }\n\n result['content'][key] = Obj.assign(this.normalizeChild(value), {\n order: (Any.vals(result['content']).length + 1) * 100\n });\n });\n } else {\n result.content = child.content;\n }\n\n return result;\n },\n\n getOriginalValue(prop)\n {\n let safevalue = prop.value;\n\n if ( typeof prop.value === 'function' ) {\n safevalue = btoa(\"!FUNC:\" + prop.value.toString() + \":FUNC!\");\n }\n\n return safevalue;\n },\n\n getSafeValue(prop)\n {\n let safevalue = '';\n\n if ( typeof prop.value === 'string' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'boolean' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'number' ) {\n safevalue = Any.string(prop.value);\n }\n\n if ( typeof prop.value === 'object' ) {\n safevalue = JSON.stringify(prop.value);\n }\n\n if ( typeof prop.value === 'function' ) {\n safevalue = btoa(\"!FUNC:\" + prop.value.toString() + \":FUNC!\");\n }\n\n return safevalue;\n },\n\n getRealValue(prop)\n {\n let realvalue = '';\n\n if ( prop.code === 'string' ) {\n realvalue = Any.string(prop.value);\n }\n\n if ( prop.code === 'boolean' ) {\n realvalue = Any.boolean(prop.value);\n }\n\n if ( prop.code === 'number' ) {\n realvalue = Any.number(prop.value, 0);\n }\n\n if ( prop.code === 'object' ) {\n realvalue = JSON.parse(prop.value);\n }\n\n if ( prop.code === 'function' ) {\n realvalue = atob(prop.original);\n }\n\n return realvalue;\n },\n\n changeElement(key, update)\n {\n if ( Any.isEmpty(update) ) {\n return;\n }\n\n let newKey = key.replace(/^(.*?)([^\\.]+):([^\\.]+)$/, `$1${update}:$3`);\n\n let value = Obj.get(this, key, {});\n\n Obj.unset(this, key);\n Obj.set(this, newKey, value);\n\n this.collapse = Arr.each(this.collapse, (k) => {\n return k.replace(key, newKey);\n });\n },\n\n changeAlias(key, update)\n {\n if ( Any.isEmpty(update) ) {\n return;\n }\n\n let newKey = key.replace(/^(.*?)([^\\.]+):([^\\.]+)$/, `$1$2:${update}`);\n\n let value = Obj.get(this, key, {});\n\n Obj.unset(this, key);\n Obj.set(this, newKey, value);\n\n this.collapse = Arr.each(this.collapse, (k) => {\n return k.replace(key, newKey);\n });\n },\n\n changeType(key, type)\n {\n let value = Obj.get(this, key, {});\n\n let original = Obj.get(value, 'builder.null.type');\n\n if ( type === 'object' ) {\n value.content = {};\n }\n\n if ( type === 'string' ) {\n value.content = '';\n }\n\n Obj.set(value, 'builder.null.type', typeof value.content);\n },\n\n applyProps(key = null, value = {})\n {\n if ( ! Any.isEmpty(key) ) {\n value = Obj.get(this, key, {});\n }\n\n let reset = [\n 'vIf', 'vShow', 'classList', 'vLocale', 'binds', 'attrs', 'props', 'on',\n ];\n\n Obj.each(reset, (prop) => {\n Obj.unset(value, prop);\n });\n\n Obj.each(value.builder || {}, (val) => {\n\n if ( Any.isEmpty(val.key) ) {\n return;\n }\n\n let bindValue = {\n value: val.value, fallback: null\n };\n\n if ( val.code === 'string' ) {\n bindValue.fallback = Any.string(val.fallback || '');\n }\n\n if ( val.code === 'boolean' ) {\n bindValue.fallback = Any.boolean(val.fallback || 'false');\n }\n\n if ( val.code === 'object' ) {\n bindValue.fallback = JSON.parse(val.fallback || '{}');\n }\n\n if ( val.type === 'binds' ) {\n return Obj.set(value, [val.type, val.key], bindValue);\n }\n\n let realvalue = '';\n\n try {\n realvalue = this.getRealValue(val);\n } catch (e) {\n if ( ! Any.isEmpty(val.value) ) {\n console.error('Invalid JSON: ' + val.value);\n }\n }\n\n if ( val.type === 'root' ) {\n return Obj.set(value, val.key, realvalue);\n }\n\n if ( val.type === 'attrs' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n if ( val.type === 'props' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n if ( val.type === 'on' ) {\n return Obj.set(value, [val.type, val.key], realvalue);\n }\n\n });\n\n if ( Any.isEmpty(key) ) {\n return value;\n }\n\n return Obj.set(this, key, value);\n },\n\n buildProps(el, key = null)\n {\n let builder = {};\n\n Obj.each(Obj.only(el, ['vIf', 'vShow', 'classList']), (value, sey) => {\n builder[UUID()] = {\n type: 'root', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value })\n };\n });\n\n Obj.each(Obj.get(el, `binds`, {}), (value, sey) => {\n\n let result = {\n type: 'binds', code: typeof value, key: sey, fallback: null, original: this.getOriginalValue({ value })\n }\n\n if ( Any.isString(value) ) {\n result.value = this.getSafeValue({ value });\n }\n\n if ( Any.isObject(value) ) {\n Obj.assign(result, { value: this.getSafeValue(value), fallback: Obj.get(value, 'fallback', null) })\n }\n\n builder[UUID()] = result;\n });\n\n Obj.each(Obj.get(el, `props`, {}), (value, sey) => {\n builder[UUID()] = { type: 'props', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n Obj.each(Obj.get(el, `attrs`, {}), (value, sey) => {\n builder[UUID()] = { type: 'attrs', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n Obj.each(Obj.get(el, `on`, {}), (value, sey) => {\n builder[UUID()] = { type: 'on', code: typeof value, key: sey, value: this.getSafeValue({ value }), fallback: null, original: this.getOriginalValue({ value }) };\n });\n\n if ( Any.isEmpty(key) ) {\n return builder;\n }\n\n this.$nextTick(() => {\n Obj.set(this, `${key}.builder`, builder);\n });\n\n return builder;\n },\n\n addProp(key)\n {\n let value = Obj.get(this, `${key}.builder`, {});\n\n Obj.set(value, UUID(), {\n type: 'props', code: 'string', key: '', value: '', fallback: null\n });\n\n Obj.set(this, `${key}.builder`, value);\n },\n\n removeProp(key, prop)\n {\n Obj.unset(this, `${key}.builder.${prop}`);\n\n this.applyProps(key);\n },\n\n collapseElement(key)\n {\n Arr.toggle(this.collapse, key);\n },\n\n addElement(key)\n {\n let value = Obj.get(this, key, {});\n\n Obj.set(value, 'div:' + UUID(), {\n order: (Any.vals(value).length + 1) * 100, props: { modelValue: '$scope.list' }, content: {}\n });\n\n Obj.assign(this, key, value);\n },\n\n removeElement(key)\n {\n Obj.unset(this, key);\n },\n\n moveupElement(key)\n {\n let [el, childs] = [\n Obj.get(this, key), Obj.get(this, key.replace(/\\.[^.]+$/, ''))\n ];\n\n let close = Number.MIN_VALUE;\n\n Arr.each(childs, (sub) => {\n if ( sub.order < el.order ) close = Math.max(close, sub.order);\n });\n\n if ( close === Number.MIN_VALUE ) {\n return;\n }\n\n let replacement = Arr.find(childs, {\n order: close\n });\n\n Obj.assign(replacement, {\n order: el.order\n });\n\n Obj.assign(el, { order: close });\n },\n\n movedownElement(key)\n {\n let [el, childs] = [\n Obj.get(this, key), Obj.get(this, key.replace(/\\.[^.]+$/, ''))\n ];\n\n let close = Number.MAX_VALUE;\n\n Arr.each(childs, (sub) => {\n if ( sub.order > el.order ) close = Math.min(close, sub.order);\n });\n\n if ( close === Number.MAX_VALUE ) {\n return;\n }\n\n let replacement = Arr.find(childs, {\n order: close\n });\n\n Obj.assign(replacement, {\n order: el.order\n });\n\n Obj.assign(el, { order: close });\n },\n\n },\n\n renderTools(el, value, key)\n {\n let rootProps = {\n //\n };\n\n rootProps['onDblclick'] = () => {\n this.collapseElement(key);\n };\n\n let collapseProps = {\n href: 'javascript:void(0)',\n };\n\n collapseProps['onClick'] = () => {\n this.collapseElement(key);\n };\n\n let addProps = {\n href: 'javascript:void(0)',\n };\n\n addProps['onClick'] = () => {\n this.addElement(`${key}.content`);\n };\n\n let removeProps = {\n href: 'javascript:void(0)',\n };\n\n removeProps['onClick'] = () => {\n this.removeElement(key);\n };\n\n let moveupProps = {\n href: 'javascript:void(0)',\n };\n\n moveupProps['onClick'] = () => {\n this.moveupElement(key);\n };\n\n let movedownProps = {\n href: 'javascript:void(0)',\n };\n\n movedownProps['onClick'] = () => {\n this.movedownElement(key);\n };\n\n\n return (\n <div class=\"n-builder__tools\" {...rootProps}>\n <div class=\"n-builder__collapse\">\n <a {...collapseProps}><i class=\"fa fa-bars\"></i></a>\n </div>\n <div class=\"n-builder__name\">\n {key.replace(/^.*?([^\\.:]+):([^\\.:]+)$/, '$1')}<span>{key.replace(/^.*?([^\\.:]+):([^\\.:]+)$/, '$2')}</span>\n </div>\n <div class=\"n-builder__move\">\n <a {...moveupProps}><i class=\"fa fa-angle-up\"></i></a>\n <a {...movedownProps}><i class=\"fa fa-angle-down\"></i></a>\n </div>\n <div class=\"n-builder__add\">\n <a {...addProps}><i class=\"fa fa-plus\"></i></a>\n </div>\n <div class=\"n-builder__remove\">\n <a {...removeProps}><i class=\"fa fa-trash\"></i></a>\n </div>\n </div>\n );\n },\n\n renderProp(el, sub, key)\n {\n if ( sub === \"null\" ) {\n return null;\n }\n\n let group = key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$1')\n let value = Obj.get(this.$data, `${key}.builder.${sub}`, {});\n\n let props = Obj.clone(Obj.get(window.NanoBuilderIndexies, `${group}.props`, {}));\n\n props = Obj.assign({}, window.NanoBuilderProps, props);\n\n Obj.each(props, (prop, index) => {\n if ( ! Any.isEmpty(prop.for) && ! Arr.has(prop.for, value.type) ) {\n props = Obj.unset(props, index);\n }\n });\n\n let typeProps = {\n size: 'sm', options: window.NanoBuilderPropType\n };\n\n typeProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let keyProps = {\n size: 'sm', allowCreate: true, options: props, optionsLabel: '$index'\n };\n\n keyProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let codeProps = {\n size: 'sm', options: window.NanoBuilderPropCode\n };\n\n codeProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let values = Obj.get(props, `${value.key}.options`, []);\n\n let valueInputProps = {\n size: 'sm', model: this.model, scope: this.scope\n };\n\n valueInputProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let valueHtml = (\n <NReferencePicker vModel={value.value} {...valueInputProps} />\n );\n\n let fallbackProps = {\n size: 'sm', minRows: 1, autoRows: true\n };\n\n fallbackProps['onUpdate:modelValue'] = () => {\n this.$nextTick(() => this.applyProps(key));\n };\n\n let tooltipHtml = (\n <div class=\"n-builder_prop-text\">\n <p>{Obj.get(props, `${value.key}.desc`, '')}</p>\n </div>\n );\n\n return (\n <div class=\"n-builder_prop\">\n <div class=\"n-builder_prop-type\">\n <NSelect vModel={value.type} {...typeProps} />\n </div>\n <div class=\"n-builder_prop-key\">\n <NSelect vModel={value.key} {...keyProps} />\n </div>\n <div class=\"n-builder_prop-func\">\n <NSelect vModel={value.code} {...codeProps} />\n </div>\n <div class=\"n-builder_prop-value\">\n {valueHtml}\n </div>\n <div class=\"n-builder_prop-fallback\">\n <NInput vModel={value.fallback} {...fallbackProps} />\n </div>\n <div class=\"n-builder_prop-button\">\n <NButton size=\"sm\" type=\"danger\" onClick={() => this.removeProp(key, sub)}>Remove</NButton>\n </div>\n </div>\n );\n },\n\n renderProps(el, value, key)\n {\n if ( !Arr.has(this.collapse, key) ) {\n return null;\n }\n\n let elementProps = {\n options: window.NanoBuilderTypes, allowCreate: true, modelValue: key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$1'),\n };\n\n elementProps['onUpdate:modelValue'] = (value) => {\n this.changeElement(key, value);\n };\n\n let aliasProps = {\n modelValue: key.replace(/^.*?([^\\.]+):([^\\.]+)$/, '$2'),\n };\n\n aliasProps['onUpdate:modelValue'] = (value) => {\n this.changeAlias(key, value);\n };\n\n let plainProps = {\n modelValue: Obj.get(value, 'builder.null.type'),\n options: {\n 'object': this.trans('Object'),\n 'string': this.trans('String'),\n }\n };\n\n plainProps['onUpdate:modelValue'] = (value) => {\n this.changeType(key, value);\n };\n\n let addProps = {\n type: 'primary', size: 'sm', link: true\n };\n\n addProps['onClick'] = () => {\n this.addProp(key, value);\n };\n\n let props = Obj.get(value, `builder`);\n\n if ( ! Obj.has(value, 'builder') ) {\n props = this.buildProps(el, key, value);\n }\n\n return (\n <NForm class=\"n-builder__props\">\n <NFormItem class=\"n-builder__element-type\" label={this.trans('Type')}>\n <NSelect {...elementProps} />\n </NFormItem>\n <NFormItem class=\"n-builder__element-alias\" label={this.trans('Alias')}>\n <NInput {...aliasProps} />\n </NFormItem>\n <NFormItem class=\"n-builder__element-plain\" label={this.trans('Content')}>\n <NSelect {...plainProps}>{this.trans('Enable plain')}</NSelect>\n </NFormItem>\n <div class=\"n-builder__element-prop\">\n <NButton {...addProps}>Add property</NButton>\n </div>\n <div class=\"n-builder__element-list\">\n {Arr.each(props, (prop, sub) => this.ctor('renderProp')(el, sub, key))}\n </div>\n </NForm>\n );\n },\n\n renderElement(el, value, key)\n {\n let classList = [\n 'n-builder__element'\n ];\n\n if ( Arr.has(this.collapse, key) ) {\n classList.push('is-open');\n }\n\n let builderHtml = () => {\n return this.ctor('renderBuilder')(value.content || {}, `${key}.content`);\n };\n\n if ( value.builder[\"null\"][\"type\"] === 'string' ) {\n builderHtml = () => {\n return (<div><NInput vModel={value.content} /></div>);\n };\n }\n\n return (\n <div class={classList}>\n {this.ctor('renderTools')(el, value, key)}\n {this.ctor('renderProps')(el, value, key)}\n {builderHtml()}\n </div>\n );\n },\n\n renderBuilder(el, key)\n {\n if ( Any.isEmpty(el) ) {\n return null;\n }\n\n let items = Arr.each(Obj.sort(Obj.clone(el), 'order'), (v) => {\n\n let args = [\n Obj.get(this.$data, key, {}),\n Obj.get(this.$data, [key, v._key], {}),\n `${key}.${v._key}`\n ];\n\n return this.ctor('renderElement')(...args);\n });\n\n return (\n <div class=\"n-builder__frame\">\n {items}\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-builder__body\">\n {this.ctor('renderBuilder')(this.safevar, 'safevar')}\n </div>\n );\n },\n\n renderHead()\n {\n let addProps = {\n type: 'primary'\n };\n\n addProps['onClick'] = () => {\n this.addElement('safevar');\n };\n\n let addHtml = (\n <div class=\"n-builder__head-add\">\n <NButton {...addProps}>{this.trans('Add root element')}</NButton>\n </div>\n );\n\n let demoProps = {\n type: 'primary'\n };\n\n demoProps['onClick'] = () => {\n this.demo = true;\n };\n\n let demoHtml = (\n <div class=\"n-builder__head-demo\">\n <NButton {...demoProps}>{this.trans('Render demo')}</NButton>\n </div>\n );\n\n return (\n <div class=\"n-builder__head\">\n {[addHtml, demoHtml]}\n </div>\n );\n },\n\n renderOutput()\n {\n return (\n <div class=\"n-builder__output\">\n <pre>{this.exportJson(this.safevar)}</pre>\n </div>\n );\n },\n\n renderDemo()\n {\n if ( ! this.renderDemo || ! this.demo ) {\n return null;\n }\n\n let renderFunction = this.$slots.default;\n\n if ( Any.isEmpty(renderFunction) ) {\n renderFunction = ({ render }) => render();\n }\n\n let modalProps = {\n width: '100%',\n height: '100%'\n };\n\n let configProps = {\n modelValue: this.model, scope: this.scope, config: this.exportExecutable(this.safevar)\n };\n\n let renderContent = () => {\n return ( <NConfigNext {...configProps} />);\n };\n\n return (\n <NModal vModel={this.demo} {...modalProps}>\n {renderFunction({ render: renderContent })}\n </NModal>\n );\n },\n\n render()\n {\n let classList = [\n 'n-builder',\n ];\n\n return (\n <div class={classList}>\n {[\n this.ctor('renderBody')(), this.ctor('renderHead')(), this.ctor('renderOutput')(), this.ctor('renderDemo')(),\n ]}\n </div>\n );\n }\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NReferencePanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return \"\";\n },\n type: [String]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n },\n\n data()\n {\n return {\n expanded: [], selected: null, modelTree: this.buildTree(this.model, '$model'), scopeTree: this.buildTree(this.scope, '$scope')\n };\n },\n\n methods: {\n\n buildTree(value, path = '')\n {\n let result = {};\n\n if ( ! Any.isPlain(value) && ! Obj.get(value, '__v_skip') ) {\n return result;\n }\n\n for(var key in value) {\n\n let [ref, val] = [\n `${path}.${key}`, value[key]\n ];\n\n if ( Any.isPlain(val) ) {\n val = this.buildTree(val, ref);\n }\n\n let type = typeof val;\n\n if ( Any.isArray(val) ) {\n type = 'array';\n }\n\n result[key] = {\n path: ref, value: val, type: type\n };\n\n }\n\n return result;\n },\n\n submitItem(value)\n {\n this.$emit('update:modelValue', value.path);\n },\n\n selectItem(value)\n {\n this.selected = value;\n },\n\n expandItem(value)\n {\n if ( value.type === 'object' ) {\n Arr.toggle(this.expanded, value.path);\n }\n }\n\n },\n\n renderLeaf(value, key)\n {\n let classList = [\n 'n-reference-panel__item',\n 'n-reference-panel__item--' + value.type,\n ];\n\n if ( Obj.get(this.selected, 'path') === value.path) {\n classList.push('is-selected');\n }\n\n if ( value.type === 'object' ) {\n classList.push('has-childs');\n }\n\n if ( Arr.has(this.expanded, value.path) ) {\n classList.push('is-expanded');\n }\n\n return (\n <div class={classList} onDblclick={() => this.submitItem(value)}>\n <div class=\"n-reference-panel__expand\" onClick={() => this.expandItem(value)}>\n <i class=\"fa fa-angle-right\"></i>\n </div>\n <div class=\"n-reference-panel__name\" onClick={() => this.selectItem(value)}>\n {key}\n </div>\n <div class=\"n-reference-panel__type\" onClick={() => this.selectItem(value)}>\n {value.type}\n </div>\n <div class=\"n-reference-panel__pick\" onClick={() => this.submitItem(value)}>\n <i class=\"fa fa-expand\"></i>\n </div>\n </div>\n );\n },\n\n renderTree(value, key)\n {\n let childItems = Arr.each(value.value, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n let childHtml = (\n <div class=\"n-reference-panel__childs\">\n {childItems}\n </div>\n );\n\n if ( ! Arr.has(this.expanded, value.path) ) {\n childHtml = null;\n }\n\n return [this.ctor('renderLeaf')(value, key), childHtml];\n },\n\n renderItem(value, key)\n {\n if ( value.type === 'object' ) {\n return this.ctor('renderTree')(value, key);\n }\n\n return this.ctor('renderLeaf')(value, key);\n },\n\n renderModel()\n {\n let modelHtml = Arr.each(this.modelTree, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n return (\n <div class=\"n-reference-panel__model\">\n {modelHtml}\n </div>\n );\n },\n\n renderScope()\n {\n let scopeHtml = Arr.each(this.scopeTree, (value, key) => {\n return this.ctor('renderItem')(value, key);\n });\n\n return (\n <div class=\"n-reference-panel__scope\">\n {scopeHtml}\n </div>\n );\n },\n\n render()\n {\n return (\n <div class=\"n-reference-panel\">\n {[this.ctor('renderModel')(), this.ctor('renderScope')()]}\n </div>\n );\n }\n\n}","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NReferencePicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n model: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n scope: {\n default()\n {\n return {};\n },\n type: [Object]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n width: {\n default()\n {\n return '100%';\n },\n type: [String]\n },\n\n height: {\n default()\n {\n return '100%';\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return {\n modal: false, tempValue: this.modelValue\n };\n },\n\n methods: {\n\n updateValue(value)\n {\n this.$emit('update:modelValue', this.tempValue = value);\n }\n\n },\n\n renderModal()\n {\n if ( ! this.modal ) {\n return null;\n }\n\n let modalProps = {\n modelValue: true,\n width: this.width,\n height: this.height,\n };\n\n modalProps['onClose'] = () => {\n this.modal = false;\n };\n\n let panelProps = {\n model: this.model, scope: this.scope,\n };\n\n panelProps['onUpdate:modelValue'] = (value) => {\n this.updateValue(value); this.modal = false;\n };\n\n let slots = {\n //\n };\n\n slots['body'] = () => (\n <NReferencePanel class=\"in-modal\" {...panelProps} />\n );\n\n return (\n <NModal {...modalProps} v-slots={slots} />\n );\n },\n\n renderInput()\n {\n let inputProps = {\n modelValue: this.tempValue,\n icon: 'fa fa-expand',\n size: this.size,\n };\n\n inputProps['onUpdate:modelValue'] = (value) => {\n this.updateValue(value);\n };\n\n inputProps['onBlur'] = (e) => {\n this.$emit('onBlur', e);\n };\n\n inputProps['onIconClick'] = () => {\n this.modal = true;\n };\n\n return (\n <NInput {...inputProps} />\n );\n },\n\n render()\n {\n return (\n <div class=\"n-reference-picker\">\n {[this.ctor('renderInput')(), this.ctor('renderModal')()]}\n </div>\n );\n }\n\n}","import { Arr, Obj, Dom, Any, Str, Event, UUID } 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: 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 ( Any.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).removeClass('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) && Any.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).css(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 ( Any.isEmpty(delay) ) {\n return this.scrollTo(x, y);\n }\n\n Any.delay(() => this.onScrollTo(x, y), delay);\n },\n\n onScrollTo(x = 0, y = 0)\n {\n if (this.$refs.content) {\n this.$refs.content.scrollTop = y;\n this.$refs.content.scrollLeft = x;\n }\n\n // 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 Any.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).css({\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).removeClass('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).css({\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).removeClass('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).css({\n transform: `translateY(${vbarTop}px) translateZ(0)`\n });\n\n this.vbarTop = vbarTop;\n }\n\n let hbarLeft = Math.ceil((this.outerWidth / this.innerWidth) *\n scroll.left * this.widthRatio) || 0;\n\n if ( !this.hbarLeft || hbarLeft !== this.hbarLeft ) {\n\n Dom.find(this.$refs.hbar).css({\n transform: `translateX(${hbarLeft}px) translateZ(0)`\n });\n\n this.hbarLeft = hbarLeft;\n }\n },\n\n onScroll()\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).removeClass('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).removeClass('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, Obj, Any, Dom } from \"@kizmann/pico-js\";\n\nwindow.DEBUG_NVSCROLL = false;\n\nexport default {\n\n name: 'NVirtualscroller',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n\n },\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n itemHeight: {\n default()\n {\n return 34;\n }\n },\n\n itemWidth: {\n default()\n {\n return 0;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n deathzone: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 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 Any.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 ( Any.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 ( Any.isEqual(this.state, state) ) {\n return;\n }\n\n this.state = state;\n\n if ( Any.isFunction(callback) ) {\n callback.call(this);\n }\n },\n\n },\n\n renderItem(passed)\n {\n passed.index = (passed.index +\n this.state.start);\n\n let topOffset = Math.round(this.itemHeight *\n passed.index);\n\n let renderFunction = this.$slots.default;\n\n if ( this.renderNode ) {\n renderFunction = this.renderNode;\n }\n\n let props = {\n 'data-index': passed.index\n };\n\n if ( this.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 { Arr, Obj, Num, Any, Dom, Event, Locale, UUID } from \"@kizmann/pico-js\";\n\nwindow.dragMods = [];\n\nclass NDragCounter\n{\n\n $el = null;\n\n constructor()\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__counter']\n });\n\n Dom.ready(() => {\n this.$el.appendTo(document.body);\n });\n }\n\n get(event, count)\n {\n // Update dragover color/type\n this.update();\n\n this.$el.html(\n `<span>${Locale.choice(':count Item|:count Items', count)}</span>`\n );\n\n // Fix data transfer\n event.dataTransfer.setData('text/plain', '');\n\n if ( typeof event.dataTransfer.setDragImage !== 'function' ) {\n return;\n }\n\n // Set finally the drop image\n event.dataTransfer.setDragImage(this.$el.get(0), 0, 0);\n }\n\n update()\n {\n window.dragMods = window.keyMods;\n\n let classList = [\n 'n-draggable__counter'\n ];\n\n if ( Arr.has(window.dragMods, 18) ) {\n classList.push('n-modify--alt');\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n classList.push('n-modify--ctrl');\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n classList.push('n-modify--meta');\n }\n\n this.$el.attr('class', classList.join(' '));\n }\n\n}\n\nwindow.DragCounter = new NDragCounter;\n\nclass NDragIndicator\n{\n\n $el = null;\n\n parent = null;\n\n constructor(parent)\n {\n this.$el = Dom.make('div', {\n classList: ['n-draggable__indicator']\n });\n\n this.$el.appendTo(this.parent = parent);\n }\n\n resolve(event, safezone, el, strategy = 'inner')\n {\n let rect = el.getBoundingClientRect();\n\n if ( event.clientY < rect.y + safezone ) {\n strategy = 'before';\n }\n\n if ( event.clientY > rect.y + rect.height - safezone ) {\n strategy = 'after';\n }\n\n if ( Dom.find(el).hasClass('n-expanded') ) {\n strategy = strategy === 'after' ? 'inner' : strategy;\n }\n\n Arr.has(['before', 'after'], strategy) ?\n this.show(el, strategy) : this.hide();\n\n\n return strategy;\n }\n\n show(el, strategy)\n {\n let offsetTop = Dom.find(el).offsetTop(this.parent);\n\n let style = {\n top: offsetTop || 1\n };\n\n if ( strategy === 'after' ) {\n style.top = offsetTop + Dom.find(el).height();\n }\n\n this.$el.css(Obj.map(style, (item) => item + 'px'));\n }\n\n hide()\n {\n this.$el.css(null);\n }\n\n destroy()\n {\n this.$el.get(0).remove();\n }\n\n}\n\nclass NDraghandler\n{\n\n uid = null;\n\n rootNode = null;\n childNodes = {};\n\n dropNodes = [];\n cacheNodes = [];\n\n strategy = 'nodrop';\n frames = 0;\n timeout = 0;\n dragcount = {};\n\n constructor(rootNode)\n {\n this.rootNode = rootNode;\n }\n\n bindRoot(frame = null)\n {\n this.DragIndicator = new NDragIndicator(frame || this.rootNode.$el);\n\n if ( window.DragCache ) {\n this.bindDragstart.call(this, ...window.DragCache);\n }\n\n Dom.find(this.rootNode.$el).on('dragenter', (event) => {\n this.onDragenterRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragover', (event) => {\n this.onDragoverRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragleave', (event) => {\n this.onDragleaveRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragend', (event) => {\n this.onDragendRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('drop', (event) => {\n this.onDragdropRoot(event);\n });\n\n Dom.find(this.rootNode.$el).on('dragdrop', (event) => {\n this.onDragdropRoot(event);\n });\n\n Event.bind('NDrag:start', this.bindDragstart.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:end', this.bindDragend.bind(this),\n this.rootNode.uid);\n\n Event.bind('NDrag:drop', this.bindDragdrop.bind(this),\n this.rootNode.uid);\n }\n\n unbindRoot()\n {\n let events = [\n 'dragstart',\n 'dragenter',\n 'dragover',\n 'dragleave',\n 'dragend',\n 'drop',\n 'dragdrop',\n ];\n\n Dom.find(this.rootNode.$el).off(events);\n\n Event.unbind('NDrag:start', this.rootNode.uid);\n Event.unbind('NDrag:end', this.rootNode.uid);\n Event.unbind('NDrag:drop', this.rootNode.uid);\n }\n\n onDragenterRoot(event)\n {\n event.preventDefault();\n }\n\n onDragoverRoot(event)\n {\n let isNode = Dom.find(event.target)\n .closest('.n-draglist-item');\n\n if ( isNode || !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n if ( this.frames && Date.now() - this.frames < 135 ) {\n return;\n }\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Any.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, null, this.strategy);\n });\n\n this.strategy = 'root';\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n this.DragIndicator.hide();\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-dragover');\n } else {\n Dom.find(this.rootNode.$el).removeClass('n-dragover');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(this.rootNode.$el).addClass('n-nodrop');\n } else {\n Dom.find(this.rootNode.$el).removeClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveRoot(event)\n {\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n }\n\n onDragendRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n Event.fire('NDrag:end');\n }\n\n onDragdropRoot(event)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(this.rootNode.$el)\n .removeClass('n-dragover n-nodrop');\n\n if ( this.strategy !== 'root' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(null, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindDragstart(group, cache)\n {\n if ( Arr.has(this.rootNode.allowGroups, group) ) {\n this.cacheNodes = JSON.parse(JSON.stringify(cache));\n }\n }\n\n bindDragend()\n {\n this.dragcount = {};\n\n this.cacheNodes = this.dropNodes = [];\n }\n\n bindDragdrop(...args)\n {\n if ( !this.dropNodes.length ) {\n return;\n }\n\n this.rootNode.tempSelected = [];\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n if ( !this.rootNode.removeNode ) {\n return;\n }\n\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n this.unlinkNodes(clone);\n this.removeNodes(clone);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n onDragstartNode(event, node)\n {\n if ( !this.rootNode.isSelected(node) ) {\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected = [node.uid]);\n }\n\n let cache = Arr.each(this.rootNode.tempSelected, (id) => {\n return Arr.find(this.rootNode.virtuals, { [this.rootNode.uniqueProp]: id });\n });\n\n window.DragCounter.get(event, cache.length);\n\n Arr.map(cache, (value) => {\n return { value, item: Obj.get(this.rootNode, value.route) };\n });\n\n Event.fire('NDrag:start', this.rootNode.group,\n this.dropNodes = cache);\n\n window.DragCache = [\n this.rootNode.group, this.dropNodes\n ];\n\n this.dragcount[node.uid] = 0;\n }\n\n onDragenterNode(event, node)\n {\n event.preventDefault();\n\n if ( !this.dragcount[node.uid] ) {\n this.dragcount[node.uid] = 0;\n }\n\n this.dragcount[node.uid] ++;\n }\n\n onDragoverNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n event.preventDefault();\n\n if ( this.frames && Date.now() - this.frames < 45 ) {\n return;\n }\n\n let safezone = this.rootNode\n .safezone(node.$el.clientHeight);\n\n this.strategy = this.DragIndicator\n .resolve(event, safezone, node.$el);\n\n let targetNode = {\n value: node.value, item: node.item\n };\n\n let allowDrop = this.rootNode.allowDrop;\n\n if ( !Any.isFunction(allowDrop) ) {\n allowDrop = () => this.rootNode.allowDrop;\n }\n\n let rainbow = Arr.each(this.cacheNodes, (node) => {\n return !!allowDrop(node, targetNode, this.strategy);\n });\n\n let isInSelf = Arr.has(node.value.cascade,\n this.rootNode.tempSelected);\n\n rainbow.push(!isInSelf);\n\n if ( Arr.has(rainbow, false) ) {\n this.strategy = 'nodrop';\n }\n\n if ( this.strategy === 'nodrop' ) {\n this.DragIndicator.hide();\n }\n\n if ( this.strategy !== 'nodrop' ) {\n Dom.find(node.$el).addClass('n-dragover');\n Dom.find(node.$el).removeClass('n-nodrop');\n }\n\n if ( this.strategy === 'nodrop' ) {\n Dom.find(node.$el).removeClass('n-dragover');\n Dom.find(node.$el).addClass('n-nodrop');\n }\n\n this.frames = Date.now();\n }\n\n onDragleaveNode(event, node)\n {\n this.dragcount[node.uid] --;\n\n if ( this.dragcount[node.uid] !== 0 ) {\n return;\n }\n\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n }\n\n onDragendNode(event, node)\n {\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n Event.fire('NDrag:end');\n\n window.DragCache = null;\n }\n\n onDragdropNode(event, node)\n {\n if ( !this.cacheNodes.length ) {\n return;\n }\n\n Dom.find(node.$el).removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n if ( this.strategy === 'nodrop' ) {\n return;\n }\n\n event.preventDefault();\n\n this.moveNodes(node, this.strategy);\n\n Event.fire('NDrag:drop');\n }\n\n bindNode(node)\n {\n if ( this.childNodes[node.uid] ) {\n this.unbindNode(node);\n }\n\n let $handle = Dom.find(node.$el);\n\n if ( this.rootNode.handle ) {\n $handle = $handle.find('[draggable]');\n }\n\n let $el = Dom.find(node.$el);\n\n $handle.on('dragstart', (event) => {\n this.onDragstartNode(event, node);\n });\n\n $el.on('dragenter', (event) => {\n this.onDragenterNode(event, node);\n });\n\n $el.on('dragover', (event) => {\n this.onDragoverNode(event, node);\n });\n\n $el.on('dragleave', (event) => {\n this.onDragleaveNode(event, node);\n });\n\n $el.on('dragend', (event) => {\n this.onDragendNode(event, node);\n });\n\n $el.on('drop', (event) => {\n this.onDragdropNode(event, node);\n });\n\n $el.on('dragdrop', (event) => {\n this.onDragdropNode(event, node);\n });\n\n this.childNodes[node.uid] = node;\n }\n\n unbindNode(node)\n {\n let $handle = Dom.find(node.$el);\n\n if ( this.rootNode.handle ) {\n $handle = $handle.find('[draggable]');\n }\n\n $handle.off('dragstart');\n\n let $el = Dom.find(node.$el);\n\n $el.off([\n 'dragenter',\n 'dragover',\n 'dragleave',\n 'dragend',\n 'drop',\n 'dragdrop',\n ]);\n\n $el.removeClass('n-dragover n-nodrop');\n\n this.DragIndicator.hide();\n\n delete this.childNodes[node.uid];\n }\n\n moveNodes(target, strategy) {\n\n if ( this.rootNode.items !== undefined ) {\n return this.moveNodesMany(target, strategy);\n }\n\n if ( this.rootNode.item !== undefined ) {\n return this.moveNodesOne(target, strategy);\n }\n\n return null;\n }\n\n moveNodesOne(target, strategy)\n {\n let clone = {\n items: [Obj.clone(this.rootNode.item)]\n };\n\n if ( this.rootNode.insertNode ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n let source = Arr.first(this.cacheNodes);\n\n this.rootNode.$emit('move', Obj.get(source, 'value.id'),\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit('moveRaw',\n source, target, strategy);\n\n this.rootNode.$emit('update:item',\n Obj.get(source, 'item'));\n }\n\n moveNodesMany(target, strategy)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n if ( this.rootNode.removeNode ) {\n this.unlinkNodes(clone);\n }\n\n if ( !this.dropNodes.length ) {\n Arr.each(this.cacheNodes, (value, key) => {\n this.cacheNodes[key]['item'] = this.rootNode.transformDrop(value.item);\n });\n }\n\n if ( this.rootNode.insertNode && strategy === 'root' ) {\n clone = this.moveNodesRoot(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'inner' ) {\n clone = this.moveNodesInto(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'before' ) {\n clone = this.moveNodesBefore(clone, target);\n }\n\n if ( this.rootNode.insertNode && strategy === 'after' ) {\n clone = this.moveNodesAfter(clone, target);\n }\n\n if ( this.rootNode.removeNode ) {\n clone = this.removeNodes(clone);\n }\n\n let sources = Arr.each(this.cacheNodes, (node) => {\n return node.item[this.rootNode.uniqueProp];\n });\n\n this.dropNodes = this.rootNode.tempSelected = [];\n\n let eventName = 'move';\n\n if ( Arr.has(window.dragMods, 18) ) {\n eventName = 'moveAlt';\n }\n\n if ( Arr.has(window.dragMods, 17) ) {\n eventName = 'moveCtrl';\n }\n\n if ( Arr.has(window.dragMods, 91) ) {\n eventName = 'moveMeta';\n }\n\n this.rootNode.$emit(eventName, sources,\n Obj.get(target, 'uid'), strategy);\n\n this.rootNode.$emit(eventName + 'Raw',\n this.cacheNodes, target, strategy);\n\n this.rootNode.$emit('update:selected',\n this.rootNode.tempSelected);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n unlinkNodes(clone)\n {\n Arr.each(this.dropNodes, (node) => {\n Obj.set(clone, node.value.route, null);\n });\n }\n\n removeNodes(clone, prop = 'items')\n {\n clone[prop] = Arr.filter(clone[prop], (node) => {\n return !!node;\n });\n\n Arr.map(clone[prop], (node) => {\n\n if ( !node[this.rootNode.childProp] ) {\n return node;\n }\n\n return this.removeNodes(node,\n this.rootNode.childProp);\n });\n\n return clone;\n }\n\n moveNodesRoot(clone)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n Arr.each(this.cacheNodes, (node) => {\n clone.items.push(node.item);\n });\n\n return clone;\n }\n\n moveNodesInto(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = [\n target.value.route,\n this.rootNode.childProp\n ].join('.');\n\n let children = Obj.get(clone,\n targetRoute, []);\n\n Arr.each(this.cacheNodes, (node) => {\n children.push(node.item);\n });\n\n Obj.set(clone, targetRoute, children);\n\n return clone;\n }\n\n moveNodesBefore(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n moveNodesAfter(clone, target)\n {\n if ( this.rootNode.disableMove ) {\n return clone;\n }\n\n let targetRoute = target.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n Arr.each(this.cacheNodes, (node, index) => {\n items.splice(target.value.index + index + 1, 0, node.item);\n });\n\n Obj.set(clone, targetRoute, items);\n\n return clone;\n }\n\n copyNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n let target = Obj.except(node.item, [], {\n [this.rootNode.uniqueProp]: UUID()\n });\n\n items.splice(node.value.index + 1,\n 0, target);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n removeNode(node)\n {\n let clone = {\n items: Obj.clone(this.rootNode.items)\n };\n\n let targetRoute = node.value.route\n .replace(/\\.[0-9]+$/, '');\n\n let items = Obj.get(clone, targetRoute);\n\n items.splice(node.value.index, 1);\n\n Obj.set(clone, targetRoute, items);\n\n this.rootNode.$emit('update:items', clone.items);\n }\n\n reduce(items, ...props)\n {\n return Arr.reduce(items, (merge, item, index) =>\n this.reduceItem(merge, item, Num.int(index), ...props), []);\n }\n\n reduceItem(merge, item, index, depth = 0, route = 'items', cascades = [])\n {\n // Get a unique id\n let unique = Obj.get(item,\n this.rootNode.uniqueProp, UUID());\n\n // Add unique to cascader\n let tempCascade = Arr.merge(cascades,\n [unique]);\n\n let virtual = {\n index: index,\n depth: depth,\n route: [route, index].join('.'),\n parent: Arr.last(cascades),\n cascade: tempCascade,\n };\n\n virtual[this.rootNode.uniqueProp] = unique;\n\n let children = Obj.get(item,\n this.rootNode.childProp, []);\n\n if ( Any.isEmpty(children) ) {\n return Arr.merge(merge, [virtual]);\n }\n\n let childRoute = [\n route, index,\n this.rootNode.childProp\n ].join('.');\n\n let props = [\n depth + 1, childRoute, tempCascade\n ]\n\n return Arr.merge(merge, [virtual],\n this.reduce(children, ...props));\n }\n\n}\n\nexport default NDraghandler;","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraglist',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n expanded: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.265;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 34;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n overflowY: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n overflowX: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n offsetY: {\n default()\n {\n return 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: UUID(),\n modifier: [],\n virtuals: [], \n visible: [], \n childNodes: {}, \n highlight: [],\n firstSelected: null,\n lastSelected: null,\n tempCurrent: this.current, \n tempExpanded: this.expanded, \n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n\n Dom.find(window).on('keydown',\n this.watchModifierDown, this._.uid);\n\n Dom.find(window).on('keyup',\n this.watchModifierUp, this._.uid);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected, \n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n Dom.find(document).off('keyup', null, this.uid);\n },\n\n watch: {\n \n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n expanded(value)\n {\n this.tempExpanded = value;\n\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchModifierDown(e)\n {\n Arr.add(this.modifier, e.which);\n },\n\n watchModifierUp(e)\n {\n Arr.remove(this.modifier, e.which);\n },\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n updateNode(node)\n {\n Obj.set(this, node.value.route, node.item);\n\n this.$emit('update:items', this.items);\n },\n\n findVirtual(unique)\n {\n let value = Arr.find(this.virtuals, (item) => {\n return item[this.uniqueProp] === unique;\n });\n\n if ( ! value ) {\n return null;\n }\n\n return {\n value, item: Obj.get(this, value.route, null)\n };\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return Arr.contains(this.tempExpanded, node.cascade.slice(0, -1));\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Any.delay(() => this.scrollTo(x, y));\n }\n\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n if ( ! this.$refs.virtualscroller ) {\n return Any.delay(() => this.scrollToIndex(index));\n }\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Any.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n let val = node;\n\n if ( !Any.isEmpty(key) ) {\n val = Obj.get(val, key);\n }\n\n if ( ! Any.isFunction(value) ) {\n value = (val) => val === value;\n }\n\n if ( ! value(val) ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n \n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n \n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent && \n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent && \n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current', \n this.tempCurrent = node.item);\n \n Event.fire('NDraglist:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible, \n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current', \n this.tempCurrent = item);\n \n Event.fire('NDraglist:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n \n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraglist:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n hasChildren(node)\n {\n return !! this.getChildren(node).length;\n },\n\n getChildren(node)\n {\n return Obj.get(node.item, this.childProp, []);\n },\n\n isExpanded(node)\n {\n return Arr.has(this.tempExpanded, node.value[this.uniqueProp]);\n },\n\n expandItem(node)\n {\n if ( ! this.hasChildren(node) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, node.value[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n expandCurrent()\n {\n if ( ! this.tempCurrent ) {\n return;\n }\n\n let children = Obj.get(this.tempCurrent, \n this.childProp);\n\n if ( Any.isEmpty(children) ) {\n return;\n }\n\n Arr.toggle(this.tempExpanded, \n this.tempCurrent[this.uniqueProp]);\n\n this.filterVirtuals();\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n toggleSingleNode(node)\n {\n Arr.toggle(this.tempSelected, this.lastSelected =\n node.value[this.uniqueProp]);\n },\n\n toggleRangeNode(node)\n {\n let indexies = [0, -1], reversed = false;\n\n if ( ! Any.isEmpty(this.lastSelected) ) {\n indexies[1] = this.getIndex(this.lastSelected);\n }\n\n indexies[0] = this.getIndex(node.value[this.uniqueProp]);\n\n if ( indexies[1] > indexies[0] ) {\n reversed = true;\n }\n\n if ( ! reversed ) {\n indexies = [indexies[1]+1, indexies[0]+1];\n }\n\n Arr.each(this.items.slice(indexies[0], indexies[1]), (item, index) => {\n Arr.toggle(this.tempSelected, item[this.uniqueProp]);\n });\n\n this.lastSelected = node.value[this.uniqueProp];\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n ! Arr.has(this.modifier, 16) || this.renderExpand ?\n this.toggleSingleNode(node) : this.toggleRangeNode(node);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let result = Arr.filter(this.visible, (item) => {\n\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n let row = {\n value: item, item: Obj.get(this, item.route)\n };\n\n return ! item.depth && canSelect(row);\n });\n\n let indexies = Arr.each(result, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.lastSelected = null;\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown', \n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown', \n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 32 ) {\n event.preventDefault();\n event.stopPropagation();\n this.expandCurrent();\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draglist__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraglistItem {...props}>\n { { default: this.$slots.default } }\n </NDraglistItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist',\n 'n-draglist--' + this.size,\n 'n-draglist--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'itemHeight', 'overflowX', 'overflowY', 'offsetX', 'offsetY',\n 'useKeys', 'uniqueProp'\n ];\n\n let props = Obj.only(this.$props, passed, {\n items: this.visible,\n onMouseenter: this.bindKeydown,\n onMouseleave: this.unbindKeydown\n });\n\n return (\n <NVirtualscroller ref=\"virtualscroller\" class={classList} {...props}>\n { { default: this.ctor('renderItem'), empty: this.ctor('renderEmpty') } }\n </NVirtualscroller>\n );\n }\n\n}\n","import { Str, Obj, Arr, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDraglistItem',\n\n inject: {\n\n NDraggable: {\n default: undefined\n }\n \n },\n\n provide()\n {\n return {\n NDraggableItem: this\n };\n },\n\n props: {\n\n value: {\n required: true\n },\n\n index: {\n required: false\n },\n\n },\n\n computed: {\n\n uid()\n {\n return Obj.get(this.value, this.NDraggable.uniqueProp);\n },\n\n item()\n {\n return Obj.get(this.NDraggable, this.value.route);\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n init: ! this.NDraggable.lazyload\n };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => {\n\n if ( this.NDraggable.draggable ) {\n this.timer = setTimeout(() => {\n this.NDraggable.drag.bindNode(this);\n }, 10);\n }\n\n this.init = true;\n }, 5);\n },\n\n beforeUnmount()\n {\n clearTimeout(this.timer);\n\n this.NDraggable.drag.unbindNode(this);\n },\n\n methods: {\n\n copy()\n {\n return this.NDraggable.drag.copyNode(this);\n },\n\n remove()\n {\n return this.NDraggable.drag.removeNode(this);\n },\n\n hasChildren()\n {\n return this.NDraggable.hasChildren(this);\n },\n\n isDisabled()\n {\n return this.NDraggable.isDisabled(this);\n },\n\n isHighlight()\n {\n return this.NDraggable.isHighlight(this);\n },\n\n isCurrent()\n {\n return this.NDraggable.isCurrent(this);\n },\n\n isDraggable()\n {\n return this.NDraggable.isDraggable(this);\n },\n\n isExpanded()\n {\n return this.NDraggable.isExpanded(this);\n },\n\n expandItem()\n {\n this.NDraggable.expandItem(this);\n },\n\n isSelected()\n {\n return this.NDraggable.isSelected(this);\n },\n\n selectItem()\n {\n this.NDraggable.selectItem(this);\n },\n\n onClick(event)\n {\n let isExpand = Dom.find(event.target)\n .closest('.n-draglist-item__expand');\n\n if ( isExpand ) {\n return;\n }\n\n this.NDraggable.setCurrent(this);\n\n if ( Arr.has(window.keyMods, 91) ) {\n this.NDraggable.selectItem(this);\n }\n\n this.NDraggable.$emit('row-click', this);\n },\n\n onDblclick()\n {\n this.NDraggable.setCurrent(this);\n\n this.NDraggable.$emit('row-dblclick', this);\n }\n\n },\n\n renderElement()\n {\n let classList = [\n 'n-draglist-item__element'\n ];\n\n if ( ! this.init ) {\n return (<div class={classList} />);\n }\n\n let props = {\n value: this.value,\n item: this.item,\n copy: this.copy,\n remove: this.remove,\n };\n\n let renderFunction = this.$slots.default;\n\n if ( this.NDraggable.renderNode ) {\n renderFunction = this.NDraggable.renderNode;\n }\n\n return (\n <div class={classList}>\n { renderFunction(props) }\n </div>\n );\n },\n\n renderSpacer()\n {\n let width = this.value.depth * \n this.NDraggable.itemOffset;\n\n if ( ! width ) {\n return null;\n }\n\n let style = {\n width: width + 'px'\n };\n\n return (\n <div class=\"n-draglist-item__spacer\" style={style}>\n { /* SPACER */ }\n </div>\n );\n },\n\n renderHandle()\n {\n if ( ! this.NDraggable.renderHandle ) {\n return null;\n }\n\n let props = {};\n\n if ( this.NDraggable.draggable && this.isDraggable() ) {\n props.draggable = true;\n }\n\n return (\n <div class=\"n-draglist-item__handle\" {...props}>\n <div class=\"n-draglist-item__ellipsis\">\n <i class={ nano.Icons.handle }></i>\n </div>\n </div>\n );\n },\n\n renderExpand()\n {\n if ( ! this.NDraggable.renderExpand ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.expandItem\n };\n\n return (\n <div class=\"n-draglist-item__expand\" {...props}>\n <div class=\"n-draglist-item__angle\">\n <i class={ nano.Icons.angleRight }></i>\n </div>\n </div>\n );\n },\n\n renderSelect()\n {\n if ( ! this.NDraggable.renderSelect ) {\n return null;\n }\n\n let props = {\n ['on' + Str.ucfirst(this.mousedown)]: this.selectItem\n };\n\n return (\n <div class=\"n-draglist-item__select\" {...props}>\n <div class=\"n-draglist-item__checkbox\">\n <i class={ nano.Icons.checked }></i>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draglist-item'\n ];\n\n if ( this.hasChildren() ) {\n classList.push('n-children');\n }\n\n if ( this.isDisabled() ) {\n classList.push('n-disabled');\n }\n\n if ( this.isSelected() ) {\n classList.push('n-selected');\n }\n\n if ( this.isExpanded() ) {\n classList.push('n-expanded');\n }\n\n if ( this.isCurrent() ) {\n classList.push('n-current');\n }\n\n if ( this.isHighlight() ) {\n classList.push('n-highlight');\n }\n\n let props = {\n onClick: this.onClick, onDblclick: this.onDblclick,\n };\n\n if ( this.NDraggable.draggable && ! this.NDraggable.handle && this.isDraggable() ) {\n props.draggable = true;\n }\n\n props['data-unique'] = this.value[this.NDraggable.uniqueProp];\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderHandle')() }\n { this.ctor('renderSpacer')() }\n { this.ctor('renderExpand')() }\n { this.ctor('renderSelect')() }\n { this.ctor('renderElement')() }\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDraggrid',\n\n model: {\n prop: 'items'\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n }\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n safezone: {\n default()\n {\n return (height) => -1;\n }\n },\n\n lazyload: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 200;\n },\n type: [Number]\n },\n\n itemWidth: {\n default()\n {\n return 150;\n },\n type: [Number]\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return true;\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: UUID(),\n virtuals: [],\n visible: [],\n childNodes: {},\n highlight: [],\n firstSelected: null,\n tempCurrent: this.current,\n tempExpanded: this.expanded,\n tempSelected: this.selected\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n let frame = this.$refs.virtualscroller.\n $refs.inner;\n\n this.drag.bindRoot(frame);\n\n this.$watch('tempSelected', this.watchSelected,\n { deep: true });\n\n this.refreshVirtuals();\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n\n Dom.find(document).off('keydown', null, this.uid);\n },\n\n watch: {\n\n items()\n {\n if ( this.scrollTopOnChange ) {\n this.scrollTo();\n }\n\n this.refreshVirtuals();\n },\n\n virtuals()\n {\n this.filterVirtuals();\n },\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n current(value)\n {\n this.tempCurrent = value;\n }\n\n },\n\n methods: {\n\n watchSelected()\n {\n if ( ! this.tempSelected.length ) {\n return this.firstSelected = null;\n }\n\n this.firstSelected = Arr.find(this.virtuals, {\n [this.uniqueProp]: this.tempSelected[0]\n });\n },\n\n refreshVirtuals()\n {\n this.virtuals = this.drag.reduce(this.items);\n\n if ( window.DEBUG_NDLIST ) {\n console.log('Total virtual items mounted: ' + this.virtuals.length);\n }\n },\n\n filterVirtuals()\n {\n this.visible = Arr.filter(this.virtuals, (node) => {\n return node.depth === 0;\n });\n },\n\n getIndex(unique)\n {\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: unique\n });\n },\n\n getCurrentIndex()\n {\n if ( ! this.tempCurrent ) {\n return -1;\n }\n\n return Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n },\n\n scrollTo(x = 0, y = 0)\n {\n this.$refs.virtualscroller.scrollTo(x, y);\n },\n\n scrollToIndex(index)\n {\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isDraggable(node)\n {\n let canDrag = this.allowDrag;\n\n if ( ! Any.isFunction(canDrag) ) {\n canDrag = () => this.allowDrag;\n }\n\n return canDrag(node);\n },\n\n isHighlight(node)\n {\n return Arr.has(this.highlight, node.value[this.uniqueProp]);\n },\n\n highlightNode(value, key = null)\n {\n clearTimeout(this.refresh);\n\n // Clear highlight items\n this.highlight = [];\n\n Arr.recursive(this.items, this.childProp, (node, cascade) => {\n\n if ( Obj.get(node, key || this.uniqueProp) !== value ) {\n return;\n }\n\n Arr.each(cascade, (item) => {\n Arr.add(this.tempExpanded, item[this.uniqueProp]);\n });\n\n Arr.add(this.highlight, node[this.uniqueProp]);\n });\n\n if ( ! this.highlight.length ) {\n return;\n }\n\n this.$nextTick(this.scrollToHighlight);\n\n this.refresh = setTimeout(() =>\n this.highlight = [], this.highlightTimeout);\n\n this.filterVirtuals();\n },\n\n scrollToHighlight()\n {\n if ( ! this.highlight.length ) {\n return;\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: Arr.first(this.highlight)\n });\n\n this.$refs.virtualscroller.scrollIntoView(index);\n },\n\n isCurrent(node)\n {\n return this.renderCurrent && this.tempCurrent &&\n node.value[this.uniqueProp] === this.tempCurrent[this.uniqueProp] ;\n },\n\n setCurrent(node)\n {\n let isSameNode = this.tempCurrent &&\n this.tempCurrent[this.uniqueProp] === node.value[this.uniqueProp];\n\n if ( isSameNode ) {\n return;\n }\n\n this.$emit('update:current',\n this.tempCurrent = node.item);\n\n Event.fire('NDraggrid:syncCurrent', node.item, this.uid);\n },\n\n setRawCurrent(index)\n {\n let route = Obj.get(this.visible,\n [index, 'route']);\n\n if ( ! route ) {\n return this.setRawCurrent(0);\n }\n\n let item = Obj.get(this, route);\n\n this.$refs.virtualscroller\n .scrollIntoView(index);\n\n this.$emit('update:current',\n this.tempCurrent = item);\n\n Event.fire('NDraggrid:syncCurrent', item, this.uid);\n },\n\n setNextCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = 0;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index++;\n }\n\n if ( index >= this.visible.length ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n setPrevCurrent()\n {\n if ( ! this.visible.length ) {\n return;\n }\n\n let reset = this.visible.length - 1;\n\n if ( ! this.tempCurrent ) {\n return this.setRawCurrent(reset);\n }\n\n let index = Arr.findIndex(this.visible, {\n [this.uniqueProp]: this.tempCurrent[this.uniqueProp]\n });\n\n if ( index !== -1 ) {\n index--;\n }\n\n if ( index < 0 ) {\n index = reset;\n }\n\n this.setRawCurrent(index);\n },\n\n syncCurrent()\n {\n return ['NDraggrid:syncCurrent', this.uid];\n },\n\n isDisabled(node)\n {\n let canSelect = this.allowSelect;\n\n if ( ! Any.isFunction(canSelect) ) {\n canSelect = () => this.allowSelect;\n }\n\n return ! canSelect(node) || (this.firstSelected &&\n node.value.depth !== this.firstSelected.depth);\n },\n\n isSelected(node)\n {\n return Arr.has(this.tempSelected, node.value[this.uniqueProp]);\n },\n\n isTotalSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length === this.tempSelected;\n },\n\n isInterSelected()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n return visible.length !== this.tempSelected &&\n this.tempSelected;\n },\n\n selectItem(node)\n {\n if ( this.isDisabled(node) ) {\n return;\n }\n\n Arr.toggle(this.tempSelected, node.value[this.uniqueProp]);\n\n this.$emit('update:selected', this.tempSelected);\n },\n\n selectAll()\n {\n let visible = Arr.filter(this.visible, (item) => {\n return ! item.depth;\n });\n\n let indexies = Arr.each(visible, (item) => {\n return item[this.uniqueProp];\n });\n\n if ( indexies.length === this.tempSelected.length ) {\n return this.$emit('update:selected', this.tempSelected = []);\n }\n\n this.$emit('update:selected', this.tempSelected = indexies);\n },\n\n unselectAll()\n {\n if ( this.tempSelected.length ) {\n this.$emit('update:selected', this.tempSelected = []);\n }\n },\n\n bindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).on('keydown',\n this.onKeydown, this.uid)\n },\n\n unbindKeydown()\n {\n if ( ! this.keyEvents ) {\n return;\n }\n\n Dom.find(document).off('keydown',\n null, this.uid)\n },\n\n onKeydown(event, el)\n {\n if ( Dom.find(el).closest('input') ) {\n return;\n }\n\n if ( event.which === 38 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setPrevCurrent();\n }\n\n if ( event.which === 40 ) {\n event.preventDefault();\n event.stopPropagation();\n // this.setNextCurrent();\n }\n }\n\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-draggrid__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entries') }\n </NEmptyIcon>\n );\n },\n\n renderItem(props)\n {\n return (\n <NDraggridItem {...Obj.except(props, ['index'])}>\n { { default: this.$slots.default } }\n </NDraggridItem>\n );\n },\n\n render()\n {\n let classList = [\n 'n-draggrid',\n 'n-draggrid--' + this.size,\n 'n-draggrid--' + this.type\n ];\n\n if ( ! this.items.length ) {\n classList.push('n-empty');\n }\n\n let passed = [\n 'threshold', 'deathzone', 'itemHeight', 'itemWidth', '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 { UUID, Num, Arr, Obj, Dom, Any, Event, Locale } from \"@kizmann/pico-js\";\nimport NDraghandler from \"../draghandler/draghandler.js\";\n\nwindow.DEBUG_NDLIST = false;\n\nexport default {\n\n name: 'NDropzone',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n renderNode: {\n default()\n {\n return null;\n }\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return true;\n }\n },\n\n removeNode: {\n default()\n {\n return true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n },\n\n provide()\n {\n return {\n NDropzone: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(),\n };\n },\n\n beforeMount()\n {\n this.drag = new NDraghandler(this);\n },\n\n mounted()\n {\n this.drag.bindRoot(this.$el);\n },\n\n beforeUnmount()\n {\n this.drag.unbindRoot();\n },\n\n renderItem()\n {\n if ( Any.isEmpty(this.item) ) {\n return null;\n }\n\n return this.$slots.default && this.$slots.default(this.item)\n },\n\n renderEmpty()\n {\n if ( ! Any.isEmpty(this.item) ) {\n return null;\n }\n\n return (\n <NEmptyIcon disabled={! this.showEmptyIcon} class=\"n-dropzone__empty\">\n { this.$slots.empty && this.$slots.empty() || this.trans('No entry') }\n </NEmptyIcon>\n );\n },\n\n render()\n {\n let classList = [\n 'n-dropzone',\n 'n-dropzone--' + this.size,\n 'n-dropzone--' + this.type\n ];\n\n if ( Any.isEmpty(this.item) ) {\n classList.push('n-empty');\n }\n\n return (\n <div class={classList}>\n {[this.ctor('renderItem')(), this.ctor('renderEmpty')()]}\n </div>\n );\n }\n\n}\n","import { UUID, Num, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NLoader',\n\n inject: {\n\n NLoader: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NLoader: this\n };\n },\n\n props: {\n\n visible: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n minimum: {\n default()\n {\n return 120;\n },\n type: [Number]\n },\n\n debounce: {\n default()\n {\n return 120;\n },\n type: [Number]\n }\n\n },\n\n data()\n {\n return {\n tempVisible: this.visible\n };\n },\n\n methods: {\n\n applyTimer()\n {\n this.timing = Date.now();\n\n if ( this.visible) {\n return this.tempVisible = this.visible;\n }\n\n this.startTimer();\n },\n\n startTimer()\n {\n let timing = Date.now() - this.timing;\n\n if ( timing < this.minimum ) {\n return this.restartTimer(timing);\n }\n\n this.timeout = setTimeout(() => this.tempVisible = false, \n this.debounce);\n },\n\n restartTimer(timing = 0) {\n Any.delay(this.startTimer, this.minimum - timing + 10);\n }\n\n },\n\n watch: {\n\n visible()\n {\n this.applyTimer();\n }\n\n },\n\n mounted()\n {\n this.applyTimer();\n },\n\n render()\n {\n let classList = [\n 'n-loader', \n 'n-loader--' + this.size, \n 'n-loader--' + this.type\n ];\n\n if ( this.tempVisible ) {\n classList.push('n-load');\n }\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { UUID, Arr, Obj, Dom, Any, Str, Locale, Event, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NResizer',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n minWidth: {\n default()\n {\n return 60;\n },\n type: [Number]\n },\n\n maxWidth: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n group: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n position: {\n default()\n {\n return 'right';\n },\n type: [String]\n },\n\n resizerWidth: {\n default()\n {\n return 6;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n sizeFixed: false,\n tempValue: this.modelValue,\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n mounted()\n {\n if ( ! this.modelValue ) {\n this.updateWidth();\n }\n\n if ( this.NScrollbar ) {\n this.bindSizechange();\n }\n\n Event.bind('NResizer:move', (...args) => {\n this.forceWidth(...args)\n }, this._.uid);\n\n Dom.find(window).on('resize', Any.debounce((...args) => {\n this.onResize(...args)\n }, 500), this._.uid);\n\n 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).css(style);\n },\n\n updateWidth()\n {\n let width = Dom.find(this.$el)\n .width();\n\n if ( width === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = width);\n\n this.updateHandle();\n },\n\n updateHandle()\n {\n let style = {};\n\n if ( this.position === 'left' ) {\n style.transform =`translateX(-${this.tempValue - this.resizerWidth}px)`\n }\n\n if ( this.position === 'right' ) {\n style.transform = `translateX(${this.tempValue - this.resizerWidth}px)`\n }\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n bindSizechange()\n {\n Dom.find(this.NScrollbar.$el).on('resized',\n Any.debounce(this.updateWidth, 50), this._.uid);\n },\n\n unbindSizechange()\n {\n Dom.find(this.NScrollbar.$el)\n .off('resized', null, this._.uid);\n },\n\n\n onResize()\n {\n if ( this.NScrollbar ) {\n return;\n }\n\n this.updateWidth();\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onLeftMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onLeftMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onLeftMousemove, 60), this._.uid);\n },\n\n onLeftMousemove(event)\n {\n this.clientX = (window.innerWidth -\n this.getTouchEvent(event).clientX);\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(-${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n onLeftMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).removeClass('n-move');\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n onRightMousedown(event)\n {\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if ( this.group.length ) {\n Event.fire('NResizer:move', this.group);\n }\n\n Dom.find(this.$el).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onRightMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onRightMousemove, 60), this._.uid);\n },\n\n onRightMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = (this.clientX + scrollX - offsetX) -\n (this.resizerWidth / 2);\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth,\n this.minWidth - this.resizerWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth,\n this.maxWidth - this.resizerWidth);\n }\n\n let style = {\n transform: `translateX(${targetWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n },\n\n onRightMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mousemove, null, this._.uid);\n Dom.find(document).off(this.mouseup, null, this._.uid);\n\n if ( ! this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = this.clientX + scrollX - offsetX;\n\n if ( this.minWidth ) {\n targetWidth = Math.max(targetWidth, this.minWidth);\n }\n\n if ( this.maxWidth ) {\n targetWidth = Math.min(targetWidth, this.maxWidth);\n }\n\n this.tempValue = Math.round(targetWidth);\n\n Dom.find(this.$el).removeClass('n-move');\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.$emit('update:modelValue', this.tempValue);\n }\n\n },\n\n renderHandle()\n {\n if ( this.disabled ) {\n return null;\n }\n\n let classList = [\n 'n-resizer__handle',\n ];\n\n let props = {};\n\n if ( this.position === 'right' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onRightMousedown;\n }\n\n if ( this.position === 'left' ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onLeftMousedown;\n }\n\n if ( this.resizerWidth ) {\n props.width = this.resizerWidth + 'px';\n }\n\n return (\n <div ref=\"handle\" class={classList} {...props}/>\n );\n },\n\n render()\n {\n let classList = [\n 'n-resizer',\n 'n-resizer--' + this.position,\n ];\n\n let style = {};\n\n if ( this.width && ! this.tempValue ) {\n style['width'] = this.width + 'px';\n }\n\n if ( this.width ) {\n style['flex-basis'] = this.width + 'px';\n }\n\n if ( this.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 { UUID, Arr, Obj, Dom, Any, 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 ( Any.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).css(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).css(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 Any.framerate(this.onLeftMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onLeftMousemove, 60), this._.uid);\n },\n\n onLeftMousemove(event)\n {\n this.clientX = (window.innerWidth -\n this.getTouchEvent(event).clientX);\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = (this.clientX + scrollX - offsetX) +\n (this.resizerWidth * 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).css(style);\n },\n\n onLeftMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n if ( !this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('right');\n\n let scrollX = Dom.find(this.$el)\n .scroll('right');\n\n let targetWidth = this.clientX + scrollX - offsetX +\n (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).removeClass('n-move');\n\n let style = {\n transform: `translateX(-${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.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 Any.framerate(this.onRightMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onRightMousemove, 60), this._.uid);\n },\n\n onRightMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = (this.clientX + scrollX - offsetX) +\n (this.resizerWidth * 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).css(style);\n },\n\n onRightMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mousemove, null, this._.uid);\n Dom.find(document).off(this.mouseup, null, this._.uid);\n\n if ( !this.clientX ) {\n return;\n }\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let scrollX = Dom.find(this.$el)\n .scroll('left');\n\n let targetWidth = (this.clientX + scrollX - offsetX) +\n (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).removeClass('n-move');\n\n let style = {\n transform: `translateX(${targetWidth - this.resizerWidth}px)`\n };\n\n Dom.find(this.$refs.handle).css(style);\n\n let frameStyle = {\n width: this.tempValue + 'px', flex: '0 0 auto'\n };\n\n Dom.find(this.$el).css(frameStyle);\n\n delete this.clientX;\n\n if ( this.group.length ) {\n Event.fire('NResizer:moved', this.group);\n }\n\n this.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 ( !Any.isEmpty(this.flex) ) {\n style['flex'] = this.flex;\n }\n\n let width = this.width;\n\n if ( Any.isNumber(width) ) {\n width = width + 'px';\n }\n\n if ( !Any.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, Any, Dom, Event, UUID } from \"@kizmann/pico-js\";\n\n\nexport default {\n\n name: 'NPopover',\n\n provide()\n {\n return {\n NPopover: this\n };\n },\n\n inject: {\n\n NPopover: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n width: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n window: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n 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: 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).previous().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 };\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 ( Any.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, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPopoverOption',\n\n inject: {\n NPopover: {\n default: undefined\n }\n },\n\n props: {\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n focus: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n active: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n iconPosition: {\n default()\n {\n return 'after';\n },\n type: [String]\n },\n\n image: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n imagePosition: {\n default()\n {\n return 'before';\n },\n type: [String]\n },\n\n clickClose: {\n default()\n {\n return true;\n },\n type: [Boolean]\n }\n\n\n },\n\n computed: {\n\n tempSize()\n {\n if ( this.NPopover ) {\n return this.NPopover.size;\n }\n\n return this.size;\n }\n\n },\n\n methods: {\n\n onClick(event)\n {\n if ( this.NPopover && this.clickClose ) {\n this.NPopover.close();\n }\n\n this.$emit('fakeclick', event);\n }\n\n },\n\n renderImage()\n {\n if ( ! this.image ) {\n return null;\n }\n\n let classList = [\n 'n-image',\n 'n-image--' + this.imagePosition,\n ];\n\n return (<img class={classList} src={this.image} />);\n },\n\n renderIcon()\n {\n if ( ! this.icon ) {\n return null;\n }\n\n let classList = [\n 'n-icon', \n 'n-icon--' + this.iconPosition,\n ];\n\n classList.push(this.icon);\n\n return (<i class={classList}></i>);\n },\n\n renderContent()\n {\n if ( this.$slots.raw ) {\n return this.$slots.raw();\n }\n\n return (\n <span>{ this.$slots.default() }</span>\n );\n },\n\n render()\n {\n let classList = [\n 'n-popover-option',\n 'n-popover-option--' + this.type,\n 'n-popover-option--' + this.tempSize,\n ];\n\n if ( this.active ) {\n classList.push('n-active');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onClick = this.onClick;\n }\n\n if ( this.disabled ) {\n props.disabled = true;\n }\n\n return (\n <a class={classList} href=\"javascript:void(0)\" {...props}>\n { this.ctor('renderImage')() }\n { this.ctor('renderContent')() }\n { this.ctor('renderIcon')() }\n </a>\n );\n }\n\n}\n","\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 { UUID, Str, Obj, Dom, Any, Arr } 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(), Any.throttle((e) => {\n this.detectFadeOnCurrent(e);\n }, 30));\n\n Dom.find(window).on(PopoverHelper.getScrollEvent(), Any.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 ( Any.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 current.hide('scroll');\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 { Any, Dom, Arr, Obj, UUID } 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 = 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 Any.framerate((e) => this.onHover(e), 30), { uid });\n }\n\n if ( trigger === 'click' ) {\n Dom.find(document.body).on(PopoverHelper.getClickEvent(),\n Any.throttle((e) => this.onClick(e), 30), { uid });\n }\n\n if ( trigger === 'context' ) {\n Dom.find(document.body).on(PopoverHelper.getContextEvent(),\n Any.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 ( Any.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 ( Any.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 ( Any.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).css(), {\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).css(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).css(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).css({ 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 { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NModal',\n\n inject: {\n\n NScrollbar: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n listen: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n update: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n selector: {\n default()\n {\n return null;\n },\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n width: {\n default()\n {\n return '50%';\n },\n type: [String]\n },\n\n height: {\n default()\n {\n return 'auto';\n },\n type: [String]\n },\n\n title: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n 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 .previous().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showModal = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Any.delay(showModal, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeModal(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-modal',\n window.zIndex);\n\n Dom.find(this.$el).css({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeModal(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-modal');\n };\n\n let indexes = Dom.find('.n-modal:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-modal');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeModal(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeModal(false, 'escape')\n };\n\n return (\n <div class=\"n-modal__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__header\">\n { [this.$slots.header && this.$slots.header({ closeModal: this.closeModal }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-modal__footer\">\n { this.$slots.footer({ closeModal: this.closeModal }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-modal__wrap\">\n { this.$slots.default && this.$slots.default({ closeModal: this.closeModal }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeModal: this.closeModal });\n }\n\n return (\n <div class=\"n-modal__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width, height: this.height\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-modal__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n return (\n <div ref=\"backdrop\" class=\"n-modal__backdrop\"></div>\n );\n },\n\n render()\n {\n if ( ! window.zIndex ) {\n window.zIndex = 9000;\n }\n\n let classList = [\n 'n-modal',\n 'n-modal--' + this.size,\n 'n-modal--' + this.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 { Arr, Obj, Num, Now, Any, Dom, Locale } from \"@kizmann/pico-js\";\nimport { h } from \"vue\";\n\nexport default {\n\n name: 'NInputNumber',\n\n inheritAttrs: false,\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return Number.MAX_VALUE;\n },\n type: [Number]\n },\n\n placeholder: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n stepSize: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n precision: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n format: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n decimals: {\n default()\n {\n return Locale.trans('.');\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n deepDisabled()\n {\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 ( Any.isNull(value) ) {\n value = this.modelValue;\n }\n\n if ( Any.isEmpty(value) ) {\n return this.min;\n }\n\n return Num.float(value);\n },\n\n getDisplayValue()\n {\n if ( Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let value = Num.format(this.tempValue,\n this.decimals, ' ', this.precision);\n\n return Locale.trans(this.format, { count: value });\n },\n\n nextStep()\n {\n if ( isNaN(this.tempValue) ) {\n this.tempValue = 0;\n }\n\n let value = this.tempValue + this.stepSize;\n\n if ( this.max < value ) {\n return;\n }\n\n value = Num.float(value).toFixed(this.precision);\n\n this.$emit('update:modelValue',\n this.tempValue = Num.float(value));\n },\n\n onNextDown()\n {\n 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 || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-input-number__clear 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 ( Any.isEmpty(this.modelValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n {this.ctor('renderPrev')()}\n {this.ctor('renderInput')()}\n {this.ctor('renderClear')()}\n {this.ctor('renderNext')()}\n </div>\n );\n }\n\n}","import { h } from \"vue\";\nimport {Obj, Any, UUID} from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTextarea',\n\n 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, Any, Locale, Dom, Num } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelect',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n },\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n theme: {\n default()\n {\n return 'dark';\n },\n type: [String]\n },\n\n lazy: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-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 Any.isEmpty(this.tempValue);\n },\n\n custom()\n {\n let result = Arr.filter(this.elements, (element) => {\n\n if ( Any.isArray(this.tempValue) ) {\n return Arr.has(this.tempValue, element.value);\n }\n\n return element.value === this.tempValue;\n });\n\n return result.length === 0;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempClear: this.clearValue,\n focus: false,\n search: '',\n index: - 1,\n elements: [],\n searched: []\n };\n },\n\n beforeMount()\n {\n if ( this.lazy ) {\n this.generateOptions();\n }\n\n if ( this.multiple && !Any.isArray(this.tempValue) ) {\n this.tempValue = [];\n }\n\n if ( this.multiple && !Any.isArray(this.clearValue) ) {\n this.tempClear = [];\n }\n\n this.searchOptions();\n },\n\n provide()\n {\n return {\n NSelect: this\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( !this.multiple && Any.isArray(value) ) {\n value = null;\n }\n\n if ( this.multiple && !Any.isArray(value) ) {\n value = [];\n }\n\n this.tempValue = value;\n },\n\n search()\n {\n this.searchOptions();\n },\n\n focus()\n {\n this.$nextTick(() => this.scrollToClosest());\n },\n\n },\n\n methods: {\n\n clear(event = null)\n {\n if ( event ) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.focusInput();\n\n this.$emit('update:modelValue',\n this.tempValue = Arr.clone(this.tempClear));\n },\n\n generateOptions()\n {\n this.elements = Arr.each(this.options, (value, index) => {\n\n let data = {\n $value: value, $index: index\n };\n\n let option = {\n label: Obj.get(data, this.optionsLabel),\n value: Obj.get(data, this.optionsValue)\n };\n\n return Obj.assign(option, {\n tempLabel: option.label, tempValue: option.value\n });\n });\n },\n\n addOption(option)\n {\n Arr.add(this.elements, option,\n { tempValue: option.tempValue });\n },\n\n removeOption(option)\n {\n Arr.remove(this.elements,\n { tempValue: option.tempValue });\n },\n\n resetInput()\n {\n this.index = - 1;\n this.search = '';\n },\n\n focusInput(event = null)\n {\n if ( event ) {\n event.preventDefault();\n }\n\n this.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 ( Any.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 Any.string(option.label || '').match(searchRegex);\n });\n },\n\n toggleOption(value, event = null)\n {\n if ( Any.isEmpty(value) ) {\n return;\n }\n\n if ( event && event.which !== 1 ) {\n return;\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n let tempValue = this.tempValue;\n\n if ( this.multiple ) {\n this.focusInput();\n }\n\n if ( !this.multiple ) {\n tempValue = value;\n }\n\n if ( this.multiple ) {\n Arr.toggle(tempValue, value);\n }\n\n this.$refs.popover.close();\n\n let denyUpdate = this.tempValue === tempValue;\n\n if ( this.multiple && !Any.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( !this.multiple && Any.isArray(this.modelValue) ) {\n denyUpdate = false;\n }\n\n if ( denyUpdate ) {\n return;\n }\n\n this.$emit('update:modelValue',\n this.tempValue = tempValue);\n },\n\n getOptionLabel(value)\n {\n let option = Arr.find(this.elements,\n { tempValue: value });\n\n if ( !option && this.allowCreate ) {\n return value;\n }\n\n if ( !option && !this.allowCreate ) {\n return this.trans(this.undefinedText);\n }\n\n return option.tempLabel;\n },\n\n selectPrev()\n {\n let newIndex = this.index - 1;\n\n if ( newIndex < 0 ) {\n newIndex = this.searched.length - 1;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n selectNext()\n {\n let newIndex = this.index + 1;\n\n if ( newIndex > this.searched.length - 1 ) {\n newIndex = 0;\n }\n\n this.index = newIndex;\n\n this.scrollToCurrent();\n },\n\n createOrToggle()\n {\n if ( this.allowCreate && this.search ) {\n return this.createOption();\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( this.searched.length === 1 ) {\n selected = Arr.first(this.searched);\n }\n\n if ( !selected || selected.disabled ) {\n return;\n }\n\n this.toggleOption(selected.tempValue);\n },\n\n createOption()\n {\n this.toggleOption(this.search);\n\n this.search = '';\n },\n\n scrollToCurrent()\n {\n if ( !this.focus ) {\n return;\n }\n\n let selected = Arr.get(this.searched,\n this.index);\n\n if ( !selected ) {\n return;\n }\n\n if ( this.$refs.scrollbar ) {\n this.$refs.scrollbar.scrollIntoView(`[data-option=\"${selected._.uid}\"]`);\n }\n\n if ( this.$refs.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 ( Any.isArray(this.tempValue) ) {\n value = Arr.first(this.tempValue);\n }\n\n if ( !value ) {\n return;\n }\n\n let index = Arr.findIndex(this.elements, {\n tempValue: value\n });\n\n if ( !index ) {\n return;\n }\n\n if ( this.$refs.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 || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( !this.deepDisabled ) {\n props.onMousedown = this.clear;\n }\n\n return (\n <div class=\"n-select__clear 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 ( !Any.isArray(this.tempValue) ) {\n return null;\n }\n\n if ( this.collapse ) {\n return this.ctor('renderLabelCollapse')();\n }\n\n return Arr.each(this.tempValue, (value) => {\n return this.ctor('renderLabelItem')(value);\n });\n },\n\n renderMultiple()\n {\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.focus ) {\n props.value = null;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = null;\n }\n\n let inputHtml = (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n );\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__items\">\n {[this.ctor('renderLabelItems')(), inputHtml]}\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderSingle()\n {\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n let modelLabel = this.getOptionLabel(\n this.tempValue);\n\n if ( isEmptyValue ) {\n modelLabel = null;\n }\n\n let props = {\n value: this.search,\n placeholder: this.placeholder,\n disabled: this.deepDisabled,\n onFocus: this.onFocusInput,\n onInput: this.onInputInput,\n onKeydown: this.onKeydownInput\n };\n\n if ( !this.search && this.custom ) {\n props.value = this.tempValue;\n }\n\n if ( !this.focus ) {\n props.value = modelLabel;\n }\n\n if ( !isEmptyValue ) {\n props.placeholder = modelLabel;\n }\n\n return [\n this.ctor('renderLabelClear')(),\n (\n <div class=\"n-select__input\">\n <input ref=\"input\" {...props} />\n </div>\n ),\n this.ctor('renderLabelAngle')()\n ];\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-select__display'\n ];\n\n if ( this.multiple ) {\n classList.push('n-multiple');\n }\n\n let displayHtml = this.ctor('renderSingle');\n\n if ( this.multiple ) {\n displayHtml = this.ctor('renderMultiple');\n }\n\n return (\n <div class={classList}>{displayHtml()}</div>\n );\n },\n\n renderItems()\n {\n let emptyHtml = (\n <div class=\"n-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 ) {\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 {Obj.values(options)}\n </NScrollbar>\n );\n },\n\n renderLazyOption(value, index)\n {\n let classList = [];\n\n let isMultipleActive = this.multiple &&\n Arr.has(this.tempValue, value.value);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.multiple &&\n this.tempValue === value.value;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.index === Num.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'type': this.type,\n 'clickClose': ! this.multiple,\n };\n\n props['onMousedown'] = (e) => {\n this.toggleOption(value.value, e);\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n {value.label}\n </NPopoverOption>\n );\n },\n\n renderLazyItems()\n {\n let props = {\n items: this.searched, 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 ( Any.isEmpty(this.options) ) {\n return this.$slots.default && this.$slots.default();\n }\n\n let optionRender = ($value, $index) => {\n\n let props = {\n label: Obj.get({ $value, $index }, this.optionsLabel, null),\n value: Obj.get({ $value, $index }, this.optionsValue, null),\n };\n\n return (<NSelectOption {...props}></NSelectOption>);\n };\n\n return Obj.values(Obj.each(this.options, optionRender));\n },\n\n render()\n {\n let classList = [\n 'n-select',\n 'n-select--' + this.type,\n 'n-select--' + this.size,\n ];\n\n let isEmptyValue = Any.isEmpty(this.tempValue) &&\n !Any.isNumber(this.tempValue);\n\n if ( isEmptyValue ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList} onClick={this.focusInput}>\n {this.ctor('renderDisplay')()}\n {this.ctor('renderPopover')()}\n {this.ctor('renderOptions')()}\n </div>\n );\n },\n\n}\n","import { Num, Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSelectOption',\n\n inheritAttrs: false,\n\n inject: {\n\n NSelect: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return '';\n }\n },\n\n label: {\n default()\n {\n return null;\n }\n },\n\n valueProp: {\n default()\n {\n return null;\n }\n },\n\n labelProp: {\n default()\n {\n return null;\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n tempValue()\n {\n if ( Any.isEmpty(this.valueProp) ) {\n return this.value;\n }\n\n return Obj.get(this.value, this.valueProp);\n },\n\n tempLabel()\n {\n if ( Any.isEmpty(this.labelProp) ) {\n return this.label;\n }\n\n return Obj.get(this.value, this.labelProp);\n }\n\n },\n\n mounted()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.addOption(this);\n }\n },\n\n beforeUnmount()\n {\n if ( ! this.NSelect.lazy ) {\n this.NSelect.removeOption(this);\n }\n },\n\n methods: {\n\n toggleItem(event) \n {\n event.preventDefault();\n\n if ( event.which !== 1 ) {\n return;\n }\n\n if ( this.disabled ) {\n return;\n }\n\n this.NSelect.toggleOption(this.tempValue, \n event);\n },\n\n },\n\n renderOption(index)\n {\n\n let classList = [];\n\n let isMultipleActive = this.NSelect.multiple && \n Arr.has(this.NSelect.tempValue, this.tempValue);\n\n if ( isMultipleActive ) {\n classList.push('n-active');\n }\n\n let isSingleActive = ! this.NSelect.multiple && \n this.NSelect.tempValue === this.tempValue;\n\n if ( isSingleActive ) {\n classList.push('n-active');\n }\n\n if ( this.NSelect.index === Num.int(index) ) {\n classList.push('n-focus');\n }\n\n let props = {\n 'disabled': this.disabled,\n 'onMousedown': this.toggleItem,\n 'type': this.NSelect.type,\n 'clickClose': ! this.NSelect.multiple,\n };\n\n if ( isSingleActive || isMultipleActive ) {\n props.icon = nano.Icons.checked;\n }\n\n // Required for scrolldown\n props['data-option'] = this._.uid;\n\n return (\n <NPopoverOption class={classList} {...props}>\n { this.$slots.default && this.$slots.default() || this.tempLabel }\n </NPopoverOption>\n );\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Arr, Obj, Any, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckbox',\n\n inject: {\n\n NCheckboxGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n value: {\n default()\n {\n return null;\n }\n },\n\n allowUncheck: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n intermediate: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n global: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n tempComputed()\n {\n return ! this.global ? this.tempChecked :\n this.NCheckboxGroup.globalChecked;\n },\n\n tempIntermediate()\n {\n return ! this.global ? this.intermediate :\n this.NCheckboxGroup.globalIntermediate;\n },\n\n tempDisabled()\n {\n return ! this.global ? this.disabled :\n this.NCheckboxGroup.globalDisabled;\n }\n\n },\n\n data()\n {\n return {\n uid: UUID(), tempChecked: this.modelValue\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempChecked ) {\n this.tempChecked = value;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NCheckboxGroup ) {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( ! this.NCheckboxGroup || this.global ) {\n return;\n }\n\n this.$watch('NCheckboxGroup.tempValue', () => {\n this.tempChecked = this.NCheckboxGroup.isChecked(this.value);\n });\n\n this.NCheckboxGroup.addCheckbox(this);\n },\n\n beforeUnmount()\n {\n if ( this.NCheckboxGroup && ! this.global ) {\n this.NCheckboxGroup.removeCheckbox(this);\n }\n },\n\n methods: {\n\n toggle()\n {\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n check()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.checkCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n uncheck()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.uncheckCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = false);\n },\n\n eventShiftClick()\n {\n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.shiftCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n eventLocalClick(event)\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n event.preventDefault();\n\n if ( event.shiftKey ) {\n return this.eventShiftClick();\n }\n \n if ( this.NCheckboxGroup ) {\n this.NCheckboxGroup.toggleCheckbox(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = ! this.tempChecked);\n },\n\n eventGlobalClick()\n {\n let canClick = ! this.tempDisabled || (this.allowUncheck &&\n this.tempChecked);\n\n if ( ! canClick ) {\n return;\n }\n\n this.NCheckboxGroup.toggleAll();\n },\n\n updateFromGroup()\n {\n let checked = this.NCheckboxGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderCheckbox()\n {\n let interHtml = this.$slots.intermediate &&\n this.$slots.intermediate();\n\n if ( ! interHtml ) {\n interHtml = (<i class={nano.Icons.intermediate}></i>);\n }\n\n let checkHtml = this.$slots.checked &&\n this.$slots.checked();\n\n if ( ! checkHtml ) {\n checkHtml = (<i class={nano.Icons.checked}></i>);\n }\n\n return (\n <div class=\"n-checkbox__checkbox\">\n { this.tempIntermediate ? interHtml : checkHtml }\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.cslo('default') && ! this.cslo('label') ) {\n return null;\n }\n\n return (\n <div class=\"n-checkbox__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let size = this.size;\n\n if ( this.NCheckboxGroup ) {\n size = this.NCheckboxGroup.size;\n }\n\n let classList = [\n 'n-checkbox',\n 'n-checkbox--' + size,\n 'n-checkbox--' + this.type,\n ];\n\n if ( this.allowUncheck ) {\n classList.push('n-uncheck');\n }\n\n if ( this.tempComputed ) {\n classList.push('n-checked');\n }\n\n if ( this.tempIntermediate ) {\n classList.push('n-intermediate');\n }\n\n if ( this.tempDisabled ) {\n classList.push('n-disabled');\n }\n\n if ( this.tempComputed && this.allowUncheck ) {\n Arr.remove(classList, 'n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( this.global ) {\n props.onMousedown = this.eventGlobalClick;\n }\n\n if ( ! this.global ) {\n props.onMousedown = this.eventLocalClick;\n }\n\n return (\n <div class={classList} {...props}>\n { [this.ctor('renderCheckbox')(), this.ctor('renderLabel')()] }\n </div>\n );\n }\n\n}\n","import { Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCheckboxGroup',\n\n provide()\n {\n return {\n NCheckboxGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n globalChecked()\n {\n let checked = Arr.filter(this.elements, (checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length === this.elements.length &&\n this.elements.length !== 0;\n },\n\n globalIntermediate()\n {\n let checked = this.elements.filter((checkbox) => {\n return checkbox.tempChecked;\n });\n\n return checked.length !== this.elements.length &&\n checked.length !== 0 ;\n },\n\n globalDisabled()\n {\n return this.elements.length === 0;\n },\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n index: -1,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.tempValue = this.modelValue ) {\n this.tempValue = this.modelValue;\n }\n \n },\n\n },\n\n methods: {\n\n addCheckbox(checkbox)\n {\n this.index = -1;\n\n Arr.add(this.elements, checkbox, {\n uid: checkbox.uid\n });\n\n this.elements = Arr.sort(this.elements, 'sort');\n },\n\n removeCheckbox(checkbox)\n {\n this.index = -1;\n \n Arr.remove(this.elements, {\n uid: checkbox.uid\n });\n },\n\n toggleCheckbox(checkbox, emit = true)\n {\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n if ( ! checkbox.tempChecked ) {\n this.index = index;\n }\n\n Arr.toggle(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n checkCheckbox(checkbox, emit = true)\n {\n Arr.add(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckCheckbox(checkbox, emit = true)\n {\n Arr.remove(this.tempValue, checkbox.value);\n\n if ( ! emit ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n shiftCheckbox(checkbox)\n {\n if ( this.index === -1 ) {\n return this.toggleCheckbox(checkbox, false);\n }\n\n let index = Arr.findIndex(this.elements, {\n uid: checkbox.uid\n });\n\n let checkboxes = this.elements.slice(this.index, index + 1);\n\n if ( index < this.index ) {\n checkboxes = this.elements.slice(index, this.index + 1);\n }\n\n this.index = -1;\n\n Arr.each(checkboxes, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(checkboxes, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n toggleAll()\n {\n this.globalChecked ? this.uncheckAll() : this.checkAll();\n },\n\n checkAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.checkCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n uncheckAll()\n {\n Arr.each(this.elements, (checkbox) => {\n this.uncheckCheckbox(checkbox, false);\n });\n\n Arr.each(this.elements, (checkbox) => {\n checkbox.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return Arr.has(this.tempValue, value);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-checkbox-group',\n 'n-checkbox-group--' + this.size,\n 'n-checkbox-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n {this.$slots.default()}\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadio',\n\n model: {\n prop: 'checked'\n },\n\n inject: {\n\n NRadioGroup: {\n default: undefined\n }\n\n },\n\n props: {\n\n value: {\n default()\n {\n return null;\n }\n },\n\n checked: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n uid()\n {\n return this._.uid;\n }\n\n },\n\n data()\n {\n return {\n tempChecked: this.checked\n };\n },\n\n watch: {\n\n checked()\n {\n if ( this.checked !== this.tempChecked ) {\n this.tempChecked = this.checked;\n }\n }\n\n },\n\n beforeMount()\n {\n if ( this.NRadioGroup ) {\n this.tempChecked = this.NRadioGroup.isChecked(this.value);\n }\n },\n\n mounted()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.addRadio(this);\n }\n },\n\n beforeUnmount()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.removeRadio(this);\n }\n },\n\n methods: {\n\n check()\n {\n if ( this.NRadioGroup ) {\n this.NRadioGroup.checkRadio(this);\n }\n\n this.$emit('update:modelValue', this.tempChecked = true);\n },\n\n updateFromGroup()\n {\n let checked = this.NRadioGroup.isChecked(this.value);\n\n if ( this.tempChecked === checked ) {\n return;\n }\n \n this.$emit('update:modelValue', this.tempChecked = checked);\n }\n\n },\n\n renderRadio()\n {\n return (\n <div class=\"n-radio__radio\">\n <span></span>\n </div>\n );\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default && ! this.$slots.label ) {\n return null;\n }\n\n return (\n <div class=\"n-radio__label\">\n { this.$slots.default() || this.$slots.label() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-radio',\n 'n-radio--' + this.size,\n 'n-radio--' + this.type,\n ];\n\n if ( this.tempChecked ) {\n classList.push('n-checked');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n let props = Obj.clone(this.$attrs);\n\n if ( ! this.disabled ) {\n props.onMousedown = this.check;\n }\n\n return (\n <div class={classList} {...props}>\n { this.ctor('renderRadio')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRadioGroup',\n\n provide()\n {\n return {\n NRadioGroup: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'horizontal';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n elements: []\n }\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n },\n\n },\n\n methods: {\n\n addRadio(radio)\n {\n Arr.add(this.elements, radio, {\n uid: radio.uid\n });\n },\n\n removeRadio(radio)\n {\n Arr.remove(this.elements, {\n uid: radio.uid\n });\n },\n\n checkRadio(radio)\n {\n this.tempValue = radio.value;\n \n Arr.each(this.elements, (radio) => {\n radio.updateFromGroup();\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n isChecked(value)\n {\n return this.tempValue === value;\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-radio-group',\n 'n-radio-group--' + this.size,\n 'n-radio-group--' + this.align,\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Obj, Arr, Any, Num, Dom, Event } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSlider',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n steps: {\n default()\n {\n return 1;\n }\n },\n\n labels: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n min: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n index: 0, width: null, tempValue: [null, null]\n };\n },\n\n computed: {\n\n selector()\n {\n return `[data-index=\"${this.index}\"]`;\n },\n\n fixmin()\n {\n return Any.isArray(this.steps) ? Arr.first(this.steps) : this.min;\n },\n\n fixmax()\n {\n return Any.isArray(this.steps) ? Arr.last(this.steps) : this.max;\n },\n\n minmax()\n {\n return this.fixmax - this.fixmin;\n },\n\n touch() {\n return !! ('ontouchstart' in window ||\n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n },\n\n watch: {\n\n modelValue()\n {\n this.getPseudoValue();\n }\n\n },\n\n mounted()\n {\n Dom.find(window).on('resize',\n Any.debounce(this.onResize, 500), this._.uid);\n\n this.onResize();\n this.getPseudoValue();\n },\n\n unmounted()\n {\n Dom.find(window).off('resize',\n null, this._.uid);\n },\n\n methods: {\n\n onResize()\n {\n this.width = Dom.find(this.$el).width();\n },\n\n getPseudoValue()\n {\n let value = this.modelValue;\n\n if ( Any.isNull(value) ) {\n value = this.fixmax;\n }\n if ( ! Any.isArray(value) ) {\n value = [this.fixmin, value];\n }\n\n return this.tempValue = value;\n },\n\n setModelValue()\n {\n let value = this.tempValue;\n\n if ( ! this.range ) {\n value = this.tempValue[1];\n }\n\n this.$emit('update:modelValue', value);\n },\n\n getValPos(value)\n {\n return Num.fixed(this.width / this.minmax * (value - this.fixmin), 2) + 'px';\n },\n\n getValStyle(value)\n {\n return 'transform: translateX(' + this.getValPos(value) + ');';\n },\n\n getBarPos()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[0] - this.fixmin), 2) + 'px';\n },\n\n getBarWidth()\n {\n return Num.fixed(this.width / this.minmax * (this.tempValue[1] - this.tempValue[0]), 2) + 'px';\n },\n\n getBarStyle()\n {\n return 'max-width: ' + this.getBarWidth() + '; ' +\n 'transform: translateX(' + this.getBarPos() + ');';\n },\n\n getClosestValue(width)\n {\n if ( Any.isNumber(this.steps) ) {\n return Num.round(width / this.steps) * this.steps;\n }\n\n let range = Arr.last(this.steps) -\n Arr.first(this.steps);\n\n let diff = Arr.each(this.steps, (step) => {\n return Math.abs((range / 100 * width) - step + this.fixmin);\n });\n\n let index = Arr.findIndex(diff, Math.min(...diff));\n\n return this.steps[index];\n },\n\n getTouchEvent(event)\n {\n if ( ! this.touch ) {\n return event;\n }\n\n return event.touches[0] || event.changedTouches[0];\n },\n\n onMousedown(event)\n {\n if ( this.disabled ) {\n return;\n }\n\n if ( ! Arr.has([0, 1], event.which) ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(this.$el).find(this.selector).addClass('n-move');\n Dom.find(document.body).addClass('n-move');\n\n Dom.find(document).on(this.mouseup,\n Any.framerate(this.onMouseup, 60), this._.uid);\n\n Dom.find(document).on(this.mousemove,\n Any.framerate(this.onMousemove, 60), this._.uid);\n },\n\n onMousemove(event)\n {\n this.clientX = this.getTouchEvent(event).clientX;\n\n let offsetX = Dom.find(this.$el)\n .offset('left');\n\n let relativeWidth = (this.clientX - offsetX) / this.width * 100;\n\n let closestValue = this.getClosestValue(relativeWidth);\n\n if ( closestValue < this.fixmin ) {\n closestValue = this.fixmin;\n }\n\n if ( closestValue > this.fixmax ) {\n closestValue = this.fixmax;\n }\n\n let stepMin = this.tempValue[0] + this.steps;\n\n if ( this.index === 1 && closestValue < stepMin ) {\n closestValue = stepMin;\n }\n\n let stepMax = this.tempValue[1] - this.steps;\n\n if ( this.index === 0 && closestValue > stepMax ) {\n closestValue = stepMax;\n }\n\n this.tempValue[this.index] = closestValue;\n },\n\n onMouseup(event)\n {\n event.preventDefault();\n event.stopPropagation();\n\n Dom.find(document).off(this.mouseup, null, this._.uid);\n Dom.find(document).off(this.mousemove, null, this._.uid);\n\n Dom.find(this.$el).find(this.selector).removeClass('n-move');\n Dom.find(document.body).removeClass('n-move');\n\n this.setModelValue();\n },\n\n },\n\n renderHandle(value, index)\n {\n let handleProps = {\n 'data-value': value,\n 'data-index': index,\n style: this.getValStyle(value)\n };\n\n handleProps['onMousedown'] = (event) => {\n this.onMousedown(event, this.index = index);\n };\n\n let [key, tooltip] = [\n Arr.findIndex(this.steps, value), Obj.get(this.labels, key, value)\n ];\n\n return (\n <div class=\"n-slider__handle\" data-tooltip={tooltip} {...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, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NSwitch',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return false;\n }\n },\n\n onValue: {\n default()\n {\n return true;\n }\n },\n\n offValue: {\n default()\n {\n return false;\n }\n },\n\n onType: {\n default()\n {\n return 'primary';\n }\n },\n\n offType: {\n default()\n {\n return 'default';\n }\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n eventClick()\n {\n let tempValue = this.onValue;\n\n if ( this.tempValue === this.onValue ) {\n tempValue = this.offValue;\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n }\n\n },\n\n watch: {\n\n modelValue()\n {\n if ( this.modelValue !== this.tempValue ) {\n this.tempValue = this.modelValue;\n }\n }\n\n },\n\n renderSwitch()\n {\n let classList = [\n 'n-switch__switch'\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n <span></span>\n </div>\n )\n },\n\n renderLabel()\n {\n if ( ! this.$slots.default ) {\n return null;\n }\n\n let classList = [\n 'n-switch__label',\n ];\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.eventClick;\n }\n\n return (\n <div class={classList} {...props}>\n { this.$slots.default() }\n </div>\n )\n },\n\n render()\n {\n let classList = [\n 'n-switch',\n 'n-switch--' + this.size\n ];\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-switch--' + this.onType);\n }\n\n if ( this.tempValue === this.offValue) {\n classList.push('n-switch--' + this.offType);\n }\n\n if ( this.tempValue === this.onValue ) {\n classList.push('n-on');\n }\n\n if ( this.tempValue === this.offValue ) {\n classList.push('n-off');\n }\n\n if ( this.deepDisabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderSwitch')() }\n { this.ctor('renderLabel')() }\n </div>\n );\n }\n\n}\n","import { Obj, Locale, Dom, Arr, Any } 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 .previous().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 ( Any.isEmpty(nodes) ) {\n return fallback;\n }\n\n let html = [];\n\n nodes.map((el) => {\n\n if ( !Any.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 { Any, Arr, Dom, Locale, Obj, UUID } 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: UUID()\n });\n }\n\n close(next)\n {\n this.unbindEvents();\n this.modal.remove();\n\n Dom.find(document.body).css({\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 ( Any.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 ( Any.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 Any.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 ( Any.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).css({\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 }\n}\n\nexport default ConfirmHandler;","import { Arr, Obj, Any, Str } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascaderPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n hover: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n trigger: {\n default()\n {\n return 'hover';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n valueProp: {\n default()\n {\n return 'value';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n disabledProp: {\n default()\n {\n return 'disabled';\n },\n type: [String]\n },\n\n },\n\n computed: {\n\n touch() {\n return !! ('ontouchstart' in window || \n navigator.msMaxTouchPoints);\n },\n\n mousedown() {\n return this.touch ? 'touchstart' :\n 'mousedown';\n },\n\n mousemove() {\n return this.touch ? 'touchmove' :\n 'mousemove';\n },\n\n mouseup() {\n return this.touch ? 'touchend' :\n 'mouseup';\n }\n\n },\n\n data()\n {\n return {\n tempValue: this.modelValue,\n tempHover: this.hover,\n };\n },\n\n watch: {\n\n modelValue(value) {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n hover(value) {\n if ( value !== this.tempHover ) {\n this.tempHover = value;\n }\n }\n\n },\n\n methods: {\n\n clearCascader()\n {\n this.$emit('update:modelValue', this.tempHover = \n this.tempValue = this.clearValue);\n },\n\n onHover(cascade)\n {\n return (event) => this.hoverItem(cascade, event)\n },\n\n onSelect(cascade)\n {\n return (event) => this.selectItem(cascade, event)\n },\n\n hoverItem(cascade, event = null)\n {\n // Hover intend emulation\n clearTimeout(this.delay);\n\n let updateHover = () => {\n this.$emit('update:hover', \n this.tempHover = cascade);\n };\n\n this.delay = setTimeout(updateHover, 130);\n },\n\n selectItem(cascade, event = null)\n {\n clearTimeout(this.clickTimer);\n\n if ( ! this.lastclick ) {\n this.lastclick = 0;\n }\n\n this.lastclick++;\n\n let trigger = this.touch ? 'click' : \n this.trigger ;\n \n this.clickTimer = setTimeout(() => \n this.lastclick = 0, 240);\n\n this.hoverTimer = setTimeout(() => \n this.hoverItem(cascade), 240);\n\n if ( this.lastclick === 1 && trigger === 'click' ) {\n return this.hoverItem(cascade, event);\n }\n\n if ( event ) {\n event.preventDefault();\n }\n\n this.clickTimer = setTimeout(() => \n this.fireSelectItem(cascade), 50);\n },\n\n fireSelectItem(cascade)\n {\n clearTimeout(this.hoverTimer);\n\n this.lastclick = 0;\n\n this.$emit('update:modelValue', \n this.tempValue = cascade);\n }\n\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabel')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n )\n },\n\n renderOption(item, cascade = [])\n {\n let value = Obj.get(item, this.valueProp);\n\n let classList = [\n 'n-popover-option'\n ];\n\n if ( Arr.has(this.tempValue, item[this.valueProp]) ) {\n classList.push('n-active');\n }\n\n let disabled = Obj.get(item, this.disabledProp, false);\n\n if ( disabled ) {\n classList.push('n-disabled');\n }\n\n let props = {\n size: this.size,\n type: this.type,\n clickClose: false\n };\n\n if ( Arr.last(this.tempValue) === value ) {\n props.icon = nano.Icons.checked;\n }\n\n let tempCascade = Arr.merge(Arr.clone(cascade), [value]);\n\n if ( this.trigger === 'hover' ) {\n props.onMousemove = Any.framerate(this.onHover(tempCascade), 30);\n }\n\n if ( ! disabled ) {\n props['on' + Str.ucfirst(this.mousedown)] = this.onSelect(tempCascade);\n }\n\n let children = Obj.get(item, this.childProp);\n\n if ( ! props.icon && ! Any.isEmpty(children) ) {\n props.icon = nano.Icons.angleRight;\n }\n\n return (\n <NPopoverOption class={classList} {...props}>\n { Obj.get(item, this.labelProp) }\n </NPopoverOption>\n );\n },\n\n renderOptions(items, cascade = [])\n {\n if ( Any.isEmpty(items) ) {\n return null;\n }\n\n return (\n <div class=\"n-cascader-panel__items\">\n <NScrollbar relative={true}>\n {\n Arr.each(items, (item) => {\n return this.ctor('renderOption')(item, cascade);\n })\n }\n </NScrollbar>\n </div>\n )\n },\n\n renderCascade()\n {\n let renderList = [\n this.ctor('renderOptions')(this.options)\n ];\n\n let items = this.options, cascade = [];\n\n Arr.each(this.tempHover, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n cascade.push(value);\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let options = this.ctor('renderOptions')\n (items, cascade);\n\n renderList.push(options);\n });\n\n return renderList;\n },\n\n render()\n {\n let classList = [\n 'n-cascader-panel',\n 'n-cascader-panel--' + this.size\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>{ this.ctor('renderCascade')() }</div>\n );\n }\n\n}","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCascader',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n clearValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Please select';\n },\n type: [String]\n },\n\n 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 || Any.isEmpty(this.tempValue) ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearCascader;\n }\n\n return (\n <div class=\"n-cascader__clear 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 ( Any.isEmpty(this.tempValue) ) {\n return (\n <div class=\"n-cascader__placeholder\">\n { this.trans(this.placeholder) }\n </div>\n );\n }\n\n Arr.each(this.tempValue, (value) => {\n\n if ( ! items ) {\n return;\n }\n\n let item = Arr.find(items, {\n [this.valueProp]: value\n });\n\n items = Obj.get(item, this.childProp);\n\n let itemLabel = (\n <div class=\"n-cascader__item\">\n <span>{ Obj.get(item, this.labelProp) }</span>\n </div>\n );\n\n renderList.push(itemLabel);\n });\n\n return (\n <div class=\"n-cascader__items\">\n { renderList }\n </div>\n );\n },\n\n renderDisplay()\n {\n let classList = [\n 'n-cascader__display'\n ];\n\n return (\n <div class={classList}>\n { this.ctor('renderLabelClear')() }\n { this.ctor('renderLabelItems')() }\n { this.ctor('renderLabelAngle')() }\n </div>\n );\n },\n\n renderItems()\n {\n let 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 ( Any.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 ( Any.isEmpty(this.tempValue) ) {\n classList.push('n-empty');\n }\n\n if ( this.clearable ) {\n classList.push('n-clearable');\n }\n\n if ( this.focus ) {\n classList.push('n-focus');\n }\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderDisplay')() }\n {this.ctor('renderPopover')()}\n </div>\n );\n }\n\n}","import { Arr, Str, Now, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su',\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', \n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n yearsGrid()\n {\n return this.tempCache.getYears();\n },\n\n monthsGrid()\n {\n return this.tempCache.getMonths();\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n tempView: 'date',\n tempRanger: null,\n cacheArrive: null,\n cacheDepart: null,\n tempValue: Now.make(this.modelValue, this.format),\n tempCache: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive),\n tempDepart: Now.make(this.depart),\n }\n },\n\n methods: {\n\n gotoDate()\n {\n this.tempView = 'date';\n },\n\n gotoMonth()\n {\n this.tempView = 'month';\n },\n\n gotoYear()\n {\n this.tempView = 'year';\n },\n\n patchDate(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n if ( Any.isEmpty(this.modelValue) ) {\n now.resetTime();\n } else {\n now.applyTime(this.tempValue);\n }\n\n // Copy now to cache\n this.tempCache = now.clone();\n\n // Copy now to value\n this.tempValue = now.clone();\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n patchMonth(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoDate();\n },\n\n printRange(now)\n {\n this.tempRanger = now.clone();\n },\n\n patchYear(now)\n {\n if ( Any.isString(now) ) {\n now = Now.make(now);\n }\n\n this.tempCache = now.clone();\n\n this.gotoMonth();\n },\n\n patchRange(now)\n {\n if ( this.cacheArrive && ! this.cacheDepart ) {\n this.cacheDepart = now.clone();\n }\n\n if ( ! this.cacheArrive && ! this.cacheDepart ) {\n this.cacheArrive = now.clone();\n }\n\n if ( ! this.cacheArrive || ! this.cacheDepart ) {\n return;\n }\n\n this.tempArrive = this.cacheArrive.clone();\n this.tempDepart = this.cacheDepart.clone();\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n\n this.cacheArrive = null;\n this.cacheDepart = null;\n\n this.$emit('rangeSelected', [\n this.tempArrive.format(this.format),\n this.tempDepart.format(this.format)\n ]);\n },\n\n },\n\n renderToolbarPrev(closure)\n {\n let props = {\n type: this.type,\n 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()]\n ];\n\n let month = this.tempCache.clone()\n .addMonths(this.monthPanels - 1);\n\n if ( month.month() !== this.tempCache.month() ) {\n monthsHtml.push(this.months[month.month()]);\n }\n\n return (\n <span class=\"n-datepicker-panel__month\" {...props}>\n { monthsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbarYear()\n {\n let props = {\n onClick: this.gotoYear\n };\n\n let yearsHtml = [\n this.tempCache.year()\n ];\n\n let month = this.tempCache.clone()\n .addMonths(this.monthPanels - 1);\n\n if ( month.year() !== this.tempCache.year() ) {\n yearsHtml.push(month.year());\n }\n\n return (\n <span class=\"n-datepicker-panel__year\" {...props}>\n { yearsHtml.join(' - ') }\n </span>\n );\n },\n\n renderToolbar({ prev, next })\n {\n return (\n <div class=\"n-datepicker-panel__toolbar\">\n <div class=\"n-datepicker-panel__display\">\n { this.ctor('renderToolbarMonth')() }\n { this.ctor('renderToolbarYear')() }\n </div>\n <div class=\"n-datepicker-panel__prev\">\n { this.ctor('renderToolbarPrev')(prev) }\n </div>\n <div class=\"n-datepicker-panel__next\">\n { this.ctor('renderToolbarNext')(next) }\n </div>\n </div>\n );\n },\n\n renderDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate() ) {\n classList.push('n-today');\n }\n\n let isSelected = this.tempValue.valid() && \n now.equalDate(this.tempValue);\n\n if ( isSelected ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchDate(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderRangeDateItem(now, month)\n {\n let classList = [\n 'n-datepicker-panel__day'\n ];\n\n if ( now.equalDate('now') ) {\n classList.push('n-today');\n }\n\n if ( now.month() === month.month() ) {\n classList.push('n-current');\n }\n\n let viewMode = 0;\n\n if ( !! this.cacheArrive ) {\n viewMode++;\n }\n\n if ( !! this.cacheDepart ) {\n viewMode++;\n }\n\n let isTempValid = this.tempArrive.valid() && \n this.tempDepart.valid();\n\n if ( viewMode === 0 && isTempValid ) {\n\n if ( now.between(this.tempArrive, this.tempDepart) ) {\n classList.push('n-between');\n classList.push('n-selected');\n }\n\n let arriveFirst = this.tempArrive.before(this.tempDepart);\n\n if ( now.equalDate(this.tempArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n classList.push('n-selected');\n }\n\n if ( now.equalDate(this.tempDepart) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n classList.push('n-selected');\n }\n\n }\n\n if ( viewMode === 1 && this.cacheArrive ) {\n\n if ( now.between(this.cacheArrive, this.tempRanger) ) {\n classList.push('n-between');\n }\n\n let arriveFirst = this.cacheArrive.before(this.tempRanger);\n\n if ( now.equalDate(this.cacheArrive) ) {\n classList.push(arriveFirst ? 'n-arrive' : 'n-depart');\n }\n\n if ( now.equalDate(this.tempRanger) ) {\n classList.push(arriveFirst ? 'n-depart' : 'n-arrive');\n }\n\n }\n\n let isNotBeforeMin = ! this.minDate || \n now.after(this.minDate) || now.equalDate(this.minDate);\n\n let isNotAfterMax = ! this.maxDate || \n now.before(this.maxDate) || now.equalDate(this.maxDate);\n\n if ( ! isNotBeforeMin || ! isNotAfterMax ) {\n classList.push('n-disabled');\n }\n\n let props = {\n onMouseenter: () => this.printRange(now)\n };\n\n if ( isNotBeforeMin && isNotAfterMax ) {\n props.onClick = () => this.patchRange(now);\n }\n\n return (\n <div class={classList} {...props}>\n <span>{ now.format('DD') }</span>\n </div>\n );\n },\n\n renderDate()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevMonth();\n };\n let next = () => {\n this.tempCache = this.tempCache.nextMonth();\n };\n\n let legendHtml = (\n Arr.each(this.weekdays, (day) => {\n return (\n <div class=\"n-datepicker-panel__day\">\n <span>{ this.trans(day) }</span>\n </div>\n );\n })\n );\n\n let renderItem = this.ctor('renderDateItem');\n\n if ( this.range ) {\n renderItem = this.ctor('renderRangeDateItem');\n }\n\n let bodyHtml = (month) => (\n Arr.each(Arr.chunk(month.getDatesGrid(), 7), (chunks) => {\n return (\n <div class=\"n-datepicker-panel__week\">\n { Arr.each(chunks, (chunk) => renderItem(chunk, month)) }\n </div>\n );\n })\n );\n\n let panelHtml = (\n Arr.each(Arr.make(this.monthPanels), (offset) => {\n\n let month = this.tempCache.clone()\n .addMonths(offset - 1);\n\n return (\n <div class=\"n-datepicker-panel__panel\">\n <div class=\"n-datepicker-panel__legend\">\n { legendHtml }\n </div>\n <div class=\"n-datepicker-panel__body\">\n { bodyHtml(month) }\n </div>\n </div>\n );\n })\n );\n\n return (\n <div class=\"n-datepicker-panel__dateview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__panels\">\n { panelHtml }\n </div>\n </div>\n );\n },\n\n renderMonthItem(now)\n {\n let classList = [\n 'n-datepicker-panel__month'\n ];\n\n if ( now.equal(this.tempCache, 'YYYYMM') ) {\n classList.push('n-selected');\n }\n\n if ( now.month() === Now.make('now').month() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchMonth(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ this.trans(this.months[now.month()]) }</span>\n </div>\n )\n },\n\n renderMonth()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevYear();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextYear();\n };\n\n return (\n <div class=\"n-datepicker-panel__monthview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__year\">\n { Arr.each(this.monthsGrid, this.ctor('renderMonthItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n renderYearItem(now)\n {\n let classList = [\n 'n-datepicker-panel__year'\n ];\n\n if ( now.equal(this.tempCache, 'YYYY') ) {\n classList.push('n-selected');\n }\n\n if ( now.year() === Now.make('now').year() ) {\n classList.push('n-current');\n }\n\n let props = {\n onClick: () => this.patchYear(now)\n };\n\n return (\n <div class={classList} {...props}>\n <span>{ now.year() }</span>\n </div>\n )\n },\n\n renderYear()\n {\n let prev = () => {\n this.tempCache = this.tempCache.prevDecade();\n };\n\n let next = () => {\n this.tempCache = this.tempCache.nextDecade();\n };\n\n return (\n <div class=\"n-datepicker-panel__yearview\">\n <div class=\"n-datepicker-panel__header\">\n { this.ctor('renderToolbar')({ prev, next }) }\n </div>\n <div class=\"n-datepicker-panel__body\">\n <div class=\"n-datepicker-panel__decade\">\n { Arr.each(this.yearsGrid, this.ctor('renderYearItem')) }\n </div>\n </div>\n <div class=\"n-datepicker-panel__footer\">\n <NButton size={this.type} size={this.size} link={true} onClick={this.gotoDate}>\n { this.trans('Go back') }\n </NButton>\n </div>\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-datepicker-panel',\n 'n-datepicker-panel--' + this.size,\n 'n-datepicker-panel--' + this.type\n ]\n\n return (\n <div class={classList}>\n { this.ctor('render' + Str.ucfirst(this.tempView))() }\n </div>\n );\n }\n\n}","import { Obj, Now, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n arrive: {\n default()\n {\n return null;\n }\n },\n\n clearArrive: {\n default()\n {\n return null;\n }\n },\n\n depart: {\n default()\n {\n return null;\n }\n },\n\n clearDepart: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select date');\n },\n type: [String]\n },\n\n placeholderArrive: {\n default()\n {\n return Locale.trans('Start date');\n },\n type: [String]\n },\n\n placeholderDepart: {\n default()\n {\n return Locale.trans('End date');\n },\n type: [String]\n },\n\n range: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n rangeSeparator: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n arrive(value)\n {\n if ( value !== this.tempArrive.format(this.format) ) {\n this.tempArrive = Now.make(value);\n }\n },\n\n depart(value)\n {\n if ( value !== this.tempDepart.format(this.format) ) {\n this.tempDepart = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue, this.format),\n tempArrive: Now.make(this.arrive, this.format),\n tempDepart: Now.make(this.depart, this.format),\n };\n },\n\n methods: {\n\n clearDatepicker()\n {\n this.range ? this.clearRangeDatepicker() :\n this.clearSingleDatepicker();\n },\n\n clearSingleDatepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n\n clearRangeDatepicker()\n {\n this.tempArrive = Now.make(this.clearArrive, \n this.format);\n\n this.$emit('update:arrive', this.clearValue);\n\n this.tempDepart = Now.make(this.clearDepart, \n this.format);\n\n this.$emit('update:depart', this.clearDepart);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onArriveInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempArrive = Now.make(moment);\n\n this.$emit('update:arrive', \n this.tempArrive.format(this.format));\n },\n\n onDepartInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n });\n\n this.tempDepart = Now.make(moment);\n\n this.$emit('update:depart', \n this.tempDepart.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.focus = false;\n\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onDatepickerDepart(value)\n {\n this.focus = false;\n\n this.tempDepart = Now.make(value, \n this.format);\n\n this.$emit('update:depart', value);\n },\n\n onDatepickerArrive(value)\n {\n this.focus = false;\n\n this.tempArrive = Now.make(value, \n this.format);\n\n this.$emit('update:arrive', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempArrive.initialDate &&\n ! this.tempDepart.initialDate;\n\n if ( ! this.range ) {\n isEmpty = ! this.tempValue.initialDate;\n }\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDatepicker;\n }\n\n return (\n <div class=\"n-datepicker__clear 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, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepickerPanel',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n }\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return 'HH:mm:ss';\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHours(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutes(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSeconds(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n let modelValue = Now.make(this.modelValue);\n\n if ( Any.isEmpty(this.modelValue) ) {\n modelValue = modelValue.resetTime();\n }\n\n return {\n tempValue: modelValue,\n }\n },\n\n mounted()\n {\n this.scrollTo();\n },\n\n methods: {\n\n eventSelect(now)\n {\n this.$emit('update:modelValue',\n (this.tempValue = now.clone()).format(this.format));\n },\n\n scrollTo()\n {\n let scrollbars = Obj.only(this.$refs, [\n 'hour', 'minute', 'second'\n ]);\n\n Arr.each(scrollbars, (ref, key) => {\n ref.scrollIntoView(`[data-index=\"${this.tempValue[key]()}\"]`);\n });\n }\n\n },\n\n renderToolbar()\n {\n return (\n <div class=\"n-timepicker-panel__toolbar\">\n <div class=\"n-timepicker-panel__display\">\n <span class=\"n-timepicker-panel__time\">\n {this.tempValue.format(this.displayFormat) || this.placeholder}\n </span>\n </div>\n </div>\n )\n },\n\n renderHourItem(now)\n {\n let classList = [\n 'n-timepicker-panel__item'\n ];\n\n if ( this.tempValue.valid() && now.hour() === this.tempValue.hour() ) {\n classList.push('n-selected');\n }\n\n let props = {\n onMousedown: () => this.eventSelect(now)\n };\n\n return (\n <div class={classList} {...props} data-index={now.hour()}>\n <span>{now.format('HH')}</span>\n </div>\n );\n },\n\n renderHourPanel()\n {\n if ( !this.displayFormat.match('HH') ) {\n return null;\n }\n\n 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, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTimepicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n placeholder: {\n default()\n {\n return 'Select time';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('HH:mm:ss');\n },\n type: [String]\n },\n\n hoursInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n minutesInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n secondsInterval: {\n default()\n {\n return 1;\n },\n type: [Number]\n }\n\n },\n\n computed: {\n\n hoursGrid()\n {\n return this.tempValue.getHours(this.hoursInterval);\n },\n\n minutesGrid()\n {\n return this.tempValue.getMinutes(this.minutesInterval);\n },\n\n secondsGrid()\n {\n return this.tempValue.getSeconds(this.secondsInterval);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n }\n\n },\n\n data()\n {\n return {\n focus: false,\n tempValue: Now.make(this.modelValue),\n }\n },\n\n methods: {\n\n clearTimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n hour: value.moment.hour(), \n minute: value.moment.minute(), \n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue.valid() ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearTimepicker;\n }\n\n return (\n <div class=\"n-timepicker__clear 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, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDatetimepicker',\n\n inject: {\n\n NFormItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n minDate: {\n default()\n {\n return null;\n }\n },\n\n maxDate: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select datetime');\n },\n type: [String]\n },\n\n monthPanels: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n format: {\n default()\n {\n return 'YYYY-MM-DD HH:mm:ss';\n },\n type: [String]\n },\n\n displayFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm:ss');\n },\n type: [String]\n },\n\n weekdays: {\n default()\n {\n return [\n Locale.trans('Mo'),\n Locale.trans('Tu'),\n Locale.trans('We'),\n Locale.trans('Th'),\n Locale.trans('Fr'),\n Locale.trans('Sa'),\n Locale.trans('Su'),\n ];\n },\n type: [Array]\n },\n\n months: {\n default()\n {\n return [\n Locale.trans('Jan'),\n Locale.trans('Feb'),\n Locale.trans('Mar'),\n Locale.trans('Apr'),\n Locale.trans('May'),\n Locale.trans('Jun'),\n Locale.trans('Jul'),\n Locale.trans('Aug'),\n Locale.trans('Sep'),\n Locale.trans('Oct'),\n Locale.trans('Nov'),\n Locale.trans('Dec'),\n ];\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n deepDisabled() {\n return this.NFormItem ? this.NFormItem.disabled(this.disabled) :\n this.disabled;\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue.format(this.format) ) {\n this.tempValue = Now.make(value);\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: Now.make(this.modelValue, this.format),\n };\n },\n\n methods: {\n\n clearDatetimepicker()\n {\n this.tempValue = Now.make(this.clearValue, \n this.format);\n\n this.$emit('update:modelValue', this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(event)\n {\n let isNotSameLength = this.displayFormat.length !==\n event.target.value.length;\n\n if ( isNotSameLength ) {\n return;\n }\n\n let value = Now.make(event.target.value, \n this.displayFormat);\n\n if ( ! value.moment.isValid() ) {\n return;\n }\n\n let moment = this.tempValue.moment.set({\n year: value.moment.year(),\n month: value.moment.month(),\n date: value.moment.date(),\n hour: value.moment.hour(),\n minute: value.moment.minute(),\n second: value.moment.second(),\n });\n\n this.tempValue = Now.make(moment);\n\n this.$emit('update:modelValue', \n this.tempValue.format(this.format));\n },\n\n onDatepickerInput(value)\n {\n this.tempValue = Now.make(value, \n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n onTimepickerInput(value)\n {\n this.tempValue = Now.make(value,\n this.format);\n\n this.$emit('update:modelValue', value);\n },\n\n },\n\n\n renderLabelClear()\n {\n let isEmpty = ! this.tempValue.initialDate;\n\n if ( ! this.clearable || isEmpty ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.deepDisabled ) {\n props.onMousedown = this.clearDatetimepicker;\n }\n\n return (\n <div class=\"n-datetimepicker__clear 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 { Any, Obj, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NDurationpicker',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n clearValue: {\n default()\n {\n return null;\n }\n },\n\n options: {\n default()\n {\n return [\n 60 * 5,\n 60 * 10,\n 60 * 15,\n 60 * 30,\n 60 * 45,\n 60 * 60,\n 60 * 90,\n 60 * 120,\n 60 * 150,\n 60 * 60 * 3,\n 60 * 60 * 4,\n 60 * 60 * 5,\n 60 * 60 * 6,\n 60 * 60 * 12,\n 60 * 60 * 24,\n 60 * 60 * 24 * 2,\n 60 * 60 * 24 * 3,\n 60 * 60 * 24 * 4,\n 60 * 60 * 24 * 5,\n 60 * 60 * 24 * 6,\n 60 * 60 * 24 * 7,\n ];\n },\n type: [Array]\n },\n\n minDuration: {\n default()\n {\n return null;\n }\n },\n\n maxDuration: {\n default()\n {\n return null;\n }\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n placeholder: {\n default()\n {\n return Locale.trans('Select duration');\n },\n type: [String]\n },\n\n negativeText: {\n default()\n {\n return Locale.trans('Negative duration');\n },\n type: [String]\n },\n\n boundary: {\n default()\n {\n return null;\n }\n },\n\n position: {\n default()\n {\n return 'bottom-start';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n clearable: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n days: {\n default()\n {\n return Locale.trans(':count Day|:count Days');\n },\n type: [String]\n },\n\n hours: {\n default()\n {\n return Locale.trans(':count Hour|:count Hours');\n },\n type: [String]\n },\n\n minutes: {\n default()\n {\n return Locale.trans(':count Minute|:count Minutes');\n },\n type: [String]\n },\n\n seconds: {\n default()\n {\n return Locale.trans(':count Second|:count Seconds');\n },\n type: [String]\n }\n\n },\n\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n },\n\n },\n\n data()\n {\n return {\n focus: false, tempValue: this.modelValue, editValue: null\n };\n },\n\n methods: {\n\n findPattern(text, pattern)\n {\n pattern = pattern.replaceAll(':count', '([0-9\\.\\,]+)')\n .replaceAll(' ', '\\\\s*');\n\n return text.match(new RegExp(pattern, 'i'));\n },\n\n humanizeValue(value)\n {\n if ( Any.isEmpty(value) ) {\n return '';\n }\n\n if ( value < 0 ) {\n return this.negativeText;\n }\n\n let seconds = value;\n\n // Extract minutes\n let minutes = Math.floor(seconds/60);\n seconds -= minutes * 60;\n\n // Extract hours\n let hours = Math.floor(minutes/60);\n minutes -= hours * 60;\n\n\n // Extract days\n let days = Math.floor(hours/24);\n hours -= days * 24;\n\n let text = [];\n\n if ( days ) {\n text.push(Locale.choice(this.days, days));\n }\n\n if ( hours ) {\n text.push(Locale.choice(this.hours, hours));\n }\n\n if ( minutes ) {\n text.push(Locale.choice(this.minutes, minutes));\n }\n\n if ( seconds ) {\n text.push(Locale.choice(this.seconds, seconds));\n }\n\n return text.join(' ');\n },\n\n digitizeValue(text)\n {\n if ( Any.isEmpty(text) ) {\n return this.clearValue;\n }\n\n let value = 0;\n\n let dmatch = this.findPattern(text, this.days);\n\n if ( dmatch && dmatch.length === 3 ) {\n value += Any.float(dmatch[1].replace(',', '.')) * 24 * 60 * 60;\n }\n\n let hmatch = this.findPattern(text, this.hours);\n\n if ( hmatch && hmatch.length === 3 ) {\n value += Any.float(hmatch[1].replace(',', '.')) * 60 * 60;\n }\n\n let mmatch = this.findPattern(text, this.minutes);\n\n if ( mmatch && mmatch.length === 3 ) {\n value += Any.float(mmatch[1].replace(',', '.')) * 60;\n }\n\n let smatch = this.findPattern(text, this.seconds);\n\n if ( smatch && smatch.length === 3 ) {\n value += Any.float(smatch[1].replace(',', '.'));\n }\n\n return value;\n },\n\n clearDurationpicker()\n {\n this.$emit('update:modelValue', this.tempValue = this.clearValue);\n },\n\n onPopoverInput(value)\n {\n this.focus = value;\n },\n\n onValueInput(e)\n {\n let value = this.digitizeValue(e.target.value);\n\n if ( value === this.tempValue ) {\n return;\n }\n\n this.editValue = value;\n },\n\n onValueChange(e)\n {\n let value = this.editValue;\n\n // Clear edit value\n this.editValue = null;\n\n if ( ! value || value === this.tempValue ) {\n return;\n }\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n onDurationpickerInput(value)\n {\n this.focus = false;\n\n // Clear edit value\n this.editValue = null;\n\n this.$emit('update:modelValue', this.tempValue = value);\n },\n\n },\n\n renderLabelClear()\n {\n if ( ! this.clearable || ! this.tempValue ) {\n return null;\n }\n\n let props = {};\n\n if ( ! this.disabled ) {\n props.onMousedown = this.clearDurationpicker;\n }\n\n return (\n <div class=\"n-durationpicker__clear 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, Any, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTransfer',\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sourceLabel: {\n default()\n {\n return 'Source';\n },\n type: [String]\n },\n\n targetLabel: {\n default()\n {\n return 'Target';\n },\n type: [String]\n },\n\n labelProp: {\n default()\n {\n return 'label';\n },\n type: [String]\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n }\n\n },\n\n computed: {\n\n sourceChecked()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length === this.tempSource.length;\n },\n\n sourceIntermediate()\n {\n return !! this.selectedSource.length && \n this.selectedSource.length !== this.tempSource.length;\n },\n\n targetChecked()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length === this.tempTarget.length;\n },\n\n targetIntermediate()\n {\n return !! this.selectedTarget.length && \n this.selectedTarget.length !== this.tempTarget.length;\n },\n\n tempSource()\n {\n let source = Arr.filter(this.options, (item) => {\n return ! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Any.isEmpty(this.sourceSearch) ) {\n return Arr.clone(source);\n }\n\n let searchPattern = new RegExp(this.sourceSearch, 'i');\n\n source = Arr.filter(source, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(source);\n },\n\n tempTarget()\n {\n let target = Arr.filter(this.options, (item) => {\n return !! Arr.find(this.tempValue, { [this.uniqueProp]: item[this.uniqueProp] });\n });\n\n if ( Any.isEmpty(this.targetSearch) ) {\n return Arr.clone(target);\n }\n\n let searchPattern = new RegExp(this.targetSearch, 'i');\n\n target = Arr.filter(target, (item) => {\n return item[this.labelProp].match(searchPattern);\n });\n\n return Arr.clone(target);\n }\n\n },\n data()\n {\n return {\n uid: UUID(),\n tempValue: this.modelValue,\n sourceSearch: '',\n targetSearch: '',\n selectedSource: [],\n selectedTarget: []\n };\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n methods: {\n\n moveItemsTarget(options)\n {\n Arr.each(options, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveItemsSource(options)\n {\n Arr.each(options, (source) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.$emit('input', this.tempValue);\n },\n\n moveRowTarget(node)\n {\n // Get node unique\n let target = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedTarget, target);\n\n this.tempValue = Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveRowSource(node)\n {\n // Get node unique\n let source = node.value[this.uniqueProp];\n\n // Remove item from selected list\n Arr.remove(this.selectedSource, source);\n\n Arr.add(this.tempValue, node.item, source, {\n [this.uniqueProp]: source\n });\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToSource()\n {\n Arr.each(this.selectedTarget, (target) => {\n\n Arr.remove(this.tempValue, {\n [this.uniqueProp]: target\n });\n\n });\n\n this.selectedTarget = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n moveToTarget()\n {\n Arr.each(this.selectedSource, (source) => {\n\n let item = Arr.find(this.options, {\n [this.uniqueProp]: source\n });\n\n Arr.add(this.tempValue, item, {\n [this.uniqueProp]: source\n });\n\n });\n\n this.selectedSource = [];\n\n this.$emit('update:modelValue', this.tempValue);\n },\n\n updateSelectedSource(selected)\n {\n this.selectedSource = selected;\n },\n\n updateSelectedTarget(selected)\n {\n this.selectedTarget = selected;\n }\n\n },\n\n renderSourceSelect()\n {\n let props = {\n modelValue: this.sourceChecked,\n size: this.size,\n type: this.type,\n intermediate: this.sourceIntermediate,\n disabled: ! this.tempSource.length\n };\n\n props['onUpdate:modelValue'] = () => {\n this.$refs.source.selectAll();\n };\n\n return (\n <div class=\"n-transfer__select\">\n <NCheckbox {...props} />\n </div>\n );\n },\n\n renderSourceTitle()\n {\n let labelHtml = (\n <span class=\"n-transfer__item-title\">\n { this.sourceLabel }\n </span>\n );\n\n let counterHtml = (\n <span class=\"n-transfer__item-count\">\n { this.tempSource.length }\n </span>\n );\n\n return (\n <div class=\"n-transfer__title\">\n { [labelHtml, counterHtml] }\n </div>\n );\n },\n\n renderSourceHeader()\n {\n return (\n <div class=\"n-transfer__header\">\n { this.ctor('renderSourceSelect')() }\n { this.ctor('renderSourceTitle')() }\n { 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 { Any, Arr, Locale, Obj } from \"@kizmann/pico-js\";\n\nexport const FormMessage = {\n\n required(field, value) {\n return Locale.trans('Field is required');\n },\n\n required_if(field, value, key = '') {\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 return Locale.trans('Must be exact value :val', { val });\n },\n\n min(field, value, min = Number.MIN_VALUE) {\n return Locale.trans('Must be greather than :min', { min });\n },\n\n max(field, value, max = Number.MAX_VALUE) {\n return Locale.trans('Must be lesser than :max', { max });\n },\n\n minlength(field, value, min = Number.MIN_VALUE) {\n return Locale.trans('Length must be greater than :min', { min });\n },\n\n maxlength(field, value, max = Number.MAX_VALUE) {\n return Locale.trans('Length must be lesser than :max', { max });\n },\n\n email(field, value) {\n return Locale.trans('Must be a valid email');\n }\n\n};\n\nexport const FormRules = {\n\n required(field, value) {\n\n if ( Any.isBool(value) ) {\n return value === true;\n }\n\n return ! Any.isEmpty(value);\n },\n\n required_if(field, value, key = '') {\n\n let target = Obj.get(this.form, key);\n\n if ( Any.isEmpty(target) ) {\n return true;\n }\n\n if ( Any.isBool(value) ) {\n return value === true;\n }\n\n return ! Any.isEmpty(value);\n },\n\n required_unless(field, value, key = '') {\n\n let target = Obj.get(this.form, key);\n\n if ( ! Any.isEmpty(target) ) {\n return true;\n }\n\n if ( Any.isBool(value) ) {\n return value === true;\n }\n\n return ! Any.isEmpty(value);\n },\n\n same(field, value, key = '') {\n return value === Obj.get(this.form, key);\n },\n\n diffrent(field, value, key = '') {\n return value !== Obj.get(this.form, key);\n },\n\n value(field, value, val = 'foobar') {\n\n if ( Any.isString(value) ) {\n return value === val;\n }\n\n return false;\n },\n\n min(field, value, min = Number.MIN_VALUE) {\n\n if ( Any.isNumber(value) ) {\n return value >= min;\n }\n\n return false;\n },\n\n max(field, value, max = Number.MAX_VALUE) {\n\n if ( Any.isNumber(value) ) {\n return value <= max;\n }\n\n return false;\n },\n\n minlength(field, value, min = Number.MIN_VALUE) {\n\n if ( Any.isString(value) || Any.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 ( Any.isString(value) || Any.isArray(value) ) {\n return value.length < max;\n }\n\n return false;\n },\n\n email(field, value) {\n\n if ( Any.isString(value) ) {\n return value.match(/^.*?@.*?\\.[a-z]{2,}$/);\n }\n\n return false;\n }\n\n};","import { UUID, Num, Arr, Obj, Any, 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 Any.isArray(this.$attrs) ? this.$attrs.class :\n [this.$attrs.class];\n }\n\n },\n\n data()\n {\n return {\n uid: 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 Any.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 ( Any.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 ! Any.isEmpty(err);\n });\n\n return this.ruleErrors;\n },\n\n isValid(includeErrors = false)\n {\n this.validate();\n\n let count = Any.keys(this.ruleErrors).length;\n\n if ( includeErrors ) {\n count += Any.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 ( ! Any.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 { Any, Arr, Obj, UUID } 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: 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 ( Any.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, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormGroup',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n NFormFrame: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n key: {\n default()\n {\n return UUID();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n }\n },\n\n size: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'vertical';\n },\n type: [String]\n },\n\n 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: 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.key} class={classList} data-group-key={this.key}>\n { this.ctor('renderLabel')() }\n { this.ctor('renderTooltip')() }\n { this.ctor('renderBody')() }\n </fieldset>\n );\n }\n}\n","import { Arr, Obj, Any, Dom, UUID, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormItem',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n 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: 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 ( Any.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 { Arr, Any, Dom, Str, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFormFrame',\n\n inject: {\n\n NForm: {\n default: undefined\n },\n\n },\n\n provide()\n {\n return { NFormFrame: this };\n },\n\n props: {\n\n showSearch: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n searchPlaceholder: {\n default()\n {\n return Locale.trans('Search ...');\n },\n type: [String]\n },\n\n searchIcon: {\n default()\n {\n return 'fa fa-times';\n },\n type: [String]\n },\n\n kind: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n 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 ( ! Any.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).removeClass('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', Any.debounce(e => {\n\n let el = Dom.find(e.target).closest('[data-group-key]');\n\n if ( Any.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).removeClass(['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 .removeClass('on-search');\n\n if ( Any.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 ( ! Any.isEmpty(event) ) {\n event.preventDefault();\n }\n\n let selector = `[data-group-key=\"${item.key}\"]`\n\n if ( item.collapse ) {\n item.openGroup();\n }\n\n if ( 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 ( ! Any.isEmpty(this.search) ) {\n searchProps.icon = this.searchIcon;\n }\n\n searchProps['onIconClick'] = () => {\n this.search = '';\n }\n\n return (\n <div class=\"n-form-frame__search\">\n <NInput vModel={this.search} {...searchProps}></NInput>\n </div>\n )\n },\n\n renderMenu(item)\n {\n let labelHtml = (\n <span>{item.label}</span>\n );\n\n let iconHtml = null;\n\n if ( item.icon ) {\n iconHtml = (<i class={item.icon} />);\n }\n\n let buttonProps = {\n href: '#' + item.key\n }\n\n buttonProps['onClick'] = (e) => {\n this.onClickEvent(item, e)\n };\n\n let classList = [\n 'n-form-frame__menu',\n 'n-form-frame__menu--' + item.type\n ];\n\n return (\n <a class={classList} data-menu-key={item.key} {...buttonProps}>\n {[iconHtml, labelHtml]}\n </a>\n );\n },\n\n renderMenus()\n {\n let items = Arr.each(this.NForm.groups, (item) => {\n return this.ctor('renderMenu')(item);\n });\n\n return (\n <n-scrollbar ref=\"menu\" class=\"n-form-frame__menus\">\n { this.ctor('renderSearch')() } { items } { this.$slots.menu && this.$slots.menu() }\n </n-scrollbar>\n );\n },\n\n renderBody()\n {\n let bodyProps = {\n //\n };\n\n bodyProps['onScrollupdate'] = () => {\n this.onScrollEvent();\n };\n\n return (\n <n-scrollbar ref=\"body\" class=\"n-form-frame__body\" {...bodyProps}>\n {this.$slots.default && this.$slots.default()}\n </n-scrollbar>\n );\n },\n\n render()\n {\n let classList = [\n 'n-form-frame',\n 'n-form-frame--' + this.NForm.size\n ];\n\n if ( ! Any.isEmpty(this.search) ) {\n classList.push('n-form-frame--search')\n }\n\n return (\n <div class={classList}>\n {[this.$slots.frame && this.$slots.frame(), this.ctor('renderMenus')(), this.ctor('renderBody')()]}\n </div>\n );\n }\n}\n","import { Arr, Dom, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTabs',\n\n provide()\n {\n return {\n NTabs: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n float: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n data()\n {\n return {\n init: false,\n elements: [], \n width: 0, \n offset: 0, \n tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTab(tab)\n {\n Arr.add(this.elements, tab, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTab(tab)\n {\n Arr.remove(this.elements, \n { name: tab.name });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n getTab(updateEvent = true)\n {\n let currentTab = Arr.find(this.elements, {\n name: this.modelValue\n });\n\n let sorted = Arr.sort(this.elements, 'sort');\n\n if ( ! currentTab ) {\n currentTab = Arr.first(sorted);\n }\n\n let repeatNext = () => this.getTab(updateEvent);\n\n if ( ! currentTab ) {\n return Any.delay(repeatNext, 250);\n }\n\n if ( currentTab.name === this.tempValue || ! updateEvent ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = currentTab.name);\n },\n\n changeTab(value)\n {\n if ( this.tempValue === value ) {\n return;\n }\n\n this.$emit('update:modelValue', \n this.tempValue = value);\n }\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n this.getTab(false);\n },\n\n updated()\n {\n let width = Dom.find(this.$el).find('.n-active')\n .width();\n\n this.width = width < 0 ? 0 : width;\n\n let offset = Dom.find(this.$el).find('.n-active')\n .offset('left', this.$el);\n\n this.offset = offset < 0 ? 0 : offset;\n },\n\n renderHeaderIndicator()\n {\n let transform = `scaleX(${this.width / 100}) ` + \n `translateX(${this.offset / (this.width / 100)}px)`;\n\n return (\n <div class=\"n-tabs__indicator\" style={{ transform }}>\n { /* Indicator bar */ }\n </div>\n );\n },\n\n renderHeader()\n {\n if ( this.elements.length <= 1 ) {\n return null;\n }\n\n // FIXME: As soon vue doesnt bug\n let sorted = Arr.sort(this.elements, 'sort');\n \n let tabs = Arr.each(Arr.make(sorted.length), (tab, index) => {\n return sorted[index].ctor('renderHeader')();\n });\n\n return (\n <div class=\"n-tabs__header\">\n {[tabs, this.ctor('renderHeaderIndicator')()]}\n </div>\n );\n },\n\n renderBody()\n {\n return (\n <div class=\"n-tabs__body\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-tabs', \n 'n-tabs--' + this.size, \n 'n-tabs--' + this.type\n ];\n\n if ( this.float ) {\n classList.push('n-float');\n }\n\n return (\n <div class={classList}>\n { this.ctor('renderHeader')() }\n { this.ctor('renderBody')() }\n </div>\n );\n }\n}\n","import { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTabsItem',\n\n inject: {\n\n NTabs: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NTabsItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n relative: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n 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, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTags',\n\n provide()\n {\n return {\n NTags: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n tags: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n addTag(tab)\n {\n Arr.add(this.elements, tab,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n removeTag(tab)\n {\n Arr.remove(this.elements,\n { label: tab.label });\n\n if ( this.init) {\n this.$nextTick(this.$forceUpdate);\n }\n },\n\n },\n\n watch: {\n\n modelValue(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.init = true;\n },\n\n render()\n {\n let classList = [\n 'n-tags',\n 'n-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, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTagsItem',\n\n inject: {\n\n NTags: {\n default: undefined\n }\n\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 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 ( Any.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, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NCollapse',\n\n provide()\n {\n return {\n NCollapse: this\n };\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n init: false, elements: [], tempValue: this.modelValue\n };\n },\n\n methods: {\n\n 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(Any.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, Any, Dom } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NCollapseItem',\n\n inject: {\n\n NCollapse: {\n default: undefined\n }\n\n },\n\n provide()\n {\n return {\n NCollapseItem: this\n };\n },\n\n props: {\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n name: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return - 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 { Any, Arr, Obj, Dom, Event, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTable',\n\n provide()\n {\n return {\n NTable: this\n };\n },\n\n props: {\n\n items: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n draggable: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n current: {\n default()\n {\n return null;\n }\n },\n\n selected: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n expanded: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n filter: {\n default()\n {\n return [];\n },\n type: [Array]\n },\n\n sortProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n sortDir: {\n default()\n {\n return 'desc';\n },\n type: [String]\n },\n\n closeFilterOnEnter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n group: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n allowGroups: {\n default()\n {\n return ['default'];\n },\n type: [Array]\n },\n\n handle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n safezone: {\n default()\n {\n return (height) => height * 0.51;\n }\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n itemHeight: {\n default()\n {\n return 38;\n },\n type: [Number]\n },\n\n itemOffset: {\n default()\n {\n return 30;\n },\n type: [Number]\n },\n\n scrollTopOnChange: {\n default()\n {\n return false;\n }\n },\n\n uniqueProp: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n childProp: {\n default()\n {\n return 'children';\n },\n type: [String]\n },\n\n renderSelect: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n renderHandle: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderExpand: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n renderCurrent: {\n default()\n {\n return true;\n }\n },\n\n transformDrop: {\n default()\n {\n return (node) => node;\n }\n },\n\n disableMove: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n insertNode: {\n default()\n {\n return () => true;\n }\n },\n\n removeNode: {\n default()\n {\n return () => true;\n }\n },\n\n allowSelect: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrag: {\n default()\n {\n return () => true;\n }\n },\n\n allowDrop: {\n default()\n {\n return () => true;\n }\n },\n\n threshold: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n useKeys: {\n default()\n {\n return 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: UUID(),\n elements: [],\n tempVisible: this.visible,\n tempVisibleProps: [],\n tempSelected: this.selected,\n tempSortProp: this.sortProp,\n tempSortDir: this.sortDir,\n tempFilter: this.filter,\n tempFilterProps: [],\n }\n },\n\n mounted()\n {\n this.$watch('tempVisible',\n this.makeVisibleProps, { deep: true });\n\n if ( !this.tempVisible.length ) {\n Arr.each(this.elements, this.detectVisible);\n }\n },\n\n watch: {\n\n selected(value)\n {\n this.tempSelected = value;\n },\n\n },\n\n methods: {\n\n addColumn(column)\n {\n Arr.add(this.elements, column,\n { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n getColumnIndex(column)\n {\n if ( !Any.isString(column) ) {\n column = column['prop'];\n }\n\n return Arr.findIndex(this.tempVisibleProps,\n column);\n },\n\n getColumnVisiblity(column)\n {\n if ( !Any.isString(column) ) {\n column = column.prop;\n }\n\n return Arr.has(this.tempVisible, column);\n },\n\n getColumnSorted(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n if ( this.tempSortProp !== prop ) {\n return null;\n }\n\n return this.tempSortDir;\n },\n\n getColumnFilter(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.find(this.tempFilter, {\n property: prop\n });\n },\n\n getColumnFiltered(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.filterProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n return Arr.has(this.tempFilterProps, prop);\n },\n\n detectVisible(column)\n {\n if ( column.detectVisibity() ) {\n Arr.add(this.tempVisible, column.prop);\n }\n },\n\n makeVisibleProps()\n {\n this.tempVisibleProps = Arr.intersect(\n Arr.extract(this.elements, 'prop'), this.tempVisible);\n\n this.$nextTick(this.$refs.scrollbar.onResize);\n },\n\n sortByColumn(column)\n {\n let prop = column;\n\n if ( !Any.isString(prop) ) {\n prop = column.sortProp;\n }\n\n if ( Any.isEmpty(prop) ) {\n prop = column.prop;\n }\n\n\n let dir = this.tempSortDir;\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'desc' ) {\n dir = 'asc';\n }\n\n if ( prop === this.tempSortProp && this.tempSortDir === 'asc' ) {\n dir = 'desc';\n }\n\n if ( this.tempSortDir !== dir ) {\n this.$emit('update:sortDir', this.tempSortDir = dir);\n }\n\n if ( this.tempSortProp !== prop ) {\n this.$emit('update:sortProp', this.tempSortProp = prop);\n }\n\n this.$emit('sort', this.tempSortProp, this.tempSortDir);\n },\n\n replaceFilter(filter, search)\n {\n Arr.replace(this.tempFilter, filter, search);\n\n let filters = Arr.filter(this.tempFilter, (filter) => {\n return Arr.has(this.tempFilterProps, filter.property);\n });\n\n this.$emit('update:filter', filters);\n\n this.$emit('filter', filters, this.tempFilterProps);\n },\n\n resetFilter()\n {\n this.tempFilter = this.tempFilterProps = [];\n\n Event.fire('NTable:reset', this.uid);\n\n this.$emit('update:filter', this.tempFilter);\n\n this.$emit('filter', this.tempFilter, this.tempFilterProps);\n },\n\n selectAll()\n {\n this.$refs.draggable.selectAll();\n },\n\n highlightNode(value, key = null)\n {\n this.$refs.draggable.highlightNode(value, key);\n },\n\n syncCurrent()\n {\n return this.$refs.draggable.syncCurrent();\n },\n\n refreshCurrent()\n {\n this.$refs.draggable.refreshCurrent();\n },\n\n },\n\n renderHandle()\n {\n if ( !this.renderHandle ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__handle\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderExpand()\n {\n if ( !this.renderExpand ) {\n return null;\n }\n\n return (\n <div class=\"n-draglist-item__expand\">\n { /* Only used in row */}\n </div>\n )\n },\n\n renderSelect()\n {\n if ( !this.renderSelect ) {\n return null;\n }\n\n let props = {\n modelValue: this.checked,\n intermediate: this.intermediate,\n disabled: !this.items.length,\n onClick: this.selectAll\n };\n\n return (\n <div class=\"n-draglist-item__select\">\n <NCheckbox {...props}></NCheckbox>\n </div>\n );\n },\n\n renderBody(props)\n {\n let columns = Obj.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderBody')(props);\n });\n\n return Obj.values(columns);\n },\n\n renderContext()\n {\n let columns = Obj.each(this.elements, (column) => {\n\n if ( column.disabled ) {\n return null;\n }\n\n return (\n <NCheckbox class=\"n-table__checkbox\" value={column.prop}>\n {column.label}\n </NCheckbox>\n );\n });\n\n return (\n <NPopover trigger=\"context\" width={220}>\n <NPopoverGroup>\n {this.trans('Toggle column visiblity')}\n </NPopoverGroup>\n <NCheckboxGroup vModel={this.tempVisible} size=\"sm\" align=\"vertical\">\n {Obj.values(columns)}\n </NCheckboxGroup>\n </NPopover>\n );\n },\n\n renderHead()\n {\n let defaultRender = [\n this.ctor('renderHandle')(),\n this.ctor('renderExpand')(),\n this.ctor('renderSelect')(),\n this.ctor('renderContext')()\n ];\n\n let columns = Obj.each(this.elements, (column) => {\n return column.disabled ? null : column.ctor('renderHead')();\n });\n\n return (\n <div class=\"n-table__header\">\n {defaultRender} {Obj.values(columns)}\n </div>\n );\n },\n\n render()\n {\n let except = [\n 'visible', 'filter', 'sortProp', '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 { Any, Arr, Obj, Str, Dom, UUID, Num, Locale } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NTableColumn',\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return UUID();\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n tooltip: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n align: {\n default()\n {\n return 'left';\n },\n type: [String]\n },\n\n sort: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n filter: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n visible: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n matrixDisabled: {\n default()\n {\n return false;\n },\n type: [Boolean, Function]\n },\n\n breakpoint: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n matrix: {\n default()\n {\n return - 1;\n },\n type: [Number, String]\n },\n\n matrixProp: {\n default()\n {\n return 'matrix';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n sortProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n filterProp: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n fixedWidth: {\n default()\n {\n return 0;\n }\n },\n\n width: {\n default()\n {\n return 0;\n }\n },\n\n minWidth: {\n default()\n {\n return 120;\n }\n },\n\n maxWidth: {\n default()\n {\n return 0;\n }\n },\n\n emptyText: {\n default()\n {\n return '-';\n },\n type: [String]\n },\n\n undefinedText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n },\n\n allowUncheck: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n computed: {\n\n matrixValues()\n {\n if ( this.type !== 'matrix' ) {\n return;\n }\n\n let values = {};\n\n if ( Any.isEmpty(this.modelValue) ) {\n return values;\n }\n\n Arr.each(this.modelValue, (item) => {\n Obj.set(values, item[this.NTable.uniqueProp],\n Num.matrix(item[this.matrixProp]));\n });\n\n return values;\n }\n\n },\n\n provide()\n {\n return {\n NTableColumn: this\n };\n },\n\n data()\n {\n return {\n uid: UUID(), tempWidth: 0\n };\n },\n\n methods: {\n\n detectVisibity()\n {\n let visible = this.visible;\n\n if ( this.breakpoint ) {\n visible &= Dom.find(this.NTable.$el).width() > this.breakpoint;\n }\n\n return visible;\n },\n\n sortByColumn(event)\n {\n if ( !Arr.has([0, 1], event.which) ) {\n return;\n }\n\n if ( !Dom.find(event.target).closest('.n-table-column__filter') ) {\n this.NTable.sortByColumn(this);\n }\n },\n\n },\n\n beforeMount()\n {\n this.changedStates = {};\n this.NTable.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NTable.removeColumn(this);\n },\n\n renderHead()\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let classList = [\n 'n-table-column',\n 'n-table-column--' + this.align,\n 'n-table-column--' + this.type,\n ];\n\n let sortDirection = this.NTable.getColumnSorted(this);\n\n if ( sortDirection ) {\n classList.push('n-sorted', 'n-' + sortDirection);\n }\n\n if ( this.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 ( Any.isEmpty(this.tooltip) ) {\n return labelHtml;\n }\n\n let tooltipHtml = (\n <NPopover type=\"tooltip\">{this.tooltip}</NPopover>\n );\n\n return [labelHtml, tooltipHtml];\n },\n\n renderHeadSort()\n {\n if ( !this.sort ) {\n return null;\n }\n\n return (\n <div class=\"n-table-column__sort\">\n <i>{ /* Sorting angles */}</i>\n </div>\n )\n },\n\n renderHeadFilter()\n {\n if ( !this.filter ) {\n return null;\n }\n\n let angleHtml = (\n <div class=\"n-table-column__filter\">\n <i class={nano.Icons.angleDown}></i>\n </div>\n );\n\n let component = resolveComponent('NTableFilter' +\n Str.ucfirst(this.type));\n\n return [\n angleHtml, h(component, { column: this })\n ];\n },\n\n renderBody(props)\n {\n if ( !this.NTable.getColumnVisiblity(this) ) {\n return null;\n }\n\n let uid = props.value[this.NTable.uniqueProp]\n + this.uid;\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.align,\n 'n-table-cell--' + this.type,\n ];\n\n if ( this.tempWidth ) {\n classList.push('n-fixed');\n }\n\n let index = this.NTable.getColumnIndex(this);\n\n let offset = 0;\n\n if ( index === 0 ) {\n offset = props.value.depth * this.NTable.itemOffset;\n }\n\n let style = {\n width: (this.tempWidth - offset) + 'px'\n };\n\n if ( this.minWidth ) {\n style.minWidth = (this.minWidth - offset) + 'px';\n }\n\n if ( this.maxWidth ) {\n style.maxWidth = (this.maxWidth - offset) + 'px';\n }\n\n let passed = Obj.except(this.$attrs, [], {\n ...props, uid: uid, class: classList, style: style, column: this\n });\n\n let component = resolveComponent('NTableCell' +\n Str.ucfirst(this.type));\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n },\n\n NDraggableItem: {\n default: undefined\n }\n\n },\n\n props: {\n\n uid: {\n required: true\n },\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n value: {\n required: true\n },\n\n copy: {\n required: true\n },\n\n remove: {\n required: true\n },\n\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n data()\n {\n return { init: false };\n },\n\n mounted()\n {\n this.timer = setTimeout(() => this.init = true, 20);\n },\n\n beforeUnmount()\n {\n clearTimeout(this.timer);\n },\n\n methods: {\n\n setFirstState(state)\n {\n Obj.set(this.column.changedStates,\n this.uid, this.firstState = state);\n }\n\n },\n\n render()\n {\n if ( this.column.$slots.default ) {\n return this.column.$slots.default(this);\n }\n \n return (\n <div>{ this.input }</div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellString',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertString(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellBoolean',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Any.convertBoolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellDatetime',\n\n extends: TableCell,\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n return (\n <div>\n <span>{ Any.convertDatetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Arr, Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellOption',\n\n extends: TableCell,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Any.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let prop = this.column.optionsValue;\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let input = ! Any.isObject(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Obj, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellImage',\n\n extends: TableCell,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( ! this.init ) {\n return null;\n }\n\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div> \n );\n }\n\n let classList = [\n 'n-table-cell',\n 'n-table-cell--' + this.column.type\n ];\n\n let 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, Any, Obj, Arr, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellMatrix',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleMatrix()\n {\n if ( this.column.matrix === -1 ) {\n return this.toggleSelect();\n }\n\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let item = Arr.find(itemList, {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp]\n });\n\n if ( ! item ) {\n item = Obj.assign({}, this.item, { [this.column.matrixProp]: 0 });\n }\n\n let currentMatrix = Num.int(item[this.column.matrixProp]);\n\n let matrix = Arr.toggle(Num.matrix(currentMatrix),\n Num.int(this.column.matrix));\n\n item[this.column.matrixProp] = Num.combine(matrix);\n\n Arr.replace(itemList, item, {\n [this.NTable.uniqueProp]: item[this.NTable.uniqueProp]\n });\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n toggleSelect()\n {\n let itemList = this.column.modelValue;\n\n if ( itemList === null ) {\n itemList = [];\n }\n\n let fallback = Obj.assign({}, this.item, {\n [this.column.matrixProp]: this.column.matrix\n });\n\n let finder = {\n [this.NTable.uniqueProp]: this.value[this.NTable.uniqueProp],\n };\n\n let item = Arr.find(itemList, finder);\n\n if ( ! item ) {\n Arr.add(itemList, fallback);\n } else {\n Arr.remove(itemList, finder);\n }\n\n this.column.$emit('update:modelValue', itemList);\n },\n\n isChecked()\n {\n let matrix = Obj.get(this.column.matrixValues,\n this.item[this.NTable.uniqueProp]);\n\n if ( ! matrix ) {\n return false;\n }\n\n let value = Num.int(this.column.matrix);\n\n if ( value === -1 ) {\n return true;\n }\n\n return Arr.has(matrix, value);\n },\n\n isDisabled()\n {\n if ( ! Any.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled;\n }\n\n return this.column.matrixDisabled(this);\n }\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleMatrix;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import TableCell from \"../table-cell.jsx\";\nimport { Num, Any, Obj, Arr } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableCellSelect',\n\n extends: TableCell,\n\n beforeMount()\n {\n this.firstState = Obj.get(this.column.changedStates,\n this.uid);\n },\n\n methods: {\n\n toggleSelect()\n {\n let item = null;\n\n if ( ! this.isChecked() ) {\n item = Obj.assign({}, this.item);\n }\n\n this.column.$emit('update:modelValue', item);\n },\n\n isChecked()\n {\n if ( Any.isEmpty(this.column.modelValue) ) {\n return false;\n }\n\n return Obj.get(this.column.modelValue, this.NTable.uniqueProp) ===\n this.value[this.NTable.uniqueProp];\n },\n\n isDisabled()\n {\n if ( ! Any.isEmpty(this.column.modelValue) ) {\n return true;\n }\n\n if ( Any.isFunction(this.column.matrixDisabled) ) {\n return this.column.matrixDisabled(this);\n }\n\n if ( ! Any.isFunction(this.column.disabled) ) {\n return this.column.disabled;\n }\n\n return this.column.disabled(this);\n },\n\n },\n\n render()\n {\n let checked = this.isChecked();\n\n if ( this.firstState === null ) {\n this.setFirstState(checked);\n }\n\n if ( ! this.init ) {\n return null;\n }\n\n let classList = [\n 'n-table-cell--checkbox'\n ];\n\n if ( this.firstState !== checked ) {\n classList.push('n-changed');\n }\n\n if ( checked ) {\n classList.push('n-checked');\n }\n\n let isDisabled = this.isDisabled();\n\n if ( this.column.allowUncheck ) {\n isDisabled = isDisabled && ! checked;\n }\n\n if ( isDisabled ) {\n classList.push('n-disabled');\n }\n\n let props = {};\n\n if ( ! isDisabled ) {\n props.onClick = this.toggleSelect;\n }\n\n return (\n <div class={classList} {...props}>\n <i class={nano.Icons.checked}></i>\n </div>\n );\n }\n\n}\n","import {Arr, Obj, Any, Dom, Event, UUID} from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NTable: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n }\n\n },\n\n computed: {\n\n tempFilter()\n {\n return this.NTable.getColumnFilter(this.column);\n },\n\n canReset()\n {\n return ! this.NTable.getColumnFiltered(this.column);\n },\n\n canApply()\n {\n return ! Any.isEmpty(this.filter.value);\n }\n\n },\n\n data()\n {\n return {\n filter: this.getFilterClone(), visible: false\n };\n },\n\n beforeMount()\n {\n this.mountFilter();\n },\n\n mounted()\n {\n Event.bind('NTable:reset', \n this.resetFilter, this._.uid);\n\n Dom.find(document).on('keydown', \n this.onKeydown, this._.uid);\n },\n\n beforeUnmount()\n {\n Event.unbind('NTable:reset', \n this._.uid);\n\n Dom.find(document).off('keydown', \n null, this._.uid);\n },\n\n methods: {\n\n getFilterClone()\n {\n let tempFilter = this.NTable.getColumnFilter(this.column);\n\n if ( Any.isEmpty(tempFilter) ) {\n return null;\n }\n\n return Obj.clone(tempFilter);\n },\n\n getFilterProp()\n {\n return this.column.filterProp || \n this.column.prop;\n },\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null,\n property: this.getFilterProp(), \n };\n },\n\n mountFilter()\n {\n if ( this.filter ) {\n return this.applyFilter();\n }\n\n this.filter = this.getDefaultFilter();\n\n if ( ! this.canApply ) {\n return;\n }\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n resetFilter(uid)\n {\n if ( this.NTable.uid !== uid ) {\n return;\n }\n\n this.filter = this.getDefaultFilter();\n\n Arr.add(this.NTable.tempFilter, this.filter, {\n property: this.getFilterProp()\n });\n },\n\n onKeydown(event)\n {\n if ( ! this.visible ) {\n return;\n }\n\n if ( event.which === 13 && this.canApply ) {\n this.applyFilter();\n }\n\n if ( event.which === 13 && ! this.canApply ) {\n this.clearFilter();\n }\n\n let closeAnyway = event.which === 13 &&\n this.NTable.closeFilterOnEnter;\n\n if ( closeAnyway || event.which === 27 ) {\n this.$refs.popover.close();\n }\n },\n\n applyFilter()\n {\n let filter = Obj.clone(this.filter);\n\n Arr.add(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n },\n\n clearFilter()\n {\n let filter = this.getDefaultFilter();\n\n Arr.remove(this.NTable.tempFilterProps, \n this.getFilterProp());\n\n this.NTable.replaceFilter(filter, {\n property: this.getFilterProp()\n });\n\n this.filter = filter;\n }\n\n },\n\n renderForm()\n {\n return null;\n },\n\n renderApply()\n {\n let props = {\n type: 'primary',\n 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, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterString',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'li',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n li: this.trans('Includes value'),\n nl: this.trans('Excludes value'),\n eq: this.trans('Equal value'),\n ne: this.trans('Except value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NInput size=\"sm\" vModel={this.filter.value} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterBoolean',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'in',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n 1: this.trans(this.column.trueText),\n 0: this.trans(this.column.falseText),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.value} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\n\nexport default {\n\n name: 'NTableFilterDatetime',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type, \n value: null, \n operator: 'eq',\n property: this.getFilterProp(), \n };\n }\n\n },\n\n renderForm()\n {\n let options = {\n eq: this.trans('Exact date'),\n lt: this.trans('Before date'),\n gt: this.trans('After date'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NDatepicker size=\"sm\" vModel={this.filter.value} />\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import TableFilter from \"../table-filter.jsx\";\nimport { Arr, Obj, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NTableFilterOption',\n\n extends: TableFilter,\n\n methods: {\n\n getDefaultFilter()\n {\n return {\n type: this.column.type,\n value: [],\n operator: 'in',\n property: this.getFilterProp(),\n };\n }\n\n },\n\n renderOption(value)\n {\n let props = {\n value: Obj.get(value, this.column.optionsValue)\n };\n\n return (\n <NCheckbox {...props}>{ Obj.get(value, this.column.optionsLabel) }</NCheckbox>\n );\n },\n\n renderForm()\n {\n let items = this.column.options;\n\n if ( Any.isFunction(items) ) {\n items = this.column.options(this);\n }\n\n items = Arr.each(items, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let options = {\n in: this.trans('Includes value'),\n ni: this.trans('Excludes value'),\n };\n\n return (\n <NForm>\n <NFormItem>\n <NCheckboxGroup size=\"sm\" align=\"vertical\" vModel={this.filter.value}>\n { Arr.each(items, this.ctor('renderOption')) }\n </NCheckboxGroup>\n </NFormItem>\n <NFormItem>\n <NSelect size=\"sm\" vModel={this.filter.operator} options={options} />\n </NFormItem>\n </NForm>\n );\n }\n\n}\n","import { Str, Num, Arr, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPaginator',\n\n props: {\n\n page: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n limit: {\n default()\n {\n return 100;\n },\n type: [Number]\n },\n\n limitOptions: {\n default()\n {\n return [25, 50, 100, 500, 1000, 2500];\n },\n },\n\n total: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n maxPages: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n layout: {\n default()\n {\n return [\n 'limit', 'count', 'spacer', 'goto', 'pages'\n ]\n },\n type: [Array]\n }\n\n },\n\n computed: {\n\n pages()\n {\n return Num.ceil(this.total / this.tempLimit);\n },\n\n pageOptions()\n {\n return Arr.make(this.pages || 1);\n }\n\n },\n\n data()\n {\n return {\n tempPage: this.page, tempLimit: this.limit,\n };\n },\n\n\n 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 ( Any.isFunction(renderFunction) ) {\n return renderFunction();\n }\n\n return this.$slots[view] && this.$slots[view]();\n },\n\n render()\n {\n let className = [\n 'n-paginator',\n 'n-paginator--' + this.size,\n 'n-paginator--' + this.type\n ];\n\n return <div class={className}>\n {\n Arr.each(this.layout, (view) => {\n return this.ctor('renderSlot')(view);\n })\n }\n </div>;\n }\n}\n","import { Arr, Any, Obj, Event, UUID } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfo',\n\n model: {\n prop: 'item'\n },\n\n props: {\n\n item: {\n default()\n {\n return null;\n }\n },\n\n syncEvent: {\n default()\n {\n return null;\n }\n },\n\n type: {\n default()\n {\n return 'primary';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n relative: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n showEmptyIcon: {\n default()\n {\n return true;\n },\n type: [Boolean]\n },\n\n },\n\n data()\n {\n return {\n uid: UUID(),\n elements: [],\n options: [],\n tempValue: this.item,\n };\n },\n\n watch: {\n\n item(value)\n {\n if ( value !== this.tempValue ) {\n this.tempValue = value;\n }\n }\n\n },\n\n mounted()\n {\n this.bindSyncEvent();\n },\n\n beforeUnmount()\n {\n this.unbindSyncEvent();\n },\n\n updated()\n {\n Any.delay(() => {\n if ( this.$refs.scrollbar ) {\n // this.$refs.scrollbar.adaptHeight();\n }\n }, 500);\n },\n\n methods: {\n\n bindSyncEvent()\n {\n if ( !this.syncEvent ) {\n return;\n }\n\n this.options = this.syncEvent;\n\n if ( Any.isFunction(this.options) ) {\n this.options = this.options(this);\n }\n\n let syncFunction = (value, uid = null) => {\n if ( uid === this.options[1] ) {\n this.setValue(value);\n }\n };\n\n Event.bind(this.options[0], syncFunction,\n this.uid);\n },\n\n unbindSyncEvent()\n {\n Event.unbind(this.options[0], this.uid);\n },\n\n setValue(value)\n {\n this.$emit('update:modelValue',\n this.tempValue = value);\n },\n\n addColumn(column)\n {\n Arr.add(this.elements,\n column, { uid: column.uid });\n },\n\n removeColumn(column)\n {\n Arr.remove(this.elements,\n { uid: column.uid });\n },\n\n },\n\n provide()\n {\n return {\n NInfo: this\n };\n },\n\n renderEmpty()\n {\n return (\n <NEmptyIcon disabled={!this.showEmptyIcon} class=\"n-info__empty\">\n {this.$slots.empty && this.$slots.empty() || this.trans('No entry')}\n </NEmptyIcon>\n );\n },\n\n renderBody()\n {\n if ( Any.isEmpty(this.tempValue) ) {\n return this.ctor('renderEmpty')();\n }\n\n let elements = Obj.each(this.elements, (column) => {\n return (\n <div class=\"n-info__column\">\n {column.ctor('renderLabel')({ item: this.tempValue })}\n {column.ctor('renderBody')({ item: this.tempValue })}\n </div>\n );\n });\n\n return (\n <div class=\"n-info__body\">\n {Any.vals(elements)}\n </div>\n );\n },\n\n render()\n {\n let classList = [\n 'n-info',\n 'n-info--' + this.type,\n 'n-info--' + this.size,\n ];\n\n let infoHtml = (\n <NScrollbar ref=\"scrollbar\" relative={this.relative}>\n {this.ctor('renderBody')()}\n </NScrollbar>\n );\n\n return (\n <div class={classList}>\n {[infoHtml, this.$slots.default()]}\n </div>\n );\n }\n}\n","import { UUID, Obj, Locale, Str } from \"@kizmann/pico-js\";\nimport { h, resolveComponent } from \"vue\";\n\nexport default {\n\n name: 'NInfoColumn',\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n prop: {\n default()\n {\n return 'id';\n },\n type: [String]\n },\n\n label: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'string';\n },\n type: [String]\n },\n\n previewProp: {\n default()\n {\n return 'preview';\n },\n type: [String]\n },\n\n options: {\n default()\n {\n return [];\n },\n type: [Object, Array, Function]\n },\n\n optionsValue: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n optionsLabel: {\n default()\n {\n return '$value';\n },\n type: [String]\n },\n\n emptyText: {\n default()\n {\n return Locale.trans('-');\n },\n type: [String]\n },\n\n trueText: {\n default()\n {\n return Locale.trans('Yes');\n },\n type: [String]\n },\n\n falseText: {\n default()\n {\n return Locale.trans('No');\n },\n type: [String]\n },\n\n datetimeFormat: {\n default()\n {\n return Locale.trans('YYYY-MM-DD HH:mm');\n },\n type: [String]\n }\n\n },\n\n data()\n {\n return {\n uid: UUID()\n };\n },\n\n beforeMount()\n {\n this.NInfo.addColumn(this);\n },\n\n beforeUnmount()\n {\n this.NInfo.removeColumn(this);\n },\n\n renderLabel()\n {\n if ( this.$slots.label ) {\n return this.$slots.label();\n }\n \n return (\n <div class=\"n-info-column\">\n <span>{this.label}</span>\n </div>\n );\n },\n\n renderBody(props)\n {\n let passed = Obj.except(props, [], {\n column: this\n });\n\n let component = resolveComponent('NInfoField' + \n Str.ucfirst(this.type));\n\n if ( ! component ) {\n return null;\n }\n\n passed.class = [\n 'n-info-field',\n 'n-info-field--' + this.type\n ];\n\n return h(component, passed);\n },\n\n render()\n {\n return null;\n }\n\n}\n","import { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n inject: {\n\n NInfo: {\n default: undefined\n }\n\n },\n\n props: {\n\n column: {\n required: true\n },\n\n item: {\n required: true\n },\n\n },\n\n computed: {\n\n input()\n {\n return Obj.get(this.item, this.column.prop);\n }\n\n },\n\n render()\n {\n return (\n <div>\n <span>{ this.input }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldString',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertString(this.input, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldBoolean',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertBoolean(this.input, this.column.trueText, this.column.falseText) }</span>\n </div>\n );\n }\n\n}\n","import { Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldDatetime',\n\n extends: InfoField,\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n return (\n <div>\n <span>{ Any.convertDatetime(this.input, this.column.datetimeFormat, this.column.emptyText) }</span>\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any } from \"@kizmann/pico-js\";\nimport InfoField from \"../info-field.jsx\";\n\nexport default {\n\n name: 'NInfoFieldOption',\n\n extends: InfoField,\n\n renderOption(value)\n {\n let options = this.column.options;\n\n if ( Any.isFunction(options) ) {\n options = this.column.options(this);\n }\n\n let prop = this.column.optionsValue;\n\n options = Arr.each(options, (value, index) => {\n return { $value: value, $index: index };\n });\n\n let option = Arr.find(options, (item) => {\n return Obj.get(item, prop) == value;\n });\n\n if ( ! option ) {\n return [this.column.emptyText];\n }\n\n return Obj.get(option, this.column.optionsLabel,\n this.column.undefinedText);\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let input = ! Any.isObject(this.input) ?\n [this.input] : this.input;\n\n return (\n <div>\n <span>{ Arr.each(input, this.ctor('renderOption')) }</span>\n </div>\n );\n }\n\n}\n","import InfoField from \"../info-field.jsx\";\nimport { Obj } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NInfoFieldImage',\n\n extends: InfoField,\n\n computed: {\n\n preview()\n {\n return Obj.get(this.item, this.column.previewProp);\n }\n\n },\n\n render()\n {\n if ( this.column.cslo('default', this) ) {\n return (\n <div>{ this.column.$slots.default(this) }</div>\n );\n }\n\n let props = {\n fit: 'contain',\n };\n\n return (\n <div>\n <NPreview file={this.preview || this.input} thumb={this.input} {...props} />\n </div>\n );\n }\n\n}\n","import { UUID, Obj, Arr, Any, 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 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 ( Any.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 { Any, Obj, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewPlain',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n 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, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewImage',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n load: false, tempSrc: null\n };\n },\n\n beforeMount()\n {\n if ( ! window.ImageCache ) {\n window.ImageCache = [];\n }\n\n\n if ( ! Arr.has(window.ImageCache, this.src) ) {\n this.tempSrc = this.src;\n }\n\n },\n\n mounted()\n {\n this.resolveLoad();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveLoad();\n }\n\n },\n\n methods: {\n\n resolveLoad()\n {\n if ( Arr.has(window.ImageCache, this.src) ) {\n return;\n }\n\n this.tempSrc = null;\n\n if ( Any.isObject(this.src) ) {\n return this.resolveData();\n }\n\n Dom.find(this.$refs.image).loaded(() => {\n\n /**\n * Add image to cache\n */\n Arr.add(window.ImageCache, this.src);\n\n /**\n * Mark image as loaded\n */\n Any.delay(() => this.load = false, 200);\n });\n\n this.laod = true;\n },\n\n resolveData()\n {\n let reader = new FileReader();\n\n reader.onload = () => {\n this.tempSrc = reader.result;\n };\n\n reader.readAsDataURL(this.src);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-preview-image'\n ];\n\n if ( Arr.has(window.ImageCache, this.src) ) {\n classList.push('n-cached');\n }\n\n if ( ! this.load ) {\n classList.push('n-ready');\n }\n\n return (\n <div class={classList}>\n <img ref=\"image\" src={this.tempSrc || this.src} />\n </div>\n );\n }\n\n}","import { Obj, Arr, Str, Any, Dom } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NPreviewVideo',\n\n props: {\n\n src: {\n default()\n {\n return null;\n }\n },\n\n },\n\n data()\n {\n return {\n provider: 'plain', unique: null, tempSrc: null\n };\n },\n\n mounted()\n {\n this.resolveType();\n },\n\n watch: {\n\n 'src': function () {\n this.resolveType();\n }\n\n },\n\n methods: {\n\n resolveType()\n {\n this.tempSrc = null;\n\n if ( this.resolveYoutube() ) {\n return;\n }\n\n if ( this.resolveVimeo() ) {\n return;\n }\n\n if ( Any.isObject(this.src) ) {\n this.resolveData();\n }\n\n this.provider = 'plain';\n },\n\n resolveData()\n {\n console.log('Coming at some point (blob stream)....');\n },\n\n resolveYoutube()\n {\n let youtube = 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 { Any, Event, Obj, UUID } 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 UUID();\n },\n type: [String]\n },\n\n },\n\n data()\n {\n return { uid: 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 { Any, 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 ( Any.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 ( Any.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 ( Any.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 ( ! Any.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 ( ! Any.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 { Any, 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 ( ! Any.isObject(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 ( ! Any.isObject(this.current) ) {\n return null;\n }\n\n let items = this.get(this.current.group);\n\n let index = Arr.findIndex(items, {\n uid: this.current.uid\n });\n\n let prev = Arr.last(items);\n\n if ( 0 <= index - 1 ) {\n prev = Arr.get(items, index - 1);\n }\n\n return this.switch(prev);\n }\n\n static create()\n {\n el = Dom.find('.n-preview-modal');\n\n if ( el.length() ) {\n return el;\n }\n\n let classList = [\n 'n-preview-modal',\n 'n-preview-modal--md',\n 'n-preview-modal--primary',\n 'n-theme--dark'\n ];\n\n let el = Dom.make('div', {\n classList: classList.join(' ')\n });\n\n el.attr('data-preview', 'nano');\n\n let close = Dom.make('div', {\n classList: 'n-preview-modal__close',\n innerHTML: `<i class=\"${nano.Icons.times}\"></i>`\n });\n\n close.on('click', () => {\n this.close()\n });\n\n close.appendTo(el);\n\n let prev = Dom.make('div', {\n classList: 'n-preview-modal__prev',\n innerHTML: `<i class=\"${nano.Icons.angleLeft}\"></i>`\n });\n\n prev.on('click', () => {\n this.prev()\n });\n\n prev.appendTo(el);\n\n let next = Dom.make('div', {\n classList: 'n-preview-modal__next',\n innerHTML: `<i class=\"${nano.Icons.angleRight}\"></i>`\n });\n\n next.on('click', () => {\n this.next()\n });\n\n next.appendTo(el);\n\n el.appendTo(document.body);\n\n return el;\n }\n\n static open(item)\n {\n let el = this.create();\n\n let keydownFn = (e) => {\n\n if ( e.keyCode === 27 ) {\n e.stopPropagation();\n return this.close();\n }\n\n if ( e.keyCode === 37 ) {\n e.stopPropagation();\n return this.prev();\n }\n\n if ( e.keyCode === 39 ) {\n e.stopPropagation();\n return this.next();\n }\n\n }\n\n Dom.find(window).on('keydown', keydownFn, {\n uid: 'n-preview-modal'\n });\n\n this.switch(item);\n\n if ( this.get(item.group).length > 1 ) {\n el.addClass('n-multi');\n }\n\n el.addClass('n-ready');\n }\n\n static close()\n {\n let el = this.create();\n\n Dom.find(window).off('keydown', null, {\n uid: 'n-preview-modal'\n });\n\n this.switch(null);\n\n el.removeClass(['n-ready', 'n-multi']);\n }\n\n static switch(item)\n {\n if ( Any.isObject(this.current) ) {\n Obj.set(this.current, 'visible', false);\n }\n\n this.current = item;\n\n if ( Any.isObject(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, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMap',\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n zoom: {\n default()\n {\n return 15;\n },\n type: [Number]\n }\n\n },\n\n provide()\n {\n return {\n NMap: this\n };\n },\n\n data()\n {\n return { init: false, callbacks: [], tempMap: null };\n },\n\n watch: {\n\n lat()\n {\n Any.delay(() => this.tempMap.focusMarkers(), 100);\n },\n\n lng()\n {\n Any.delay(() => this.tempMap.focusMarkers(), 100);\n }\n\n },\n\n mounted()\n {\n this.tempMap = new Map(this.$el, {\n lat: this.lat, lng: this.lng, zoom: this.zoom\n });\n\n this.init = true;\n\n Arr.each(this.callbacks, (callback) => callback())\n },\n\n methods: {\n\n getMap()\n {\n return this.tempMap;\n },\n\n onMount(callback)\n {\n this.init ? callback() : this.callbacks.push(callback);\n }\n\n },\n\n render()\n {\n let classList = [\n 'n-map'\n ];\n\n return (\n <div class={classList}>\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n}\n","import { UUID, Obj, Num, Any } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NMapMarker',\n\n inject: {\n\n NMap: {\n default: undefined\n }\n\n },\n\n props: {\n\n lat: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n lng: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n drag: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n options: {\n default()\n {\n return { style: 'default' };\n },\n type: [Object]\n },\n\n },\n\n data()\n {\n return {\n id: UUID(), tempMarker: null\n };\n },\n\n methods: {\n\n importMarkerPosition()\n {\n this.tempMarker.marker.setPosition({\n lat: this.lat, lng: this.lng\n });\n },\n\n updateMarkerPosition()\n {\n this.$emit('update:lat', this.tempMarker.marker.getPosition().lat());\n this.$emit('update:lng', this.tempMarker.marker.getPosition().lng());\n },\n\n initializeMarker()\n {\n let options = Obj.assign({\n lat: Num.float(this.lat), lng: Num.float(this.lng), draggable: this.drag\n }, this.options);\n\n if ( ! Any.isEmpty(this.$slots.default) ) {\n options.html = this.$el.innerHTML;\n }\n\n this.tempMarker = this.NMap.getMap().createMarker(this.id, options);\n\n this.tempMarker.marker.addListener('position_changed',\n Any.debounce(this.updateMarkerPosition));\n\n this.tempMarker.marker.addListener('dragstart',\n () => this.$emit('dragstart', this.tempMarker));\n\n this.tempMarker.marker.addListener('dragend',\n () => this.$emit('dragend', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseover',\n () => this.$emit('mouseenter', this.tempMarker));\n\n this.tempMarker.marker.addListener('mouseout',\n () => this.$emit('mouseleave', this.tempMarker));\n },\n\n setMarkerByAddress(address)\n {\n let successClosure = () => {\n this.NMap.getMap().focusMarkers(null, this.NMap.zoom);\n };\n\n let errorClosure = () => {\n this.Notify(this.trans('Address not found.'), 'danger');\n };\n\n this.NMap.getMap().setMarkerByAddress(this.id, address)\n .then(successClosure, errorClosure);\n }\n\n },\n\n watch: {\n\n lat()\n {\n this.importMarkerPosition();\n },\n\n lng()\n {\n this.importMarkerPosition();\n }\n\n },\n\n beforeMount()\n {\n this.NMap.onMount(this.initializeMarker);\n },\n\n render()\n {\n return (\n <div style=\"display: none;\">\n { this.$slots.default && this.$slots.default() }\n </div>\n );\n }\n\n}\n","import { Arr, Obj, Any, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NFile',\n\n props: {\n\n modelValue: {\n default()\n {\n return null;\n }\n },\n\n multiple: {\n default()\n {\n return false;\n },\n type: [Boolean]\n },\n\n icon: {\n default()\n {\n return '';\n },\n type: [String]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n 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 ( Any.isEmpty(this.tempValue) ) {\n this.$refs.input.value = null;\n }\n }\n\n },\n\n methods: {\n\n openContext()\n {\n this.$refs.input.click();\n },\n\n updateFile()\n {\n let tempValue = [\n ...this.$refs.input.files\n ];\n\n if ( ! this.multiple ) {\n tempValue = tempValue[0];\n }\n\n this.$emit('update:modelValue', this.tempValue = tempValue);\n },\n\n clearFile()\n {\n this.$emit('update:modelValue', null);\n }\n\n },\n\n renderInput()\n {\n let props = {\n size: this.size,\n disabled: true,\n iconDisabled: false,\n };\n\n props['onIconClick'] = this.clearFile;\n\n if ( ! this.multiple ) {\n props.modelValue = Obj.get(this.tempValue, 'name');\n }\n\n if ( this.multiple ) {\n props.modelValue = Locale.choice(':count File|:count Files',\n this.tempValue.length);\n }\n\n if ( this.clearable && !Any.isEmpty(this.tempValue) ) {\n props.icon = this.clearableIcon;\n }\n\n return (\n <NInput {...props}>\n { /* Input field for text */ }\n </NInput>\n );\n },\n\n renderButton()\n {\n let props = {\n size: this.size,\n disabled: this.disabled,\n icon: this.icon,\n 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 { Num, Arr, Locale } from \"@kizmann/pico-js\";\n\nexport default {\n\n name: 'NRating',\n\n props: {\n\n modelValue: {\n default()\n {\n return 0;\n },\n type: [Number]\n },\n\n steps: {\n default()\n {\n return 0.5;\n },\n type: [Number]\n },\n\n fixed: {\n default()\n {\n return 1;\n },\n type: [Number]\n },\n\n max: {\n default()\n {\n return 5;\n },\n type: [Number]\n },\n\n size: {\n default()\n {\n return 'md';\n },\n type: [String]\n },\n\n choice: {\n default()\n {\n return ':count';\n },\n type: [String]\n },\n\n type: {\n default()\n {\n return 'default';\n },\n type: [String]\n },\n\n disabled: {\n default()\n {\n return false;\n },\n type: [Boolean]\n }\n\n },\n\n computed: {\n\n virtualValue()\n {\n return Num.fixed(1 / this.max * this.modelValue * 5, this.fixed);\n },\n\n },\n\n renderStars()\n {\n let stars = [\n 1, 2, 3, 4, 5\n ];\n\n return Arr.each (stars, (rate) => {\n\n let className = 'is-null';\n\n if ( this.virtualValue >= rate - 0.5 ) {\n className = 'is-half';\n }\n\n if ( this.virtualValue >= rate ) {\n className = 'is-full';\n }\n\n return (\n <span class={className}></span>\n );\n });\n },\n\n renderValue()\n {\n let vars = {\n value: Num.format(this.modelValue, '.', '', this.fixed)\n };\n\n if ( this.$slots.default ) {\n return this.$slots.default(vars);\n }\n\n return Locale.choice(this.choice, this.modelValue, vars);\n },\n\n render()\n {\n let classList = [\n 'n-rating',\n 'n-rating--' + this.size,\n 'n-rating--' + this.type\n ];\n\n if ( this.disabled ) {\n classList.push('n-disabled');\n }\n\n return (\n <div class={classList}>\n <div class=\"n-rating__stars\">\n {this.ctor('renderStars')()}\n </div>\n <div class=\"n-rating__value\">\n {this.ctor('renderValue')()}\n </div>\n </div>\n );\n }\n\n}\n","import { UUID, Num, Arr, Obj, Any, Dom, Locale } from \"@kizmann/pico-js\";\n\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 .previous().get(0);\n\n Dom.find(document.body).on('mousedown',\n this.eventClick, this._.uid);\n\n Dom.find(document.body).on('keydown',\n this.eventKeydown, this._.uid);\n\n let showDrawer = () => {\n this.tempValue = true;\n };\n\n if ( this.modelValue ) {\n Any.delay(showDrawer, 100);\n }\n\n Dom.find(document.body).append(this.$el);\n },\n\n beforeUnmount()\n {\n this.$el.remove();\n },\n\n unmounted()\n {\n Dom.find(document.body).off('mousedown',\n null, this._.uid);\n\n Dom.find(document.body).off('keydown',\n null, this._.uid);\n },\n\n methods: {\n\n openModal(force = false, source = null)\n {\n if ( this.tempValue ) {\n return;\n }\n\n if ( this.closable || force ) {\n this.tempValue = true;\n }\n\n this.$emit('update:modelValue', true, source);\n },\n\n closeDrawer(force = false, source = null)\n {\n if ( ! this.tempValue ) {\n return;\n }\n\n if ( ! this.update ) {\n return this.$emit('close', source);\n }\n\n if ( this.closable || force ) {\n this.tempValue = false;\n }\n\n this.$emit('update:modelValue', false, source);\n },\n\n stopRefreshTimeout()\n {\n clearTimeout(this.refresh);\n\n Dom.find(this.$el).removeClass('n-ready');\n },\n\n startRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n window.zIndex += 1;\n\n Dom.find(this.$el).attr('data-drawer',\n window.zIndex);\n\n Dom.find(this.$el).css({\n 'z-index': window.zIndex\n });\n\n this.queueRefreshTimeout();\n },\n\n queueRefreshTimeout()\n {\n if ( ! this.tempValue ) {\n return this.stopRefreshTimeout();\n }\n\n this.refresh = setTimeout(() => {\n Dom.find(this.$el).addClass('n-ready');\n }, 100);\n },\n\n eventClick(event, el)\n {\n if ( this.disabled || event.which !== 1 ) {\n return;\n }\n\n let result = !! Dom.find(el).closest(this.target);\n\n if ( ! result && ! this.tempValue ) {\n return;\n }\n\n if ( this.tempValue && this.closable ) {\n result = ! Dom.find(el).closest(this.$refs.backdrop);\n }\n\n if ( result === this.tempValue ) {\n return;\n }\n\n if ( ! result ) {\n return this.closeDrawer(false, 'escape');\n }\n\n if ( this.listen ) {\n this.openModal(true, 'selector');\n }\n },\n\n eventKeydown(event, el)\n {\n if ( ! this.tempValue || event.which !== 27 ) {\n return;\n }\n\n let extractIndex = (modal) => {\n return Dom.find(modal).attr('data-drawer');\n };\n\n let indexes = Dom.find('.n-drawer:not(.n-hidden)')\n .each(extractIndex);\n\n let index = Dom.find(this.$el).attr('data-drawer');\n\n if ( Arr.last(indexes.sort()) !== index ) {\n return;\n }\n\n this.closeDrawer(false, 'escape');\n },\n\n },\n\n renderClose()\n {\n if ( ! this.renderClose || ! this.closable ) {\n return null;\n }\n\n let props = {\n onClick: () => this.closeDrawer(false, 'escape')\n };\n\n return (\n <div class=\"n-drawer__close\" {...props}>\n <span class={nano.Icons.times}></span>\n </div>\n );\n },\n\n renderHeader()\n {\n if ( ! this.$slots.header && ! this.title ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__header\">\n { [this.$slots.header && this.$slots.header({ closeDrawer: this.closeDrawer }) || this.title, this.ctor('renderClose')()] }\n </div>\n );\n },\n\n renderFooter()\n {\n if ( ! this.$slots.footer ) {\n return null;\n }\n\n return (\n <div class=\"n-drawer__footer\">\n { this.$slots.footer({ closeDrawer: this.closeDrawer }) }\n </div>\n );\n },\n\n renderBody()\n {\n let bodyHtml = (\n <NScrollbar ref=\"scrollbar\" relative={true} wrapClass=\"n-drawer__wrap\">\n { this.$slots.default && this.$slots.default({ closeDrawer: this.closeDrawer }) }\n </NScrollbar>\n );\n\n if ( this.$slots.body ) {\n bodyHtml = this.$slots.body({ closeDrawer: this.closeDrawer });\n }\n\n return (\n <div class=\"n-drawer__body\">\n { bodyHtml }\n </div>\n );\n },\n\n renderFrame()\n {\n if ( ! this.tempValue ) {\n return null;\n }\n\n let style = {\n width: this.width\n };\n\n let innerHtml = [\n this.ctor('renderHeader')(),\n this.ctor('renderBody')(),\n this.ctor('renderFooter')(),\n ]\n\n return (\n <div class=\"n-drawer__frame\" style={style}>\n { this.$slots.raw ? this.$slots.raw() : innerHtml }\n </div>\n );\n },\n\n renderBackdrop()\n {\n 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, Any, UUID, 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: 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 ( ! Any.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, Any, Dom, UUID, 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).css({\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).css(null);\n }\n\n },\n\n renderCircle(item, index)\n {\n let gaps = (this.vis.length) * (this.width * 2);\n\n if ( ! Any.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 ( Any.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 ( Any.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, Any, 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 ( Any.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 ( Any.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\";\nimport NBuilder from \"./src/builder/builder.jsx\";\nimport NRefrencePanel from \"./src/reference-panel/reference-panel.jsx\";\nimport NRefrencePicker from \"./src/reference-picker/reference-picker.jsx\";\n\nexport default function(App) {\n App.component(NConfig.name, NConfig);\n App.component(NConfigNext.name, NConfigNext);\n App.component(NBuilder.name, NBuilder);\n App.component(NRefrencePanel.name, NRefrencePanel);\n App.component(NRefrencePicker.name, NRefrencePicker);\n}\n","import Scrollbar from \"./src/scrollbar/scrollbar.jsx\";\n\nexport default function (App) {\n App.component(Scrollbar.name, Scrollbar);\n}","import Virtualscroller from \"./src/virtualscroller/virtualscroller.jsx\";\n\nexport default function (App) {\n App.component(Virtualscroller.name, Virtualscroller);\n}","import Draglist from \"./src/draglist/draglist.jsx\";\nimport DraglistItem from \"./src/draglist-item/draglist-item.jsx\";\nimport Draggrid from \"./src/draggrid/draggrid.jsx\";\nimport DraggridItem from \"./src/draggrid-item/draggrid-item.jsx\";\nimport Dropzone from \"./src/dropzone/dropzone.jsx\";\n\nexport default function (App) {\n App.component(Draglist.name, Draglist);\n App.component(DraglistItem.name, DraglistItem);\n App.component(Draggrid.name, Draggrid);\n App.component(DraggridItem.name, DraggridItem);\n App.component(Dropzone.name, Dropzone);\n}","import Loader from \"./src/loader/loader.jsx\";\n\nexport default function (App) {\n App.component(Loader.name, Loader);\n}\n","import Resizer from \"./src/resizer/resizer.jsx\";\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__","window","NanoBuilderTypes","Locale","trans","NanoBuilderIndexies","childs","props","modelValue","for","type","onValue","offValue","onType","options","NanoPrototypeTypes","offType","size","NanoPrototypeSizes","disabled","NanoPrototypeBools","default","clearValue","clearable","min","max","Number","MAX_VALUE","stepSize","precision","placeholder","format","decimals","classList","link","square","icon","iconPosition","nativeType","click","label","iconDisabled","iconClick","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","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","attrsList","Any","isString","isArray","Arr","each","isPlain","assign","$attrs","cslo","slot","$slots","findIndex","Comment","AlertHandler","_classCallCheck","_defineProperty","text","uid","UUID","unbindEvents","modal","remove","Dom","find","document","body","css","el","AlertIcons","make","innerHTML","concat","appendTo","on","e","keyCode","stopPropagation","close","target","inside","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","Boolean","inline","_createVNode","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","style","display","model","map","input","content","slots","resolved","resolveComponent","h","extraValue","sempValue","getString","final","propAwait","result","state","getState","propExists","exists","solveInput","sources","$scope","$model","$extra","$global","toPropKey","splits","Str","ucfirst","lcfirst","toEventKey","cb","solveContext","_this3","console","error","getProp","getInput","isNull","setInput","renderSetup","_this4","defaultsBind","binds","events","updateKey","renderSlot","callback","_this5","_this6","_isSlot","s","toString","_isVNode","NanoBuilderPropType","NanoBuilderPropCode","NanoBuilderProps","renderDemo","renderExport","init","demo","collapse","safevar","normalizeModel","mounted","exportJson","JSON","stringify","clone","matches","exportExecutable","Function","normalizeChild","order","vals","child","applyProps","_objectSpread","except","builder","buildProps","first","_typeof","getOriginalValue","safevalue","btoa","getSafeValue","string","getRealValue","realvalue","code","number","parse","atob","original","changeElement","update","newKey","unset","k","changeAlias","changeType","bindValue","only","sey","isObject","$nextTick","addProp","removeProp","collapseElement","toggle","addElement","removeElement","moveupElement","_ref","MIN_VALUE","sub","Math","replacement","movedownElement","_ref2","renderTools","rootProps","collapseProps","href","addProps","removeProps","moveupProps","movedownProps","_mergeProps","renderProp","group","$data","index","typeProps","keyProps","allowCreate","optionsLabel","codeProps","valueInputProps","valueHtml","_resolveComponent","$event","fallbackProps","minRows","autoRows","_createTextVNode","renderProps","_slot","_this7","elementProps","aliasProps","plainProps","renderElement","_this8","builderHtml","renderBuilder","_this9","items","sort","v","renderBody","renderHead","_slot2","_slot3","_this0","addHtml","demoProps","demoHtml","renderOutput","_slot4","_this1","renderFunction","_ref3","configProps","width","height","expanded","selected","modelTree","buildTree","scopeTree","ref","submitItem","$emit","selectItem","expandItem","renderLeaf","renderTree","childItems","childHtml","renderItem","renderModel","modelHtml","renderScope","scopeHtml","updateValue","renderModal","modalProps","panelProps","renderInput","inputProps","inject","NScrollbar","provide","overflowY","overflowX","offsetY","offsetX","framerate","wrapClass","computed","touch","navigator","msMaxTouchPoints","mousedown","mousemove","mouseup","native","beforeMount","outer","hasHtrack","hasVtrack","adaptScrollBehavior","observer","ResizeObserver","getWrapperSizeDebounced","observe","$el","Event","bind","_","passive","onScroll","getWrapperSize","beforeUnmount","disconnect","unbind","rect","getBoundingClientRect","now","round","isEqual","clearInterval","interval","spacer","actual","removeClass","clientWidth","clientHeight","rainbow","styles","adaptScrollHeight","adaptScrollWidth","frameWidth","frameHeight","scrollTo","x","y","onScrollTo","scrollTop","scrollLeft","scrollIntoView","selector","padding","onScrollIntoView","outerHeight","offsetTop","outerWidth","offsetLeft","$dom","offsetWidth","offsetHeight","innerHeight","scrollHeight","compare","barHeight","maxHeight","ceil","heightRatio","vbar","adaptScrollPosition","innerWidth","scrollWidth","barWidth","maxWidth","widthRatio","hbar","scroll","top","left","vbarTop","transform","hbarLeft","then","getTouchEvent","event","touches","changedTouches","onVbarMousedown","which","preventDefault","onVbarMousemove","onVbarMouseup","clientY","offset","onHbarMousedown","onHbarMousemove","onHbarMouseup","clientX","WIN","vbarProps","hbarProps","DEBUG_NVSCROLL","NDraggable","itemHeight","itemWidth","renderNode","deathzone","threshold","useKeys","uniqueProp","start","end","grid","buffer","updateRender","ready","bindAdaptScroll","unbindAdaptScroll","callWhenReady","clearWhenReady","refreshScroll","setInterval","onScrollupdate","isIndexRendered","scrollbar","scrollToIndex","onScrollToIndex","total","floor","targetTop","refreshDriver","clearState","onSizechange","queue","timer","Date","clearTimeout","to","bufferItems","passed","topOffset","renderRows","slice","renderGridRows","counter","chunk","renderGrid","chunks","renderItems","totalHeight","dragMods","NDragCounter","_createClass","count","html","choice","dataTransfer","setData","setDragImage","keyMods","attr","DragCounter","NDragIndicator","parent","safezone","strategy","hasClass","show","hide","item","NDraghandler","rootNode","_this$bindDragstart","DragIndicator","DragCache","bindDragstart","_toConsumableArray","onDragenterRoot","onDragoverRoot","onDragleaveRoot","onDragendRoot","onDragdropRoot","bindDragend","bindDragdrop","closest","cacheNodes","frames","allowDrop","node","fire","moveNodes","cache","allowGroups","dragcount","dropNodes","tempSelected","removeNode","unlinkNodes","removeNodes","isSelected","id","virtuals","route","resolve","targetNode","isInSelf","cascade","childNodes","unbindNode","$handle","handle","onDragstartNode","onDragenterNode","onDragoverNode","onDragleaveNode","onDragendNode","onDragdropNode","moveNodesMany","moveNodesOne","insertNode","moveNodesRoot","transformDrop","moveNodesInto","moveNodesBefore","moveNodesAfter","eventName","filter","childProp","disableMove","targetRoute","children","splice","reduce","reduceItem","Num","depth","cascades","unique","tempCascade","virtual","last","DEBUG_NDLIST","draggable","current","lazyload","showEmptyIcon","itemOffset","scrollTopOnChange","renderCurrent","renderHandle","renderSelect","renderExpand","allowSelect","allowDrag","keyEvents","highlightTimeout","modifier","visible","highlight","firstSelected","lastSelected","tempCurrent","tempExpanded","drag","watchModifierDown","watchModifierUp","virtualscroller","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","expandCurrent","isTotalSelected","isInterSelected","toggleSingleNode","toggleRangeNode","indexies","reversed","selectAll","row","unselectAll","bindKeydown","onKeydown","unbindKeydown","renderEmpty","onMouseenter","onMouseleave","NDraggableItem","required","bindNode","copy","copyNode","onClick","onDblclick","renderSpacer","Icons","angleRight","checked","NDropzone","NLoader","minimum","debounce","tempVisible","applyTimer","timing","startTimer","restartTimer","timeout","flex","minWidth","position","resizerWidth","sizeFixed","getWidthDebounced","updateRemoteWidth","forceWidth","updateHandle","unmounted","updateWidth","onLeftMousedown","onLeftMouseup","onLeftMousemove","scrollX","targetWidth","frameStyle","onRightMousedown","onRightMouseup","onRightMousemove","isNumber","NPopover","listen","trigger","theme","scrollClose","multiClose","alwaysRender","prevent","previous","popel","Popover","active","open","raw","header","footer","viewBody","tempSize","focus","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","times","renderHeader","renderFooter","bodyHtml","renderFrame","innerHtml","renderBackdrop","glass","NForm","NFormItem","inheritAttrs","deepDisabled","onIconClick","onInput","onSubmit","onFocus","onBlur","clear","getValue","getDisplayValue","nextStep","isNaN","toFixed","onNextDown","prevTimeout","prevInterval","nextTimeout","nextInterval","onNextUp","prevStep","onPrevDown","onPrevUp","regex","RegExp","renderPrev","onMousedown","renderNext","renderClear","maxRows","maxLength","eventInput","rows","currentRows","lazy","multiple","emptyText","undefinedText","collapseText","optionsValue","optionsDisabled","custom","elements","tempClear","search","searched","generateOptions","searchOptions","NSelect","scrollToClosest","focusInput","$value","$index","option","tempLabel","addOption","removeOption","resetInput","onFocusInput","onInputInput","onKeydownInput","createOrToggle","selectPrev","selectNext","searchRegex","toggleOption","popover","denyUpdate","getOptionLabel","newIndex","scrollToCurrent","createOption","virtualscroll","select","renderLabelClear","renderLabelAngle","angleDown","renderLabelItem","labelHtml","renderLabelCollapse","firstHtml","renderLabelItems","renderMultiple","isEmptyValue","inputHtml","renderSingle","modelLabel","renderDisplay","displayHtml","emptyHtml","values","renderLazyOption","isMultipleActive","isSingleActive","renderLazyItems","renderPopover","onClose","renderOptions","valueProp","labelProp","toggleItem","renderOption","NCheckboxGroup","allowUncheck","intermediate","global","tempComputed","globalChecked","tempChecked","tempIntermediate","globalIntermediate","tempDisabled","globalDisabled","isChecked","addCheckbox","removeCheckbox","check","checkCheckbox","uncheck","uncheckCheckbox","eventShiftClick","shiftCheckbox","eventLocalClick","shiftKey","toggleCheckbox","eventGlobalClick","toggleAll","updateFromGroup","renderCheckbox","interHtml","checkHtml","renderLabel","align","checkbox","emit","checkboxes","uncheckAll","checkAll","NRadioGroup","addRadio","removeRadio","checkRadio","renderRadio","radio","range","steps","labels","fixmin","fixmax","minmax","getPseudoValue","onResize","setModelValue","getValPos","fixed","getValStyle","getBarPos","getBarWidth","getBarStyle","getClosestValue","diff","step","abs","onMouseup","onMousemove","relativeWidth","closestValue","stepMin","stepMax","handleProps","tooltip","renderHandles","renderBar","barProps","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","getYears","monthsGrid","getMonths","Now","tempArrive","tempDepart","tempView","tempRanger","cacheArrive","cacheDepart","gotoDate","gotoMonth","gotoYear","patchDate","resetTime","applyTime","patchMonth","printRange","patchYear","patchRange","renderToolbarPrev","angleLeft","renderToolbarNext","renderToolbarMonth","monthsHtml","month","addMonths","renderToolbarYear","yearsHtml","year","renderToolbar","prev","renderDateItem","equalDate","valid","isNotBeforeMin","after","isNotAfterMax","before","renderRangeDateItem","viewMode","isTempValid","between","arriveFirst","renderDate","legendHtml","day","getDatesGrid","panelHtml","prevMonth","nextMonth","renderMonthItem","equal","renderMonth","prevYear","nextYear","renderYearItem","renderYear","prevDecade","nextDecade","placeholderArrive","placeholderDepart","rangeSeparator","boundary","displayFormat","clearDatepicker","clearRangeDatepicker","clearSingleDatepicker","onValueInput","moment","isValid","date","onArriveInput","onDepartInput","onDatepickerInput","onDatepickerDepart","onDatepickerArrive","initialDate","renderRange","arriveProps","departProps","hoursInterval","minutesInterval","secondsInterval","hoursGrid","getHours","minutesGrid","getMinutes","secondsGrid","getSeconds","eventSelect","scrollbars","renderHourItem","hour","renderHourPanel","renderMinuteItem","minute","renderMinutePanel","renderSecondItem","second","renderSecondPanel","clearTimepicker","onTimepickerInput","renderPanel","clearDatetimepicker","renderPanels","renderDatePanel","renderTimePanel","minDuration","maxDuration","negativeText","days","hours","minutes","seconds","editValue","findPattern","pattern","replaceAll","humanizeValue","digitizeValue","dmatch","hmatch","mmatch","smatch","clearDurationpicker","onValueChange","onDurationpickerInput","onChange","optionProps","scrollProps","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","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","NFormFrame","tooltipPosition","NFormGroup","getItems","toggleGroup","openGroup","closeGroup","renderCollapse","textHtml","renderAction","renderTooltip","NTabs","NTabsItem","NCollapse","NCollapseItem","tooltipWindow","conditional","conditionOn","conditionOff","enabled","toggleCondition","$input","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","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","NTable","sortProp","sortDir","closeFilterOnEnter","tempVisibleProps","tempSortProp","tempSortDir","tempFilter","tempFilterProps","makeVisibleProps","detectVisible","addColumn","column","removeColumn","getColumnIndex","getColumnVisiblity","getColumnSorted","getColumnFilter","filterProp","property","getColumnFiltered","detectVisibity","intersect","sortByColumn","dir","replaceFilter","filters","resetFilter","refreshCurrent","columns","renderContext","defaultRender","draggableHtml","matrixDisabled","breakpoint","previewProp","matrix","matrixProp","fixedWidth","trueText","falseText","datetimeFormat","matrixValues","NTableColumn","tempWidth","changedStates","sortDirection","renderHeadLabel","renderHeadSort","renderHeadFilter","angleHtml","setFirstState","firstState","extends","TableCell","convertString","convertBoolean","convertDatetime","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","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","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","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","NBuilder","NRefrencePanel","NRefrencePicker","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"],"ignoreList":[],"sourceRoot":""}
|