@mono-lit/helper 0.0.0-stage → 0.0.1
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/LICENSE.md +55 -0
- package/README.md +34 -2
- package/dist/breakpoints-CAbhDUht.js +84 -0
- package/dist/checkbox-Cqpie9Ap.js +4 -0
- package/dist/chip-DBUUa2eB.js +4 -0
- package/dist/chip-limits-BMoO31JM.js +213 -0
- package/dist/chip-strip-Cw3gyz0q.js +213 -0
- package/dist/color-DHYrfXsX.js +253 -0
- package/dist/css-class-BRKRzHx-.js +60 -0
- package/dist/css-size-DhHSVZJK.js +37 -0
- package/dist/data/theme/presets.json.d.ts +140 -0
- package/dist/data-search-Bwo5bg8K.js +573 -0
- package/dist/data-source-controller-C50Qyfzh.js +178 -0
- package/dist/data-source-options-BTpfrOZ_.js +535 -0
- package/dist/data-source-options-CQSTZHPE.js +537 -0
- package/dist/data-source-read-CUX-lgrQ.js +216 -0
- package/dist/data-source-read-DL88aH8t.js +217 -0
- package/dist/decorate-DEXtNagw.js +141 -0
- package/dist/element-props-CLB6yvbm.js +114 -0
- package/dist/esm-Ptok4SQZ.js +2026 -0
- package/dist/excel-CY6zGkcx.js +608 -0
- package/dist/excel-DopRbEMK.js +608 -0
- package/dist/export-BvlBx_GZ.js +2302 -0
- package/dist/export.d.ts +1 -0
- package/dist/export.js +2302 -0
- package/dist/field-icons-BoOG6KrL.js +51 -0
- package/dist/field-path-C92eGLg3.js +251 -0
- package/dist/filter-builder-Bke3qOgJ.js +205 -0
- package/dist/filter-builder-CE4zE0V5.js +205 -0
- package/dist/filter-eval-DIfU2EAn.js +173 -0
- package/dist/filter-odata-C1vSGZaY.js +591 -0
- package/dist/form-control-core-B8d7k6vk.js +223 -0
- package/dist/form-control-core-eeRr0zLU.js +223 -0
- package/dist/hydration-flush-RB5Tz5nl.js +1001 -0
- package/dist/icon-CJkTlmTb.js +55 -0
- package/dist/icon-dVhYJUIH.js +17 -0
- package/dist/import-BgJdkwBI.js +606 -0
- package/dist/import.d.ts +1 -0
- package/dist/import.js +606 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +16 -0
- package/dist/index.node-DjvYOL-J.js +395 -0
- package/dist/index.node.d.ts +1 -0
- package/dist/index.node.js +16 -0
- package/dist/input-zGOULADt.js +4 -0
- package/dist/layout-var-CZnzMC0s.js +73 -0
- package/dist/light-slots-BVJwyg_2.js +244 -0
- package/dist/light-slots-DW1WgfgT.js +254 -0
- package/dist/markdown-DfqrfOJN.js +20146 -0
- package/dist/mono-button-CoVnBLav.js +873 -0
- package/dist/mono-button.shadow-FfP_hMH4.js +784 -0
- package/dist/mono-data-chart-ChU4Ii3p.js +738 -0
- package/dist/mono-data-dropdown-BAUl58kW.js +357 -0
- package/dist/mono-data-grid-CLBK8clE.js +4140 -0
- package/dist/mono-data-grid-Db80FzdZ.js +4142 -0
- package/dist/mono-element-B0kP_96P.js +232 -0
- package/dist/mono-event-Bi1qP9uN.js +129 -0
- package/dist/mono-form-controller-5PfsU4qa.js +409 -0
- package/dist/mono-modal-controller-BMO3n3rP.js +223 -0
- package/dist/mono-ui-CPV7rrdo.js +358 -0
- package/dist/notifier-CE4yxMUQ.js +88 -0
- package/dist/nuxt.d.ts +1 -0
- package/dist/nuxt.js +130 -0
- package/dist/popup-portal-BziRX1yG.js +465 -0
- package/dist/popup-stack-CEEMib__.js +189 -0
- package/dist/rate-limit-BBa2PO79.js +521 -0
- package/dist/reactive-BHsqVjRh.js +789 -0
- package/dist/reactive-D3EERqgO.js +47 -0
- package/dist/search.d.ts +1 -0
- package/dist/search.js +97 -0
- package/dist/src/components/accordion/accordion-core.d.ts +62 -0
- package/dist/src/components/accordion/accordion-types.d.ts +62 -0
- package/dist/src/components/accordion/index.d.ts +3 -0
- package/dist/src/components/accordion/index.shadow.d.ts +5 -0
- package/dist/src/components/accordion/mono-accordion.d.ts +55 -0
- package/dist/src/components/accordion/mono-accordion.shadow.d.ts +56 -0
- package/dist/src/components/alert/alert-core.d.ts +46 -0
- package/dist/src/components/alert/alert-types.d.ts +44 -0
- package/dist/src/components/alert/index.d.ts +3 -0
- package/dist/src/components/alert/index.shadow.d.ts +5 -0
- package/dist/src/components/alert/mono-alert.d.ts +44 -0
- package/dist/src/components/alert/mono-alert.shadow.d.ts +34 -0
- package/dist/src/components/breadcrumb/breadcrumb-core.d.ts +61 -0
- package/dist/src/components/breadcrumb/breadcrumb-list-core.d.ts +49 -0
- package/dist/src/components/breadcrumb/breadcrumb-render.d.ts +31 -0
- package/dist/src/components/breadcrumb/breadcrumb-types.d.ts +117 -0
- package/dist/src/components/breadcrumb/breadcrumb-utils.d.ts +43 -0
- package/dist/src/components/breadcrumb/index.d.ts +6 -0
- package/dist/src/components/breadcrumb/index.shadow.d.ts +8 -0
- package/dist/src/components/breadcrumb/mono-breadcrumb-list.d.ts +29 -0
- package/dist/src/components/breadcrumb/mono-breadcrumb-list.shadow.d.ts +48 -0
- package/dist/src/components/breadcrumb/mono-breadcrumb.d.ts +38 -0
- package/dist/src/components/breadcrumb/mono-breadcrumb.shadow.d.ts +73 -0
- package/dist/src/components/button/button-core.d.ts +90 -0
- package/dist/src/components/button/button-dropdown-core.d.ts +57 -0
- package/dist/src/components/button/button-dropdown-types.d.ts +129 -0
- package/dist/src/components/button/button-types.d.ts +219 -0
- package/dist/src/components/button/button-utils.d.ts +18 -0
- package/dist/src/components/button/index.button-dropdown.d.ts +4 -0
- package/dist/src/components/button/index.button-dropdown.shadow.d.ts +4 -0
- package/dist/src/components/button/index.d.ts +8 -0
- package/dist/src/components/button/index.shadow.d.ts +5 -0
- package/dist/src/components/button/mono-button-dropdown.d.ts +35 -0
- package/dist/src/components/button/mono-button-dropdown.shadow.d.ts +45 -0
- package/dist/src/components/button/mono-button.d.ts +123 -0
- package/dist/src/components/button/mono-button.shadow.d.ts +56 -0
- package/dist/src/components/card/card-core.d.ts +74 -0
- package/dist/src/components/card/card-types.d.ts +137 -0
- package/dist/src/components/card/card-utils.d.ts +23 -0
- package/dist/src/components/card/index.d.ts +4 -0
- package/dist/src/components/card/index.shadow.d.ts +6 -0
- package/dist/src/components/card/mono-card.d.ts +56 -0
- package/dist/src/components/card/mono-card.shadow.d.ts +52 -0
- package/dist/src/components/chart/chart-core.d.ts +43 -0
- package/dist/src/components/chart/chart-odata.d.ts +52 -0
- package/dist/src/components/chart/chart-types.d.ts +337 -0
- package/dist/src/components/chart/index.d.ts +8 -0
- package/dist/src/components/chart/index.shadow.d.ts +7 -0
- package/dist/src/components/chart/mono-chart-presets.d.ts +43 -0
- package/dist/src/components/chart/mono-chart-presets.shadow.d.ts +43 -0
- package/dist/src/components/chart/mono-chart.d.ts +30 -0
- package/dist/src/components/chart/mono-chart.shadow.d.ts +22 -0
- package/dist/src/components/chart/mono-data-chart.d.ts +27 -0
- package/dist/src/components/checkbox/checkbox-core.d.ts +53 -0
- package/dist/src/components/checkbox/checkbox-types.d.ts +69 -0
- package/dist/src/components/checkbox/checkbox-utils.d.ts +35 -0
- package/dist/src/components/checkbox/index.d.ts +4 -0
- package/dist/src/components/checkbox/index.shadow.d.ts +5 -0
- package/dist/src/components/checkbox/mono-checkbox.d.ts +34 -0
- package/dist/src/components/checkbox/mono-checkbox.shadow.d.ts +45 -0
- package/dist/src/components/chip/chip-core.d.ts +58 -0
- package/dist/src/components/chip/chip-types.d.ts +142 -0
- package/dist/src/components/chip/chip-utils.d.ts +24 -0
- package/dist/src/components/chip/index.d.ts +8 -0
- package/dist/src/components/chip/index.shadow.d.ts +6 -0
- package/dist/src/components/chip/mono-chip.d.ts +48 -0
- package/dist/src/components/chip/mono-chip.shadow.d.ts +33 -0
- package/dist/src/components/chip/mono-status-dot.d.ts +34 -0
- package/dist/src/components/date/date-core.d.ts +80 -0
- package/dist/src/components/date/date-types.d.ts +163 -0
- package/dist/src/components/date/index.d.ts +3 -0
- package/dist/src/components/date/index.shadow.d.ts +4 -0
- package/dist/src/components/date/mono-date.d.ts +22 -0
- package/dist/src/components/date/mono-date.shadow.d.ts +31 -0
- package/dist/src/components/drawer/drawer-core.d.ts +99 -0
- package/dist/src/components/drawer/drawer-types.d.ts +153 -0
- package/dist/src/components/drawer/index.d.ts +3 -0
- package/dist/src/components/drawer/index.shadow.d.ts +4 -0
- package/dist/src/components/drawer/mono-drawer.d.ts +45 -0
- package/dist/src/components/drawer/mono-drawer.shadow.d.ts +46 -0
- package/dist/src/components/dropdown/dropdown-core.d.ts +33 -0
- package/dist/src/components/dropdown/dropdown-types.d.ts +88 -0
- package/dist/src/components/dropdown/index.d.ts +3 -0
- package/dist/src/components/dropdown/index.shadow.d.ts +4 -0
- package/dist/src/components/dropdown/mono-dropdown.d.ts +34 -0
- package/dist/src/components/dropdown/mono-dropdown.shadow.d.ts +28 -0
- package/dist/src/components/dropdown-table/dropdown-table-core.d.ts +65 -0
- package/dist/src/components/dropdown-table/dropdown-table-types.d.ts +278 -0
- package/dist/src/components/dropdown-table/index.d.ts +5 -0
- package/dist/src/components/dropdown-table/index.shadow.d.ts +6 -0
- package/dist/src/components/dropdown-table/mono-data-dropdown.d.ts +152 -0
- package/dist/src/components/dropdown-table/mono-dropdown-table.d.ts +46 -0
- package/dist/src/components/dropdown-table/mono-dropdown-table.shadow.d.ts +22 -0
- package/dist/src/components/file-upload/file-upload-core.d.ts +60 -0
- package/dist/src/components/file-upload/file-upload-types.d.ts +145 -0
- package/dist/src/components/file-upload/file-upload-utils.d.ts +16 -0
- package/dist/src/components/file-upload/index.d.ts +4 -0
- package/dist/src/components/file-upload/index.shadow.d.ts +5 -0
- package/dist/src/components/file-upload/mono-file-upload.d.ts +33 -0
- package/dist/src/components/file-upload/mono-file-upload.shadow.d.ts +50 -0
- package/dist/src/components/filter/filter-builder-core.d.ts +36 -0
- package/dist/src/components/filter/filter-builder.d.ts +23 -0
- package/dist/src/components/filter/filter-odata.d.ts +27 -0
- package/dist/src/components/filter/filter-operators.d.ts +13 -0
- package/dist/src/components/filter/filter-types.d.ts +253 -0
- package/dist/src/components/filter/index.d.ts +6 -0
- package/dist/src/components/filter/index.shadow.d.ts +7 -0
- package/dist/src/components/filter/mono-filter-builder.d.ts +21 -0
- package/dist/src/components/filter/mono-filter-builder.shadow.d.ts +17 -0
- package/dist/src/components/form/form-control-core.d.ts +37 -0
- package/dist/src/components/form/form-rules.d.ts +25 -0
- package/dist/src/components/form/form-types.d.ts +307 -0
- package/dist/src/components/form/index.d.ts +6 -0
- package/dist/src/components/form/mono-form-controller.d.ts +16 -0
- package/dist/src/components/input/index.d.ts +6 -0
- package/dist/src/components/input/index.shadow.d.ts +8 -0
- package/dist/src/components/input/input-core.d.ts +91 -0
- package/dist/src/components/input/input-format.d.ts +118 -0
- package/dist/src/components/input/input-types.d.ts +179 -0
- package/dist/src/components/input/input-utils.d.ts +10 -0
- package/dist/src/components/input/mono-input.d.ts +46 -0
- package/dist/src/components/input/mono-input.shadow.d.ts +34 -0
- package/dist/src/components/menu/index.d.ts +6 -0
- package/dist/src/components/menu/index.shadow.d.ts +7 -0
- package/dist/src/components/menu/menu-core.d.ts +65 -0
- package/dist/src/components/menu/menu-render.d.ts +55 -0
- package/dist/src/components/menu/menu-types.d.ts +195 -0
- package/dist/src/components/menu/menu-utils.d.ts +53 -0
- package/dist/src/components/menu/mono-menu-list.d.ts +118 -0
- package/dist/src/components/menu/mono-menu.d.ts +39 -0
- package/dist/src/components/menu/mono-menu.shadow.d.ts +40 -0
- package/dist/src/components/modal/index.d.ts +4 -0
- package/dist/src/components/modal/index.shadow.d.ts +5 -0
- package/dist/src/components/modal/modal-core.d.ts +110 -0
- package/dist/src/components/modal/modal-types.d.ts +304 -0
- package/dist/src/components/modal/mono-modal-controller.d.ts +4 -0
- package/dist/src/components/modal/mono-modal.d.ts +45 -0
- package/dist/src/components/modal/mono-modal.shadow.d.ts +50 -0
- package/dist/src/components/nav/index.d.ts +4 -0
- package/dist/src/components/nav/index.shadow.d.ts +6 -0
- package/dist/src/components/nav/mono-nav.d.ts +41 -0
- package/dist/src/components/nav/mono-nav.shadow.d.ts +21 -0
- package/dist/src/components/nav/nav-core.d.ts +34 -0
- package/dist/src/components/nav/nav-types.d.ts +48 -0
- package/dist/src/components/nav/nav-utils.d.ts +12 -0
- package/dist/src/components/radio/index.d.ts +4 -0
- package/dist/src/components/radio/index.shadow.d.ts +5 -0
- package/dist/src/components/radio/mono-radio.d.ts +31 -0
- package/dist/src/components/radio/mono-radio.shadow.d.ts +35 -0
- package/dist/src/components/radio/radio-core.d.ts +45 -0
- package/dist/src/components/radio/radio-types.d.ts +58 -0
- package/dist/src/components/radio/radio-utils.d.ts +12 -0
- package/dist/src/components/rich-text-editor/index.d.ts +5 -0
- package/dist/src/components/rich-text-editor/index.shadow.d.ts +6 -0
- package/dist/src/components/rich-text-editor/mono-rich-text-editor.d.ts +31 -0
- package/dist/src/components/rich-text-editor/mono-rich-text-editor.shadow.d.ts +34 -0
- package/dist/src/components/rich-text-editor/rich-text-editor-core.d.ts +100 -0
- package/dist/src/components/rich-text-editor/rich-text-editor-loader.d.ts +17 -0
- package/dist/src/components/rich-text-editor/rich-text-editor-toolbar.d.ts +65 -0
- package/dist/src/components/rich-text-editor/rich-text-editor-types.d.ts +231 -0
- package/dist/src/components/select/index.d.ts +4 -0
- package/dist/src/components/select/index.shadow.d.ts +5 -0
- package/dist/src/components/select/mono-select.d.ts +69 -0
- package/dist/src/components/select/mono-select.shadow.d.ts +48 -0
- package/dist/src/components/select/select-core.d.ts +98 -0
- package/dist/src/components/select/select-types.d.ts +258 -0
- package/dist/src/components/select/select-utils.d.ts +7 -0
- package/dist/src/components/sidebar/index.d.ts +4 -0
- package/dist/src/components/sidebar/index.shadow.d.ts +6 -0
- package/dist/src/components/sidebar/mono-sidebar.d.ts +34 -0
- package/dist/src/components/sidebar/mono-sidebar.shadow.d.ts +27 -0
- package/dist/src/components/sidebar/sidebar-core.d.ts +51 -0
- package/dist/src/components/sidebar/sidebar-types.d.ts +119 -0
- package/dist/src/components/sidebar/sidebar-utils.d.ts +55 -0
- package/dist/src/components/switch/index.d.ts +4 -0
- package/dist/src/components/switch/index.shadow.d.ts +5 -0
- package/dist/src/components/switch/mono-switch.d.ts +31 -0
- package/dist/src/components/switch/mono-switch.shadow.d.ts +36 -0
- package/dist/src/components/switch/switch-core.d.ts +49 -0
- package/dist/src/components/switch/switch-types.d.ts +64 -0
- package/dist/src/components/switch/switch-utils.d.ts +12 -0
- package/dist/src/components/table/array-source.d.ts +44 -0
- package/dist/src/components/table/date-filter-tree.d.ts +93 -0
- package/dist/src/components/table/grouping.d.ts +55 -0
- package/dist/src/components/table/index.d.ts +33 -0
- package/dist/src/components/table/index.shadow.d.ts +47 -0
- package/dist/src/components/table/mono-data-grid.d.ts +1756 -0
- package/dist/src/components/table/mono-table-checkbox-core.d.ts +76 -0
- package/dist/src/components/table/mono-table-checkbox.d.ts +34 -0
- package/dist/src/components/table/mono-table-checkbox.shadow.d.ts +26 -0
- package/dist/src/components/table/mono-table-detail-core.d.ts +87 -0
- package/dist/src/components/table/mono-table-detail.d.ts +32 -0
- package/dist/src/components/table/mono-table-detail.shadow.d.ts +31 -0
- package/dist/src/components/table/mono-table-empty-core.d.ts +60 -0
- package/dist/src/components/table/mono-table-empty.d.ts +35 -0
- package/dist/src/components/table/mono-table-empty.shadow.d.ts +40 -0
- package/dist/src/components/table/mono-table-error-core.d.ts +84 -0
- package/dist/src/components/table/mono-table-error.d.ts +28 -0
- package/dist/src/components/table/mono-table-error.shadow.d.ts +21 -0
- package/dist/src/components/table/mono-table-info-core.d.ts +13 -0
- package/dist/src/components/table/mono-table-info.d.ts +19 -0
- package/dist/src/components/table/mono-table-info.shadow.d.ts +14 -0
- package/dist/src/components/table/mono-table-loading-core.d.ts +41 -0
- package/dist/src/components/table/mono-table-loading.d.ts +50 -0
- package/dist/src/components/table/mono-table-loading.shadow.d.ts +14 -0
- package/dist/src/components/table/mono-table-page-size-core.d.ts +14 -0
- package/dist/src/components/table/mono-table-page-size.d.ts +16 -0
- package/dist/src/components/table/mono-table-page-size.shadow.d.ts +11 -0
- package/dist/src/components/table/mono-table-paging-core.d.ts +22 -0
- package/dist/src/components/table/mono-table-paging-group-core.d.ts +18 -0
- package/dist/src/components/table/mono-table-paging-group.d.ts +20 -0
- package/dist/src/components/table/mono-table-paging-group.shadow.d.ts +13 -0
- package/dist/src/components/table/mono-table-paging.d.ts +16 -0
- package/dist/src/components/table/mono-table-paging.shadow.d.ts +11 -0
- package/dist/src/components/table/mono-table-search-core.d.ts +74 -0
- package/dist/src/components/table/mono-table-search.d.ts +34 -0
- package/dist/src/components/table/mono-table-search.shadow.d.ts +21 -0
- package/dist/src/components/table/mono-table-sort-core.d.ts +35 -0
- package/dist/src/components/table/mono-table-sort.d.ts +38 -0
- package/dist/src/components/table/mono-table-sort.shadow.d.ts +20 -0
- package/dist/src/components/table/mono-table-summary-core.d.ts +26 -0
- package/dist/src/components/table/mono-table-summary.d.ts +24 -0
- package/dist/src/components/table/mono-table-summary.shadow.d.ts +14 -0
- package/dist/src/components/table/mono-table-th-core.d.ts +56 -0
- package/dist/src/components/table/mono-table-th.d.ts +41 -0
- package/dist/src/components/table/mono-table-th.shadow.d.ts +19 -0
- package/dist/src/components/table/store-group-source.d.ts +24 -0
- package/dist/src/components/table/table-controller-core.d.ts +40 -0
- package/dist/src/components/table/table-filter-icons.d.ts +3 -0
- package/dist/src/components/table/table-menu-core.d.ts +65 -0
- package/dist/src/components/table/table-overlay.d.ts +165 -0
- package/dist/src/components/table/table-sort-icons.d.ts +4 -0
- package/dist/src/components/table/table-sort-utils.d.ts +20 -0
- package/dist/src/components/table/table-types.d.ts +475 -0
- package/dist/src/components/tabs/index.d.ts +3 -0
- package/dist/src/components/tabs/index.shadow.d.ts +4 -0
- package/dist/src/components/tabs/mono-tabs.d.ts +33 -0
- package/dist/src/components/tabs/mono-tabs.shadow.d.ts +37 -0
- package/dist/src/components/tabs/tabs-core.d.ts +57 -0
- package/dist/src/components/tabs/tabs-types.d.ts +65 -0
- package/dist/src/components/tag-input/index.d.ts +4 -0
- package/dist/src/components/tag-input/index.shadow.d.ts +5 -0
- package/dist/src/components/tag-input/mono-tag-input.d.ts +66 -0
- package/dist/src/components/tag-input/mono-tag-input.shadow.d.ts +40 -0
- package/dist/src/components/tag-input/tag-input-core.d.ts +108 -0
- package/dist/src/components/tag-input/tag-input-types.d.ts +394 -0
- package/dist/src/components/tag-input/tag-input-utils.d.ts +8 -0
- package/dist/src/components/textarea/index.d.ts +4 -0
- package/dist/src/components/textarea/index.shadow.d.ts +5 -0
- package/dist/src/components/textarea/mono-textarea.d.ts +29 -0
- package/dist/src/components/textarea/mono-textarea.shadow.d.ts +31 -0
- package/dist/src/components/textarea/textarea-core.d.ts +60 -0
- package/dist/src/components/textarea/textarea-types.d.ts +131 -0
- package/dist/src/components/textarea/textarea-utils.d.ts +7 -0
- package/dist/src/components/tooltip/control-tooltip.d.ts +36 -0
- package/dist/src/components/tooltip/index.d.ts +6 -0
- package/dist/src/components/tooltip/tooltip-config.d.ts +27 -0
- package/dist/src/components/tooltip/tooltip-declarative.d.ts +41 -0
- package/dist/src/components/tooltip/tooltip-loader.d.ts +1 -0
- package/dist/src/components/tooltip/tooltip-types.d.ts +110 -0
- package/dist/src/composables/breakpoints.d.ts +59 -0
- package/dist/src/composables/chip-limits.d.ts +48 -0
- package/dist/src/composables/chip-strip.d.ts +93 -0
- package/dist/src/composables/color.d.ts +103 -0
- package/dist/src/composables/css-class.d.ts +27 -0
- package/dist/src/composables/css-size.d.ts +40 -0
- package/dist/src/composables/data-source-controller.d.ts +84 -0
- package/dist/src/composables/element-props.d.ts +46 -0
- package/dist/src/composables/field-icons.d.ts +7 -0
- package/dist/src/composables/hybird-prop.d.ts +79 -0
- package/dist/src/composables/hydration-flush.d.ts +34 -0
- package/dist/src/composables/icon.d.ts +17 -0
- package/dist/src/composables/layout-var.d.ts +34 -0
- package/dist/src/composables/light-slots.d.ts +133 -0
- package/dist/src/composables/mdi-glyphs.d.ts +4 -0
- package/dist/src/composables/mono-element.d.ts +9 -0
- package/dist/src/composables/mono-event.d.ts +55 -0
- package/dist/src/composables/mono-pending.d.ts +8 -0
- package/dist/src/composables/mono-skeleton.d.ts +193 -0
- package/dist/src/composables/mono-ui.d.ts +58 -0
- package/dist/src/composables/notifier.d.ts +46 -0
- package/dist/src/composables/popup-portal.d.ts +226 -0
- package/dist/src/composables/popup-stack.d.ts +70 -0
- package/dist/src/composables/rate-limit.d.ts +108 -0
- package/dist/src/composables/reactive.d.ts +53 -0
- package/dist/src/composables/shadow-css.d.ts +42 -0
- package/dist/src/composables/visibility.d.ts +36 -0
- package/dist/src/data/theme/index.d.ts +30 -0
- package/dist/src/data/theme/presets.d.ts +94 -0
- package/dist/src/entries/index.d.ts +2 -0
- package/dist/src/entries/index.node.d.ts +42 -0
- package/dist/src/entries/search.d.ts +3 -0
- package/dist/src/export/detail.d.ts +29 -0
- package/dist/src/export/download.d.ts +9 -0
- package/dist/src/export/excel/index.d.ts +27 -0
- package/dist/src/export/excel/nodes.d.ts +123 -0
- package/dist/src/export/expression.d.ts +36 -0
- package/dist/src/export/helpers.d.ts +6 -0
- package/dist/src/export/index.d.ts +13 -0
- package/dist/src/export/markdown.d.ts +52 -0
- package/dist/src/export/resolve-data.d.ts +31 -0
- package/dist/src/export/sentinel.d.ts +97 -0
- package/dist/src/export/sheet-name.d.ts +45 -0
- package/dist/src/export/styles.d.ts +33 -0
- package/dist/src/export/template.d.ts +10 -0
- package/dist/src/export/types.d.ts +259 -0
- package/dist/src/import/coerce.d.ts +38 -0
- package/dist/src/import/index.d.ts +16 -0
- package/dist/src/import/match.d.ts +54 -0
- package/dist/src/import/parse.d.ts +15 -0
- package/dist/src/import/types.d.ts +153 -0
- package/dist/src/nuxt/index.d.ts +94 -0
- package/dist/src/search/data-search.d.ts +207 -0
- package/dist/src/search/field-path.d.ts +107 -0
- package/dist/src/search/filter-eval.d.ts +30 -0
- package/dist/src/search/index.d.ts +22 -0
- package/dist/src/search/odata-search.d.ts +18 -0
- package/dist/src/search/search-expr.d.ts +160 -0
- package/dist/src/utils/data-source-apply.d.ts +97 -0
- package/dist/src/utils/data-source-options.d.ts +116 -0
- package/dist/src/utils/data-source-read.d.ts +85 -0
- package/dist/src/utils/data-source-summary.d.ts +55 -0
- package/dist/src/utils/normalize-error.d.ts +60 -0
- package/dist/src/vite/index.d.ts +48 -0
- package/dist/src/vite/mono-client-only.d.ts +35 -0
- package/dist/src/vite/mono-ssr-stub.d.ts +20 -0
- package/dist/src/vite/shadow-manifest.d.ts +8 -0
- package/dist/styles-BIJ31TM4.js +20146 -0
- package/dist/tooltip-CysgRgBi.js +760 -0
- package/dist/tooltip.d.ts +1 -0
- package/dist/tooltip.js +2 -0
- package/dist/ui/accordion.d.ts +1 -0
- package/dist/ui/accordion.js +466 -0
- package/dist/ui/alert.d.ts +1 -0
- package/dist/ui/alert.js +221 -0
- package/dist/ui/breadcrumb.d.ts +1 -0
- package/dist/ui/breadcrumb.js +902 -0
- package/dist/ui/button-dropdown.d.ts +1 -0
- package/dist/ui/button-dropdown.js +679 -0
- package/dist/ui/button.d.ts +1 -0
- package/dist/ui/button.js +63 -0
- package/dist/ui/card.d.ts +1 -0
- package/dist/ui/card.js +511 -0
- package/dist/ui/chart.d.ts +1 -0
- package/dist/ui/chart.js +808 -0
- package/dist/ui/checkbox.d.ts +1 -0
- package/dist/ui/checkbox.js +413 -0
- package/dist/ui/chip.d.ts +1 -0
- package/dist/ui/chip.js +558 -0
- package/dist/ui/date.d.ts +1 -0
- package/dist/ui/date.js +686 -0
- package/dist/ui/drawer.d.ts +1 -0
- package/dist/ui/drawer.js +901 -0
- package/dist/ui/dropdown-table.d.ts +1 -0
- package/dist/ui/dropdown-table.js +1291 -0
- package/dist/ui/dropdown.d.ts +1 -0
- package/dist/ui/dropdown.js +586 -0
- package/dist/ui/file-upload.d.ts +1 -0
- package/dist/ui/file-upload.js +688 -0
- package/dist/ui/filter.d.ts +1 -0
- package/dist/ui/filter.js +400 -0
- package/dist/ui/font/files/geist-47c091c9.woff2 +0 -0
- package/dist/ui/font/files/geist-8dd77544.woff2 +0 -0
- package/dist/ui/font/files/geist-b9248b1e.woff2 +0 -0
- package/dist/ui/font/files/geist-d40d74b4.woff2 +0 -0
- package/dist/ui/font/files/geist-f493429a.woff2 +0 -0
- package/dist/ui/font/files/geistmono-03737868.woff2 +0 -0
- package/dist/ui/font/files/geistmono-421a7e38.woff2 +0 -0
- package/dist/ui/font/files/geistmono-48ef518d.woff2 +0 -0
- package/dist/ui/font/files/geistmono-5df35d39.woff2 +0 -0
- package/dist/ui/font/files/geistmono-7de289a4.woff2 +0 -0
- package/dist/ui/font/files/geistmono-e976128f.woff2 +0 -0
- package/dist/ui/font/files/inter-05cf802c.woff2 +0 -0
- package/dist/ui/font/files/inter-2b2f25a4.woff2 +0 -0
- package/dist/ui/font/files/inter-467acc7a.woff2 +0 -0
- package/dist/ui/font/files/inter-6e85163c.woff2 +0 -0
- package/dist/ui/font/files/inter-7048add3.woff2 +0 -0
- package/dist/ui/font/files/inter-9be0371e.woff2 +0 -0
- package/dist/ui/font/files/inter-a28b7e31.woff2 +0 -0
- package/dist/ui/font/files/poppins-054df55a.woff2 +0 -0
- package/dist/ui/font/files/poppins-0ee5dc9a.woff2 +0 -0
- package/dist/ui/font/files/poppins-0f44cb18.woff2 +0 -0
- package/dist/ui/font/files/poppins-0ff0d30c.woff2 +0 -0
- package/dist/ui/font/files/poppins-13045147.woff2 +0 -0
- package/dist/ui/font/files/poppins-1db57cd9.woff2 +0 -0
- package/dist/ui/font/files/poppins-2cf2a902.woff2 +0 -0
- package/dist/ui/font/files/poppins-39e7f079.woff2 +0 -0
- package/dist/ui/font/files/poppins-9607042d.woff2 +0 -0
- package/dist/ui/font/files/poppins-9a88fc1f.woff2 +0 -0
- package/dist/ui/font/files/poppins-b8f4f752.woff2 +0 -0
- package/dist/ui/font/files/poppins-f5e57db4.woff2 +0 -0
- package/dist/ui/font/geist-mono.css +104 -0
- package/dist/ui/font/geist.css +168 -0
- package/dist/ui/font/inter.css +232 -0
- package/dist/ui/font/poppins.css +104 -0
- package/dist/ui/form.d.ts +1 -0
- package/dist/ui/form.js +3 -0
- package/dist/ui/index.css +21826 -0
- package/dist/ui/input.d.ts +1 -0
- package/dist/ui/input.js +1176 -0
- package/dist/ui/menu.d.ts +1 -0
- package/dist/ui/menu.js +1289 -0
- package/dist/ui/modal.d.ts +1 -0
- package/dist/ui/modal.js +995 -0
- package/dist/ui/nav.d.ts +1 -0
- package/dist/ui/nav.js +295 -0
- package/dist/ui/radio.d.ts +1 -0
- package/dist/ui/radio.js +379 -0
- package/dist/ui/rich-text-editor.d.ts +1 -0
- package/dist/ui/rich-text-editor.js +1338 -0
- package/dist/ui/select.d.ts +1 -0
- package/dist/ui/select.js +2066 -0
- package/dist/ui/shadow/accordion.js +442 -0
- package/dist/ui/shadow/alert.js +218 -0
- package/dist/ui/shadow/breadcrumb.js +919 -0
- package/dist/ui/shadow/button-dropdown.js +696 -0
- package/dist/ui/shadow/button.js +63 -0
- package/dist/ui/shadow/card.js +524 -0
- package/dist/ui/shadow/chart.js +1569 -0
- package/dist/ui/shadow/checkbox.js +457 -0
- package/dist/ui/shadow/chip.js +559 -0
- package/dist/ui/shadow/date.js +712 -0
- package/dist/ui/shadow/drawer.js +869 -0
- package/dist/ui/shadow/dropdown-table.js +1620 -0
- package/dist/ui/shadow/dropdown.js +547 -0
- package/dist/ui/shadow/file-upload.js +731 -0
- package/dist/ui/shadow/filter.js +402 -0
- package/dist/ui/shadow/input.js +1150 -0
- package/dist/ui/shadow/menu.js +899 -0
- package/dist/ui/shadow/modal.js +1193 -0
- package/dist/ui/shadow/nav.js +240 -0
- package/dist/ui/shadow/radio.js +408 -0
- package/dist/ui/shadow/rich-text-editor.js +1344 -0
- package/dist/ui/shadow/select.js +2033 -0
- package/dist/ui/shadow/sidebar.js +606 -0
- package/dist/ui/shadow/switch.js +428 -0
- package/dist/ui/shadow/table.js +4755 -0
- package/dist/ui/shadow/tabs.js +372 -0
- package/dist/ui/shadow/tag-input.js +2846 -0
- package/dist/ui/shadow/textarea.js +816 -0
- package/dist/ui/sidebar.d.ts +1 -0
- package/dist/ui/sidebar.js +659 -0
- package/dist/ui/switch.d.ts +1 -0
- package/dist/ui/switch.js +398 -0
- package/dist/ui/table.d.ts +1 -0
- package/dist/ui/table.js +4654 -0
- package/dist/ui/tabs.d.ts +1 -0
- package/dist/ui/tabs.js +379 -0
- package/dist/ui/tag-input.d.ts +1 -0
- package/dist/ui/tag-input.js +2819 -0
- package/dist/ui/textarea.d.ts +1 -0
- package/dist/ui/textarea.js +819 -0
- package/dist/ui/theme/legacy.css +293 -0
- package/dist/ui/theme/luma.css +743 -0
- package/dist/ui/theme/lyra.css +754 -0
- package/dist/ui/theme/maia.css +673 -0
- package/dist/ui/theme/mira.css +802 -0
- package/dist/ui/theme/nova.css +662 -0
- package/dist/ui/theme/one.css +699 -0
- package/dist/ui/theme/rhea.css +742 -0
- package/dist/ui/theme/sera.css +845 -0
- package/dist/ui/theme/tokens.css +261 -0
- package/dist/ui/theme/vega.css +467 -0
- package/dist/vite-C5iUK7so.js +329 -0
- package/dist/vite.d.ts +1 -0
- package/dist/vite.js +2 -0
- package/dist/vue.d.ts +282 -0
- package/package.json +411 -3
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
//#region src/composables/field-icons.ts
|
|
3
|
+
/** Downward caret — the "this opens a panel" affordance. */
|
|
4
|
+
function caretIcon() {
|
|
5
|
+
return html`<svg
|
|
6
|
+
mono-icon
|
|
7
|
+
viewBox="0 0 20 20"
|
|
8
|
+
width="16"
|
|
9
|
+
height="16"
|
|
10
|
+
fill="currentColor"
|
|
11
|
+
aria-hidden="true"
|
|
12
|
+
>
|
|
13
|
+
<path
|
|
14
|
+
fill-rule="evenodd"
|
|
15
|
+
d="M5.23 7.21a.75.75 0 0 1 1.06.02L10 10.94l3.71-3.71a.75.75 0 1 1 1.06 1.06l-4.24 4.24a.75.75 0 0 1-1.06 0L5.25 8.29a.75.75 0 0 1-.02-1.08z"
|
|
16
|
+
clip-rule="evenodd"
|
|
17
|
+
/>
|
|
18
|
+
</svg>`;
|
|
19
|
+
}
|
|
20
|
+
/** The ✕ a clear button and a chip's remove button draw, at the caret's weight. */
|
|
21
|
+
function closeIcon() {
|
|
22
|
+
return html`<svg
|
|
23
|
+
mono-icon
|
|
24
|
+
viewBox="0 0 20 20"
|
|
25
|
+
width="16"
|
|
26
|
+
height="16"
|
|
27
|
+
fill="currentColor"
|
|
28
|
+
aria-hidden="true"
|
|
29
|
+
>
|
|
30
|
+
<path
|
|
31
|
+
fill-rule="evenodd"
|
|
32
|
+
d="M4.293 4.293a1 1 0 0 1 1.414 0L10 8.586l4.293-4.293a1 1 0 1 1 1.414 1.414L11.414 10l4.293 4.293a1 1 0 0 1-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 0 1-1.414-1.414L8.586 10 4.293 5.707a1 1 0 0 1 0-1.414z"
|
|
33
|
+
clip-rule="evenodd"
|
|
34
|
+
/>
|
|
35
|
+
</svg>`;
|
|
36
|
+
}
|
|
37
|
+
/** Left (`-1`) or right (`1`) chevron, matching {@link caretIcon}'s weight. */
|
|
38
|
+
function chevronIcon(dir) {
|
|
39
|
+
return html`<svg
|
|
40
|
+
mono-icon
|
|
41
|
+
viewBox="0 0 20 20"
|
|
42
|
+
width="16"
|
|
43
|
+
height="16"
|
|
44
|
+
fill="currentColor"
|
|
45
|
+
aria-hidden="true"
|
|
46
|
+
>
|
|
47
|
+
<path fill-rule="evenodd" d=${dir === -1 ? "M12.79 5.23a.75.75 0 0 1-.02 1.06L9.06 10l3.71 3.71a.75.75 0 1 1-1.06 1.06l-4.24-4.24a.75.75 0 0 1 0-1.06l4.24-4.24a.75.75 0 0 1 1.08 0z" : "M7.21 14.77a.75.75 0 0 1 .02-1.06L10.94 10 7.23 6.29a.75.75 0 1 1 1.06-1.06l4.24 4.24a.75.75 0 0 1 0 1.06l-4.24 4.24a.75.75 0 0 1-1.08 0z"} clip-rule="evenodd" />
|
|
48
|
+
</svg>`;
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
export { chevronIcon as n, closeIcon as r, caretIcon as t };
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
//#region src/search/field-path.ts
|
|
2
|
+
/** Whether `field` is a path expression (contains `.` or `[`) vs a plain key. */
|
|
3
|
+
function isPath(field) {
|
|
4
|
+
return typeof field === "string" && /[.[]/.test(field);
|
|
5
|
+
}
|
|
6
|
+
var parseCache = /* @__PURE__ */ new Map();
|
|
7
|
+
/** Parse a path field into ordered segments (cached). Plain keys → one `key` segment. */
|
|
8
|
+
function parseFieldPath(field) {
|
|
9
|
+
const cached = parseCache.get(field);
|
|
10
|
+
if (cached) return cached;
|
|
11
|
+
const segments = [];
|
|
12
|
+
let hasWildcard = false;
|
|
13
|
+
for (const token of field.split(".")) {
|
|
14
|
+
if (token === "") continue;
|
|
15
|
+
if (token === "[*]") {
|
|
16
|
+
segments.push({ kind: "wildcard" });
|
|
17
|
+
hasWildcard = true;
|
|
18
|
+
} else {
|
|
19
|
+
const m = /^\[(\d+)\]$/.exec(token);
|
|
20
|
+
if (m) segments.push({
|
|
21
|
+
kind: "index",
|
|
22
|
+
index: Number(m[1])
|
|
23
|
+
});
|
|
24
|
+
else segments.push({
|
|
25
|
+
kind: "key",
|
|
26
|
+
name: token
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const parsed = {
|
|
31
|
+
segments,
|
|
32
|
+
hasWildcard,
|
|
33
|
+
raw: field
|
|
34
|
+
};
|
|
35
|
+
parseCache.set(field, parsed);
|
|
36
|
+
return parsed;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Resolve a path field against a row. Returns a **scalar** when the path has no
|
|
40
|
+
* wildcard, or a flattened **array** of matches when it does (`User.[*].Name` →
|
|
41
|
+
* `string[]`). Missing links yield `undefined` (scalar) / are skipped (wildcard).
|
|
42
|
+
*/
|
|
43
|
+
function getFieldValue(row, field) {
|
|
44
|
+
const { segments, hasWildcard } = parseFieldPath(field);
|
|
45
|
+
let current = [row];
|
|
46
|
+
for (const seg of segments) {
|
|
47
|
+
const next = [];
|
|
48
|
+
for (const v of current) {
|
|
49
|
+
if (v == null) continue;
|
|
50
|
+
if (seg.kind === "key") next.push(v[seg.name]);
|
|
51
|
+
else if (seg.kind === "index") {
|
|
52
|
+
if (Array.isArray(v)) next.push(v[seg.index]);
|
|
53
|
+
} else if (Array.isArray(v)) for (const el of v) next.push(el);
|
|
54
|
+
}
|
|
55
|
+
current = next;
|
|
56
|
+
}
|
|
57
|
+
if (hasWildcard) return current.filter((v) => v !== void 0);
|
|
58
|
+
return current[0];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Write `value` into `obj` at a dot/index path, creating intermediate `{}`/`[]`
|
|
62
|
+
* as needed. Wildcard paths are ambiguous to write — a `console.warn` + no-op.
|
|
63
|
+
*/
|
|
64
|
+
function setFieldValue(obj, field, value) {
|
|
65
|
+
const { segments, hasWildcard } = parseFieldPath(field);
|
|
66
|
+
if (hasWildcard) {
|
|
67
|
+
console.warn(`[@mono-lit/helper] setFieldValue: cannot write a wildcard path "${field}" — skipped.`);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (!segments.length) return;
|
|
71
|
+
let cursor = obj;
|
|
72
|
+
for (let i = 0; i < segments.length - 1; i++) {
|
|
73
|
+
const seg = segments[i];
|
|
74
|
+
const wantArray = segments[i + 1].kind === "index";
|
|
75
|
+
const at = seg.kind === "index" ? seg.index : seg.name;
|
|
76
|
+
let child = cursor[at];
|
|
77
|
+
if (child == null || typeof child !== "object") {
|
|
78
|
+
child = wantArray ? [] : {};
|
|
79
|
+
cursor[at] = child;
|
|
80
|
+
}
|
|
81
|
+
cursor = child;
|
|
82
|
+
}
|
|
83
|
+
const last = segments[segments.length - 1];
|
|
84
|
+
const at = last.kind === "index" ? last.index : last.name;
|
|
85
|
+
cursor[at] = value;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Project a row down to the given key paths, **rebuilding the nested shape**.
|
|
89
|
+
*
|
|
90
|
+
* This is what `<mono-table-checkbox>`'s `key-value` produces, so a selection can
|
|
91
|
+
* be handed to an API in the shape the API expects rather than as flat values:
|
|
92
|
+
*
|
|
93
|
+
* ```ts
|
|
94
|
+
* projectFields(row, ['Id']) // { Id: 8 }
|
|
95
|
+
* projectFields(row, ['Company.Name']) // { Company: { Name: 'Hey' } }
|
|
96
|
+
* projectFields(row, ['Transaction.[*].Id']) // { Transaction: [{ Id: 4 }] }
|
|
97
|
+
* projectFields(row, ['Company.Name', 'Transaction.[*].Id'])
|
|
98
|
+
* // → { Company: { Name: 'Hey' }, Transaction: [{ Id: 4 }] }
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* Separate from {@link setFieldValue}, which deliberately refuses wildcard paths
|
|
102
|
+
* (there is no single place to write to). Here a wildcard is not ambiguous at all:
|
|
103
|
+
* it MAPS over the source array, emitting one projected element per entry — so the
|
|
104
|
+
* result mirrors the source's own cardinality. Several paths merge into one object,
|
|
105
|
+
* and an empty key list means "the row itself".
|
|
106
|
+
*/
|
|
107
|
+
function projectFields(row, keys) {
|
|
108
|
+
if (!keys.length) return row;
|
|
109
|
+
const out = {};
|
|
110
|
+
for (const key of keys) {
|
|
111
|
+
const { segments } = parseFieldPath(key);
|
|
112
|
+
if (segments.length) assign(out, row, segments);
|
|
113
|
+
}
|
|
114
|
+
return out;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Copy the value `source` holds at `segments` into `target`, creating only the
|
|
118
|
+
* containers the path needs. Recursive rather than iterative because a wildcard
|
|
119
|
+
* forks into N independent sub-writes.
|
|
120
|
+
*/
|
|
121
|
+
function assign(target, source, segments) {
|
|
122
|
+
const [seg, ...rest] = segments;
|
|
123
|
+
if (source == null || seg.kind !== "key") return;
|
|
124
|
+
const name = seg.name;
|
|
125
|
+
const value = source[name];
|
|
126
|
+
if (!rest.length) {
|
|
127
|
+
target[name] = value;
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (rest[0].kind === "wildcard" || rest[0].kind === "index") {
|
|
131
|
+
if (!Array.isArray(value)) return;
|
|
132
|
+
const tail = rest.slice(1);
|
|
133
|
+
const list = Array.isArray(target[name]) ? target[name] : [];
|
|
134
|
+
target[name] = list;
|
|
135
|
+
const indices = rest[0].kind === "index" ? [rest[0].index] : value.map((_, i) => i);
|
|
136
|
+
for (const i of indices) {
|
|
137
|
+
if (i < 0 || i >= value.length) continue;
|
|
138
|
+
list[i] ??= {};
|
|
139
|
+
if (tail.length) assign(list[i], value[i], tail);
|
|
140
|
+
}
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const child = target[name] ?? {};
|
|
144
|
+
target[name] = child;
|
|
145
|
+
assign(child, value, rest);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Merge a staged `patch` (keys may be path fields) into a **clone** of `row`.
|
|
149
|
+
* Path keys nest via {@link setFieldValue}; plain keys are set directly. The
|
|
150
|
+
* original row is never mutated. Used by the client (array/optimistic) save path.
|
|
151
|
+
*/
|
|
152
|
+
function mergePatch(row, patch) {
|
|
153
|
+
const clone = typeof structuredClone === "function" ? structuredClone(row) : JSON.parse(JSON.stringify(row));
|
|
154
|
+
for (const [field, value] of Object.entries(patch)) if (isPath(field)) setFieldValue(clone, field, value);
|
|
155
|
+
else clone[field] = value;
|
|
156
|
+
return clone;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* OData selector for `$orderby` / `$select` / nav column filters — dotted path
|
|
160
|
+
* with `.` → `/` (`Job.Name` → `Job/Name`). Returns `null` when the path has any
|
|
161
|
+
* index/wildcard segment (not expressible as a plain selector); the caller warns
|
|
162
|
+
* and skips.
|
|
163
|
+
*/
|
|
164
|
+
function toODataSelector(field) {
|
|
165
|
+
const { segments } = parseFieldPath(field);
|
|
166
|
+
const parts = [];
|
|
167
|
+
for (const seg of segments) {
|
|
168
|
+
if (seg.kind !== "key") return null;
|
|
169
|
+
parts.push(seg.name);
|
|
170
|
+
}
|
|
171
|
+
return parts.join("/");
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Quote/serialize a value as an OData literal (numbers/bools bare, strings quoted
|
|
175
|
+
* with `''` escaping). Exported so `mono-filter-builder` shares one set of quoting
|
|
176
|
+
* rules instead of restating them.
|
|
177
|
+
*/
|
|
178
|
+
function odataLiteral(value) {
|
|
179
|
+
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
180
|
+
return `'${String(value ?? "").replace(/'/g, "''")}'`;
|
|
181
|
+
}
|
|
182
|
+
/** Map a devextreme operator token to its OData comparison keyword. */
|
|
183
|
+
function odataComparison(op) {
|
|
184
|
+
switch (op) {
|
|
185
|
+
case "=":
|
|
186
|
+
case "eq": return "eq";
|
|
187
|
+
case "<>":
|
|
188
|
+
case "!=":
|
|
189
|
+
case "ne": return "ne";
|
|
190
|
+
case ">":
|
|
191
|
+
case "gt": return "gt";
|
|
192
|
+
case ">=":
|
|
193
|
+
case "ge": return "ge";
|
|
194
|
+
case "<":
|
|
195
|
+
case "lt": return "lt";
|
|
196
|
+
case "<=":
|
|
197
|
+
case "le": return "le";
|
|
198
|
+
default: return null;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Build a devextreme filter clause for a (possibly path) field.
|
|
203
|
+
*
|
|
204
|
+
* - plain / dotted-nav → a `[selector, op, value]` triple (`['Job/Name','contains','x']`),
|
|
205
|
+
* which devextreme serializes to a nav filter.
|
|
206
|
+
* - wildcard → a single wrapped raw lambda clause
|
|
207
|
+
* (`["User/any(d: contains(d/Name,'x'))"]`) — the raw-string passthrough devextreme
|
|
208
|
+
* filter arrays honor. Slots into OR/AND groups as one group member.
|
|
209
|
+
*
|
|
210
|
+
* Returns `null` when the field can't be expressed (a second wildcard, or an
|
|
211
|
+
* index segment mixed into a remote path); the caller warns + skips.
|
|
212
|
+
*/
|
|
213
|
+
function toODataClause(field, op, value) {
|
|
214
|
+
if (!isPath(field)) return [
|
|
215
|
+
field,
|
|
216
|
+
op,
|
|
217
|
+
value
|
|
218
|
+
];
|
|
219
|
+
const { segments, hasWildcard } = parseFieldPath(field);
|
|
220
|
+
if (!hasWildcard) {
|
|
221
|
+
const selector = toODataSelector(field);
|
|
222
|
+
return selector ? [
|
|
223
|
+
selector,
|
|
224
|
+
op,
|
|
225
|
+
value
|
|
226
|
+
] : null;
|
|
227
|
+
}
|
|
228
|
+
const wildAt = segments.findIndex((s) => s.kind === "wildcard");
|
|
229
|
+
const before = segments.slice(0, wildAt);
|
|
230
|
+
const after = segments.slice(wildAt + 1);
|
|
231
|
+
if (before.some((s) => s.kind !== "key") || after.some((s) => s.kind !== "key")) {
|
|
232
|
+
console.warn(`[@mono-lit/helper] toODataClause: unsupported path "${field}" (index or 2nd wildcard).`);
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
const coll = before.map((s) => s.name).join("/");
|
|
236
|
+
const inner = "d/" + after.map((s) => s.name).join("/");
|
|
237
|
+
const lit = odataLiteral(value);
|
|
238
|
+
let body;
|
|
239
|
+
if (op === "contains" || op === "startswith" || op === "endswith") body = `${op}(${inner},${lit})`;
|
|
240
|
+
else {
|
|
241
|
+
const cmp = odataComparison(op);
|
|
242
|
+
if (!cmp) {
|
|
243
|
+
console.warn(`[@mono-lit/helper] toODataClause: unsupported operator "${op}" for wildcard "${field}".`);
|
|
244
|
+
return null;
|
|
245
|
+
}
|
|
246
|
+
body = `${inner} ${cmp} ${lit}`;
|
|
247
|
+
}
|
|
248
|
+
return [`${coll}/any(d: ${body})`];
|
|
249
|
+
}
|
|
250
|
+
//#endregion
|
|
251
|
+
export { parseFieldPath as a, toODataClause as c, odataLiteral as i, toODataSelector as l, isPath as n, projectFields as o, mergePatch as r, setFieldValue as s, getFieldValue as t };
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { a as flattenTree, f as coerceValue, h as resolveTexts, i as emptyGroup, l as treeToArray, n as arrayToTree, o as nextId, p as defaultOperator, r as asRootGroup, s as odataStringToArray, t as arrayToODataString } from "./filter-odata-C1vSGZaY.js";
|
|
2
|
+
import { t as createNotifier } from "./notifier-CE4yxMUQ.js";
|
|
3
|
+
//#region src/components/filter/filter-builder.ts
|
|
4
|
+
function monoFilterBuilder(opts = {}) {
|
|
5
|
+
const texts = resolveTexts(opts.texts);
|
|
6
|
+
const actions = opts.actions !== false;
|
|
7
|
+
const serialize = opts.toODataString ?? ((f) => arrayToODataString(f));
|
|
8
|
+
/** Which shape the caller supplied, so `type`-less reads return the same. */
|
|
9
|
+
const inputType = typeof opts.filter === "string" ? "string" : "array";
|
|
10
|
+
let warnedUnparseable = false;
|
|
11
|
+
/**
|
|
12
|
+
* Normalise either shape into a devextreme expression. A string outside the
|
|
13
|
+
* parser's subset warns ONCE and yields `null` — an empty builder is safer than
|
|
14
|
+
* a filter that silently means something else.
|
|
15
|
+
*/
|
|
16
|
+
function toExpression(filter) {
|
|
17
|
+
if (filter === null || filter === void 0 || filter === "") return null;
|
|
18
|
+
if (typeof filter !== "string") return Array.isArray(filter) ? filter : null;
|
|
19
|
+
try {
|
|
20
|
+
return odataStringToArray(filter);
|
|
21
|
+
} catch (err) {
|
|
22
|
+
if (!warnedUnparseable) {
|
|
23
|
+
warnedUnparseable = true;
|
|
24
|
+
console.warn(`[monoFilterBuilder] could not parse the OData filter string — starting empty. Only the subset this builder emits is supported (comparisons, contains/startswith/endswith, in, and/or/not, parentheses). Reason: ${err.message}`);
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const originalExpression = toExpression(opts.filter);
|
|
30
|
+
function buildTree(expr) {
|
|
31
|
+
const node = arrayToTree(expr);
|
|
32
|
+
return asRootGroup(node ? flattenTree(node) : null);
|
|
33
|
+
}
|
|
34
|
+
let tree = buildTree(originalExpression);
|
|
35
|
+
const notifier = createNotifier();
|
|
36
|
+
const notify = notifier.notify;
|
|
37
|
+
const elementProps = { ...opts.props ?? {} };
|
|
38
|
+
/**
|
|
39
|
+
* Explicit `fields` win; a `dataGrid` only contributes columns not already
|
|
40
|
+
* listed, so a table dialog can pass both and override just what it needs.
|
|
41
|
+
*/
|
|
42
|
+
function fields() {
|
|
43
|
+
const explicit = opts.fields ?? [];
|
|
44
|
+
const grid = opts.dataGrid;
|
|
45
|
+
if (!grid) return explicit;
|
|
46
|
+
const seen = new Set(explicit.map((f) => f.field));
|
|
47
|
+
const derived = [];
|
|
48
|
+
for (const col of grid.props?.().th ?? []) {
|
|
49
|
+
if (!col?.field || seen.has(col.field)) continue;
|
|
50
|
+
derived.push({
|
|
51
|
+
field: col.field,
|
|
52
|
+
caption: col.caption ?? col.field
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return [...explicit, ...derived];
|
|
56
|
+
}
|
|
57
|
+
function fieldDef(field) {
|
|
58
|
+
return fields().find((f) => f.field === field);
|
|
59
|
+
}
|
|
60
|
+
function findNode(id, node = tree) {
|
|
61
|
+
if (node.id === id) return node;
|
|
62
|
+
if (node.kind !== "group") return null;
|
|
63
|
+
for (const c of node.children) {
|
|
64
|
+
const hit = findNode(id, c);
|
|
65
|
+
if (hit) return hit;
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
function findParent(id, node = tree) {
|
|
70
|
+
for (const c of node.children) {
|
|
71
|
+
if (c.id === id) return node;
|
|
72
|
+
if (c.kind === "group") {
|
|
73
|
+
const hit = findParent(id, c);
|
|
74
|
+
if (hit) return hit;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
function groupById(id) {
|
|
80
|
+
if (!id) return tree;
|
|
81
|
+
const node = findNode(id);
|
|
82
|
+
return node && node.kind === "group" ? node : tree;
|
|
83
|
+
}
|
|
84
|
+
function newRule() {
|
|
85
|
+
const first = fields()[0];
|
|
86
|
+
const dataType = first?.dataType ?? "string";
|
|
87
|
+
return {
|
|
88
|
+
kind: "rule",
|
|
89
|
+
id: nextId("r"),
|
|
90
|
+
field: first?.field ?? "",
|
|
91
|
+
operator: defaultOperator(dataType),
|
|
92
|
+
value: ""
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function read(expr, options) {
|
|
96
|
+
return (options?.type ?? inputType) === "string" ? serialize(expr) : expr;
|
|
97
|
+
}
|
|
98
|
+
const controller = {
|
|
99
|
+
get tree() {
|
|
100
|
+
return tree;
|
|
101
|
+
},
|
|
102
|
+
get fields() {
|
|
103
|
+
return fields();
|
|
104
|
+
},
|
|
105
|
+
get texts() {
|
|
106
|
+
return texts;
|
|
107
|
+
},
|
|
108
|
+
get actions() {
|
|
109
|
+
return actions;
|
|
110
|
+
},
|
|
111
|
+
props: () => elementProps,
|
|
112
|
+
/**
|
|
113
|
+
* Merge, not replace — a partial patch leaves everything else alone, matching
|
|
114
|
+
* `updateRule`. `undefined` values are passed straight through: `applyProps`
|
|
115
|
+
* skips them on the write side, so "not declared" can never clobber a value
|
|
116
|
+
* the template set.
|
|
117
|
+
*/
|
|
118
|
+
setProps: (patch) => {
|
|
119
|
+
if (!patch) return;
|
|
120
|
+
Object.assign(elementProps, patch);
|
|
121
|
+
notify();
|
|
122
|
+
},
|
|
123
|
+
original: (options) => read(originalExpression, options),
|
|
124
|
+
changed: (options) => read(treeToArray(tree), options),
|
|
125
|
+
setFilter: (filter) => {
|
|
126
|
+
tree = buildTree(toExpression(filter));
|
|
127
|
+
notify();
|
|
128
|
+
},
|
|
129
|
+
reset: () => {
|
|
130
|
+
tree = buildTree(originalExpression);
|
|
131
|
+
notify();
|
|
132
|
+
},
|
|
133
|
+
clear: () => {
|
|
134
|
+
tree = emptyGroup(tree.operator);
|
|
135
|
+
notify();
|
|
136
|
+
},
|
|
137
|
+
addRule: (groupId) => {
|
|
138
|
+
groupById(groupId).children.push(newRule());
|
|
139
|
+
notify();
|
|
140
|
+
},
|
|
141
|
+
addGroup: (groupId) => {
|
|
142
|
+
const g = emptyGroup("and");
|
|
143
|
+
g.children.push(newRule());
|
|
144
|
+
groupById(groupId).children.push(g);
|
|
145
|
+
notify();
|
|
146
|
+
},
|
|
147
|
+
/**
|
|
148
|
+
* Nest a rule: replace it in place with a group holding it plus a fresh
|
|
149
|
+
* sibling, which is what the row's nested-rule button means. Nesting a group
|
|
150
|
+
* just adds a child group to it.
|
|
151
|
+
*/
|
|
152
|
+
nest: (nodeId) => {
|
|
153
|
+
const node = findNode(nodeId);
|
|
154
|
+
if (!node) return;
|
|
155
|
+
if (node.kind === "group") {
|
|
156
|
+
const g = emptyGroup("and");
|
|
157
|
+
g.children.push(newRule());
|
|
158
|
+
node.children.push(g);
|
|
159
|
+
notify();
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const parent = findParent(nodeId);
|
|
163
|
+
if (!parent) return;
|
|
164
|
+
const at = parent.children.indexOf(node);
|
|
165
|
+
const g = emptyGroup(parent.operator === "or" ? "and" : "or");
|
|
166
|
+
g.children.push(node, newRule());
|
|
167
|
+
parent.children.splice(at, 1, g);
|
|
168
|
+
notify();
|
|
169
|
+
},
|
|
170
|
+
remove: (nodeId) => {
|
|
171
|
+
const parent = findParent(nodeId);
|
|
172
|
+
if (!parent) return;
|
|
173
|
+
parent.children = parent.children.filter((c) => c.id !== nodeId);
|
|
174
|
+
if (!parent.children.length && parent !== tree) controller.remove(parent.id);
|
|
175
|
+
else notify();
|
|
176
|
+
},
|
|
177
|
+
updateRule: (ruleId, patch) => {
|
|
178
|
+
const node = findNode(ruleId);
|
|
179
|
+
if (!node || node.kind !== "rule") return;
|
|
180
|
+
if (patch.field !== void 0 && patch.field !== node.field) {
|
|
181
|
+
node.field = patch.field;
|
|
182
|
+
node.operator = defaultOperator(fieldDef(node.field)?.dataType ?? "string");
|
|
183
|
+
node.value = "";
|
|
184
|
+
}
|
|
185
|
+
if (patch.operator !== void 0) node.operator = patch.operator;
|
|
186
|
+
if (patch.value !== void 0) {
|
|
187
|
+
const dt = fieldDef(node.field)?.dataType ?? "string";
|
|
188
|
+
node.value = Array.isArray(patch.value) ? patch.value.map((v) => coerceValue(v, dt)) : coerceValue(patch.value, dt);
|
|
189
|
+
}
|
|
190
|
+
notify();
|
|
191
|
+
},
|
|
192
|
+
setGroupOperator: (groupId, operator) => {
|
|
193
|
+
const node = findNode(groupId);
|
|
194
|
+
if (node?.kind === "group") {
|
|
195
|
+
node.operator = operator;
|
|
196
|
+
notify();
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
subscribe: (cb) => notifier.subscribe(cb),
|
|
200
|
+
dispose: () => notifier.clear()
|
|
201
|
+
};
|
|
202
|
+
return controller;
|
|
203
|
+
}
|
|
204
|
+
//#endregion
|
|
205
|
+
export { monoFilterBuilder as t };
|