@fusedashlabs/widgets 0.4.4 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/README.md +24 -3
- package/dist/catalog/engine.d.ts +9 -0
- package/dist/catalog/engine.d.ts.map +1 -0
- package/dist/catalog/engine.js +28 -0
- package/dist/catalog/engine.js.map +1 -0
- package/dist/catalog/evaluate.d.ts +11 -0
- package/dist/catalog/evaluate.d.ts.map +1 -0
- package/dist/catalog/evaluate.js +18 -0
- package/dist/catalog/evaluate.js.map +1 -0
- package/dist/catalog/index.d.ts +8 -0
- package/dist/catalog/index.d.ts.map +1 -0
- package/dist/catalog/index.js +25 -0
- package/dist/catalog/index.js.map +1 -0
- package/dist/catalog/load.d.ts +11 -0
- package/dist/catalog/load.d.ts.map +1 -0
- package/dist/catalog/load.js +140 -0
- package/dist/catalog/load.js.map +1 -0
- package/dist/catalog/schema.d.ts +5 -0
- package/dist/catalog/schema.d.ts.map +1 -0
- package/dist/catalog/schema.js +143 -0
- package/dist/catalog/schema.js.map +1 -0
- package/dist/catalog/types.d.ts +83 -0
- package/dist/catalog/types.d.ts.map +1 -0
- package/dist/catalog/types.js +45 -0
- package/dist/catalog/types.js.map +1 -0
- package/dist/catalog/when.d.ts +13 -0
- package/dist/catalog/when.d.ts.map +1 -0
- package/dist/catalog/when.js +236 -0
- package/dist/catalog/when.js.map +1 -0
- package/dist/components/approval-bar/element/ui9000-approval-bar.d.ts +17 -0
- package/dist/components/approval-bar/element/ui9000-approval-bar.d.ts.map +1 -0
- package/dist/components/approval-bar/element/ui9000-approval-bar.js +83 -0
- package/dist/components/approval-bar/element/ui9000-approval-bar.js.map +1 -0
- package/dist/components/approval-bar/index.d.ts +4 -0
- package/dist/components/approval-bar/index.d.ts.map +1 -0
- package/dist/components/approval-bar/index.js +11 -0
- package/dist/components/approval-bar/index.js.map +1 -0
- package/dist/components/approval-bar/lib/normalize.d.ts +7 -0
- package/dist/components/approval-bar/lib/normalize.d.ts.map +1 -0
- package/dist/components/approval-bar/lib/normalize.js +12 -0
- package/dist/components/approval-bar/lib/normalize.js.map +1 -0
- package/dist/components/approval-bar/metadata.json.d.ts +99 -0
- package/dist/components/approval-bar/metadata.json.js +63 -0
- package/dist/components/approval-bar/metadata.json.js.map +1 -0
- package/dist/components/bar-chart/element/styles.js +3 -3
- package/dist/components/bar-chart/element/styles.js.map +1 -1
- package/dist/components/bar-chart/metadata.json.d.ts +53 -0
- package/dist/components/bar-chart/metadata.json.js +21 -0
- package/dist/components/bar-chart/metadata.json.js.map +1 -1
- package/dist/components/box-plot-chart/element/styles.js +3 -3
- package/dist/components/box-plot-chart/element/styles.js.map +1 -1
- package/dist/components/button/element/ui9000-button.d.ts +15 -0
- package/dist/components/button/element/ui9000-button.d.ts.map +1 -0
- package/dist/components/button/element/ui9000-button.js +56 -0
- package/dist/components/button/element/ui9000-button.js.map +1 -0
- package/dist/components/button/index.d.ts +3 -0
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/components/button/index.js +9 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/button/metadata.json.d.ts +99 -0
- package/dist/components/button/metadata.json.js +63 -0
- package/dist/components/button/metadata.json.js.map +1 -0
- package/dist/components/chart-renderer/element/styles.d.ts.map +1 -1
- package/dist/components/chart-renderer/element/styles.js +4 -1
- package/dist/components/chart-renderer/element/styles.js.map +1 -1
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.d.ts.map +1 -1
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.js +12 -0
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.js.map +1 -1
- package/dist/components/chart-renderer/metadata.json.d.ts +7 -1
- package/dist/components/chart-renderer/metadata.json.js +4 -1
- package/dist/components/chart-renderer/metadata.json.js.map +1 -1
- package/dist/components/checkbox/element/ui9000-checkbox.d.ts +16 -0
- package/dist/components/checkbox/element/ui9000-checkbox.d.ts.map +1 -0
- package/dist/components/checkbox/element/ui9000-checkbox.js +71 -0
- package/dist/components/checkbox/element/ui9000-checkbox.js.map +1 -0
- package/dist/components/checkbox/index.d.ts +3 -0
- package/dist/components/checkbox/index.d.ts.map +1 -0
- package/dist/components/checkbox/index.js +9 -0
- package/dist/components/checkbox/index.js.map +1 -0
- package/dist/components/checkbox/metadata.json.d.ts +99 -0
- package/dist/components/checkbox/metadata.json.js +63 -0
- package/dist/components/checkbox/metadata.json.js.map +1 -0
- package/dist/components/custom-widget/element/styles.d.ts +2 -0
- package/dist/components/custom-widget/element/styles.d.ts.map +1 -0
- package/dist/components/custom-widget/element/styles.js +286 -0
- package/dist/components/custom-widget/element/styles.js.map +1 -0
- package/dist/components/custom-widget/element/ui9000-custom-widget.d.ts +47 -0
- package/dist/components/custom-widget/element/ui9000-custom-widget.d.ts.map +1 -0
- package/dist/components/custom-widget/element/ui9000-custom-widget.js +242 -0
- package/dist/components/custom-widget/element/ui9000-custom-widget.js.map +1 -0
- package/dist/components/custom-widget/index.d.ts +4 -0
- package/dist/components/custom-widget/index.d.ts.map +1 -0
- package/dist/components/custom-widget/index.js +19 -0
- package/dist/components/custom-widget/index.js.map +1 -0
- package/dist/components/custom-widget/lib/content.d.ts +2 -0
- package/dist/components/custom-widget/lib/content.d.ts.map +1 -0
- package/dist/components/custom-widget/lib/index.d.ts +8 -0
- package/dist/components/custom-widget/lib/index.d.ts.map +1 -0
- package/dist/components/custom-widget/lib/layout.d.ts +35 -0
- package/dist/components/custom-widget/lib/layout.d.ts.map +1 -0
- package/dist/components/custom-widget/lib/layout.js +13 -0
- package/dist/components/custom-widget/lib/layout.js.map +1 -0
- package/dist/components/custom-widget/lib/markdown.d.ts +2 -0
- package/dist/components/custom-widget/lib/markdown.d.ts.map +1 -0
- package/dist/components/custom-widget/lib/normalize.d.ts +6 -0
- package/dist/components/custom-widget/lib/normalize.d.ts.map +1 -0
- package/dist/components/custom-widget/lib/normalize.js +144 -0
- package/dist/components/custom-widget/lib/normalize.js.map +1 -0
- package/dist/components/custom-widget/lib/table.d.ts +2 -0
- package/dist/components/custom-widget/lib/table.d.ts.map +1 -0
- package/dist/components/custom-widget/lib/types.d.ts +55 -0
- package/dist/components/custom-widget/lib/types.d.ts.map +1 -0
- package/dist/components/custom-widget/metadata.json.d.ts +97 -0
- package/dist/components/custom-widget/metadata.json.js +45 -0
- package/dist/components/custom-widget/metadata.json.js.map +1 -0
- package/dist/components/date-input/element/ui9000-date-input.d.ts +16 -0
- package/dist/components/date-input/element/ui9000-date-input.d.ts.map +1 -0
- package/dist/components/date-input/element/ui9000-date-input.js +71 -0
- package/dist/components/date-input/element/ui9000-date-input.js.map +1 -0
- package/dist/components/date-input/index.d.ts +3 -0
- package/dist/components/date-input/index.d.ts.map +1 -0
- package/dist/components/date-input/index.js +9 -0
- package/dist/components/date-input/index.js.map +1 -0
- package/dist/components/date-input/metadata.json.d.ts +99 -0
- package/dist/components/date-input/metadata.json.js +63 -0
- package/dist/components/date-input/metadata.json.js.map +1 -0
- package/dist/components/entity-detail/element/ui9000-entity-detail.d.ts +17 -0
- package/dist/components/entity-detail/element/ui9000-entity-detail.d.ts.map +1 -0
- package/dist/components/entity-detail/element/ui9000-entity-detail.js +91 -0
- package/dist/components/entity-detail/element/ui9000-entity-detail.js.map +1 -0
- package/dist/components/entity-detail/index.d.ts +4 -0
- package/dist/components/entity-detail/index.d.ts.map +1 -0
- package/dist/components/entity-detail/index.js +11 -0
- package/dist/components/entity-detail/index.js.map +1 -0
- package/dist/components/entity-detail/lib/normalize.d.ts +17 -0
- package/dist/components/entity-detail/lib/normalize.d.ts.map +1 -0
- package/dist/components/entity-detail/lib/normalize.js +34 -0
- package/dist/components/entity-detail/lib/normalize.js.map +1 -0
- package/dist/components/entity-detail/metadata.json.d.ts +110 -0
- package/dist/components/entity-detail/metadata.json.js +63 -0
- package/dist/components/entity-detail/metadata.json.js.map +1 -0
- package/dist/components/event-timeline/element/ui9000-event-timeline.d.ts +17 -0
- package/dist/components/event-timeline/element/ui9000-event-timeline.d.ts.map +1 -0
- package/dist/components/event-timeline/element/ui9000-event-timeline.js +78 -0
- package/dist/components/event-timeline/element/ui9000-event-timeline.js.map +1 -0
- package/dist/components/event-timeline/index.d.ts +4 -0
- package/dist/components/event-timeline/index.d.ts.map +1 -0
- package/dist/components/event-timeline/index.js +11 -0
- package/dist/components/event-timeline/index.js.map +1 -0
- package/dist/components/event-timeline/lib/normalize.d.ts +10 -0
- package/dist/components/event-timeline/lib/normalize.d.ts.map +1 -0
- package/dist/components/event-timeline/lib/normalize.js +25 -0
- package/dist/components/event-timeline/lib/normalize.js.map +1 -0
- package/dist/components/event-timeline/metadata.json.d.ts +124 -0
- package/dist/components/event-timeline/metadata.json.js +63 -0
- package/dist/components/event-timeline/metadata.json.js.map +1 -0
- package/dist/components/evidence-panel/element/ui9000-evidence-panel.d.ts +17 -0
- package/dist/components/evidence-panel/element/ui9000-evidence-panel.d.ts.map +1 -0
- package/dist/components/evidence-panel/element/ui9000-evidence-panel.js +84 -0
- package/dist/components/evidence-panel/element/ui9000-evidence-panel.js.map +1 -0
- package/dist/components/evidence-panel/index.d.ts +4 -0
- package/dist/components/evidence-panel/index.d.ts.map +1 -0
- package/dist/components/evidence-panel/index.js +11 -0
- package/dist/components/evidence-panel/index.js.map +1 -0
- package/dist/components/evidence-panel/lib/normalize.d.ts +19 -0
- package/dist/components/evidence-panel/lib/normalize.d.ts.map +1 -0
- package/dist/components/evidence-panel/lib/normalize.js +33 -0
- package/dist/components/evidence-panel/lib/normalize.js.map +1 -0
- package/dist/components/evidence-panel/metadata.json.d.ts +114 -0
- package/dist/components/evidence-panel/metadata.json.js +63 -0
- package/dist/components/evidence-panel/metadata.json.js.map +1 -0
- package/dist/components/form/element/ui9000-form.d.ts +21 -0
- package/dist/components/form/element/ui9000-form.d.ts.map +1 -0
- package/dist/components/form/element/ui9000-form.js +115 -0
- package/dist/components/form/element/ui9000-form.js.map +1 -0
- package/dist/components/form/index.d.ts +4 -0
- package/dist/components/form/index.d.ts.map +1 -0
- package/dist/components/form/index.js +11 -0
- package/dist/components/form/index.js.map +1 -0
- package/dist/components/form/lib/normalize.d.ts +14 -0
- package/dist/components/form/lib/normalize.d.ts.map +1 -0
- package/dist/components/form/lib/normalize.js +36 -0
- package/dist/components/form/lib/normalize.js.map +1 -0
- package/dist/components/form/metadata.json.d.ts +94 -0
- package/dist/components/form/metadata.json.js +63 -0
- package/dist/components/form/metadata.json.js.map +1 -0
- package/dist/components/histogram-chart/element/styles.js +2 -2
- package/dist/components/histogram-chart/element/styles.js.map +1 -1
- package/dist/components/histogram-chart/metadata.json.d.ts +47 -0
- package/dist/components/histogram-chart/metadata.json.js +21 -0
- package/dist/components/histogram-chart/metadata.json.js.map +1 -1
- package/dist/components/image/element/ui9000-image.d.ts +17 -0
- package/dist/components/image/element/ui9000-image.d.ts.map +1 -0
- package/dist/components/image/element/ui9000-image.js +74 -0
- package/dist/components/image/element/ui9000-image.js.map +1 -0
- package/dist/components/image/index.d.ts +4 -0
- package/dist/components/image/index.d.ts.map +1 -0
- package/dist/components/image/index.js +13 -0
- package/dist/components/image/index.js.map +1 -0
- package/dist/components/image/lib/url.d.ts +14 -0
- package/dist/components/image/lib/url.d.ts.map +1 -0
- package/dist/components/image/lib/url.js +23 -0
- package/dist/components/image/lib/url.js.map +1 -0
- package/dist/components/image/metadata.json.d.ts +95 -0
- package/dist/components/image/metadata.json.js +63 -0
- package/dist/components/image/metadata.json.js.map +1 -0
- package/dist/components/kpi-widget/metadata.json.d.ts +47 -0
- package/dist/components/kpi-widget/metadata.json.js +21 -0
- package/dist/components/kpi-widget/metadata.json.js.map +1 -1
- package/dist/components/line-chart/element/styles.js +2 -2
- package/dist/components/line-chart/element/styles.js.map +1 -1
- package/dist/components/lollipop/element/styles.js +3 -3
- package/dist/components/lollipop/element/styles.js.map +1 -1
- package/dist/components/map-chart/metadata.json.d.ts +54 -2
- package/dist/components/map-chart/metadata.json.js +23 -2
- package/dist/components/map-chart/metadata.json.js.map +1 -1
- package/dist/components/multi-select/element/ui9000-multi-select.d.ts +16 -0
- package/dist/components/multi-select/element/ui9000-multi-select.d.ts.map +1 -0
- package/dist/components/multi-select/element/ui9000-multi-select.js +77 -0
- package/dist/components/multi-select/element/ui9000-multi-select.js.map +1 -0
- package/dist/components/multi-select/index.d.ts +3 -0
- package/dist/components/multi-select/index.d.ts.map +1 -0
- package/dist/components/multi-select/index.js +9 -0
- package/dist/components/multi-select/index.js.map +1 -0
- package/dist/components/multi-select/metadata.json.d.ts +99 -0
- package/dist/components/multi-select/metadata.json.js +63 -0
- package/dist/components/multi-select/metadata.json.js.map +1 -0
- package/dist/components/network-graph/metadata.json.d.ts +53 -2
- package/dist/components/network-graph/metadata.json.js +23 -2
- package/dist/components/network-graph/metadata.json.js.map +1 -1
- package/dist/components/number-input/element/ui9000-number-input.d.ts +16 -0
- package/dist/components/number-input/element/ui9000-number-input.d.ts.map +1 -0
- package/dist/components/number-input/element/ui9000-number-input.js +71 -0
- package/dist/components/number-input/element/ui9000-number-input.js.map +1 -0
- package/dist/components/number-input/index.d.ts +3 -0
- package/dist/components/number-input/index.d.ts.map +1 -0
- package/dist/components/number-input/index.js +9 -0
- package/dist/components/number-input/index.js.map +1 -0
- package/dist/components/number-input/metadata.json.d.ts +99 -0
- package/dist/components/number-input/metadata.json.js +63 -0
- package/dist/components/number-input/metadata.json.js.map +1 -0
- package/dist/components/select/element/ui9000-select.d.ts +16 -0
- package/dist/components/select/element/ui9000-select.d.ts.map +1 -0
- package/dist/components/select/element/ui9000-select.js +73 -0
- package/dist/components/select/element/ui9000-select.js.map +1 -0
- package/dist/components/select/index.d.ts +3 -0
- package/dist/components/select/index.d.ts.map +1 -0
- package/dist/components/select/index.js +9 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/select/metadata.json.d.ts +99 -0
- package/dist/components/select/metadata.json.js +63 -0
- package/dist/components/select/metadata.json.js.map +1 -0
- package/dist/components/step-line-chart/element/styles.js +2 -2
- package/dist/components/step-line-chart/element/styles.js.map +1 -1
- package/dist/components/table/element/styles.d.ts +2 -0
- package/dist/components/table/element/styles.d.ts.map +1 -0
- package/dist/components/table/element/styles.js +105 -0
- package/dist/components/table/element/styles.js.map +1 -0
- package/dist/components/table/element/ui9000-table.d.ts +17 -0
- package/dist/components/table/element/ui9000-table.d.ts.map +1 -0
- package/dist/components/table/element/ui9000-table.js +113 -0
- package/dist/components/table/element/ui9000-table.js.map +1 -0
- package/dist/components/table/index.d.ts +4 -0
- package/dist/components/table/index.d.ts.map +1 -0
- package/dist/components/table/index.js +14 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/lib/table.d.ts +55 -0
- package/dist/components/table/lib/table.d.ts.map +1 -0
- package/dist/components/table/lib/table.js +181 -0
- package/dist/components/table/lib/table.js.map +1 -0
- package/dist/components/table/metadata.json.d.ts +88 -0
- package/dist/components/table/metadata.json.js +63 -0
- package/dist/components/table/metadata.json.js.map +1 -0
- package/dist/components/text/element/ui9000-text.d.ts +16 -0
- package/dist/components/text/element/ui9000-text.d.ts.map +1 -0
- package/dist/components/text/element/ui9000-text.js +90 -0
- package/dist/components/text/element/ui9000-text.js.map +1 -0
- package/dist/components/text/index.d.ts +4 -0
- package/dist/components/text/index.d.ts.map +1 -0
- package/dist/components/text/index.js +11 -0
- package/dist/components/text/index.js.map +1 -0
- package/dist/components/text/lib/content.d.ts +2 -0
- package/dist/components/text/lib/content.d.ts.map +1 -0
- package/dist/components/text/lib/markdown.d.ts +4 -0
- package/dist/components/text/lib/markdown.d.ts.map +1 -0
- package/dist/components/text/lib/markdown.js +125 -0
- package/dist/components/text/lib/markdown.js.map +1 -0
- package/dist/components/text/metadata.json.d.ts +98 -0
- package/dist/components/text/metadata.json.js +63 -0
- package/dist/components/text/metadata.json.js.map +1 -0
- package/dist/components/text-input/element/ui9000-text-input.d.ts +16 -0
- package/dist/components/text-input/element/ui9000-text-input.d.ts.map +1 -0
- package/dist/components/text-input/element/ui9000-text-input.js +70 -0
- package/dist/components/text-input/element/ui9000-text-input.js.map +1 -0
- package/dist/components/text-input/index.d.ts +3 -0
- package/dist/components/text-input/index.d.ts.map +1 -0
- package/dist/components/text-input/index.js +9 -0
- package/dist/components/text-input/index.js.map +1 -0
- package/dist/components/text-input/metadata.json.d.ts +99 -0
- package/dist/components/text-input/metadata.json.js +63 -0
- package/dist/components/text-input/metadata.json.js.map +1 -0
- package/dist/element/chart-shell-styles.d.ts.map +1 -1
- package/dist/element/chart-shell-styles.js +11 -4
- package/dist/element/chart-shell-styles.js.map +1 -1
- package/dist/element/dispatch-ui9000.d.ts +11 -0
- package/dist/element/dispatch-ui9000.d.ts.map +1 -0
- package/dist/element/dispatch-ui9000.js +21 -0
- package/dist/element/dispatch-ui9000.js.map +1 -0
- package/dist/element/surface-styles.d.ts +2 -0
- package/dist/element/surface-styles.d.ts.map +1 -0
- package/dist/element/surface-styles.js +84 -0
- package/dist/element/surface-styles.js.map +1 -0
- package/dist/element/ui9000-chart-base.d.ts +5 -0
- package/dist/element/ui9000-chart-base.d.ts.map +1 -1
- package/dist/element/ui9000-chart-base.js +7 -1
- package/dist/element/ui9000-chart-base.js.map +1 -1
- package/dist/index.d.ts +20 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +116 -1
- package/dist/index.js.map +1 -1
- package/dist/lazy/approval-bar.d.ts +4 -0
- package/dist/lazy/approval-bar.d.ts.map +1 -0
- package/dist/lazy/approval-bar.js +5 -0
- package/dist/lazy/approval-bar.js.map +1 -0
- package/dist/lazy/button.d.ts +4 -0
- package/dist/lazy/button.d.ts.map +1 -0
- package/dist/lazy/button.js +5 -0
- package/dist/lazy/button.js.map +1 -0
- package/dist/lazy/checkbox.d.ts +4 -0
- package/dist/lazy/checkbox.d.ts.map +1 -0
- package/dist/lazy/checkbox.js +5 -0
- package/dist/lazy/checkbox.js.map +1 -0
- package/dist/lazy/custom-widget.d.ts +4 -0
- package/dist/lazy/custom-widget.d.ts.map +1 -0
- package/dist/lazy/custom-widget.js +5 -0
- package/dist/lazy/custom-widget.js.map +1 -0
- package/dist/lazy/date-input.d.ts +4 -0
- package/dist/lazy/date-input.d.ts.map +1 -0
- package/dist/lazy/date-input.js +5 -0
- package/dist/lazy/date-input.js.map +1 -0
- package/dist/lazy/entity-detail.d.ts +4 -0
- package/dist/lazy/entity-detail.d.ts.map +1 -0
- package/dist/lazy/entity-detail.js +5 -0
- package/dist/lazy/entity-detail.js.map +1 -0
- package/dist/lazy/event-timeline.d.ts +4 -0
- package/dist/lazy/event-timeline.d.ts.map +1 -0
- package/dist/lazy/event-timeline.js +5 -0
- package/dist/lazy/event-timeline.js.map +1 -0
- package/dist/lazy/evidence-panel.d.ts +4 -0
- package/dist/lazy/evidence-panel.d.ts.map +1 -0
- package/dist/lazy/evidence-panel.js +5 -0
- package/dist/lazy/evidence-panel.js.map +1 -0
- package/dist/lazy/form.d.ts +4 -0
- package/dist/lazy/form.d.ts.map +1 -0
- package/dist/lazy/form.js +5 -0
- package/dist/lazy/form.js.map +1 -0
- package/dist/lazy/image.d.ts +4 -0
- package/dist/lazy/image.d.ts.map +1 -0
- package/dist/lazy/image.js +5 -0
- package/dist/lazy/image.js.map +1 -0
- package/dist/lazy/index.d.ts +17 -1
- package/dist/lazy/index.d.ts.map +1 -1
- package/dist/lazy/index.js +128 -0
- package/dist/lazy/index.js.map +1 -1
- package/dist/lazy/multi-select.d.ts +4 -0
- package/dist/lazy/multi-select.d.ts.map +1 -0
- package/dist/lazy/multi-select.js +5 -0
- package/dist/lazy/multi-select.js.map +1 -0
- package/dist/lazy/number-input.d.ts +4 -0
- package/dist/lazy/number-input.d.ts.map +1 -0
- package/dist/lazy/number-input.js +5 -0
- package/dist/lazy/number-input.js.map +1 -0
- package/dist/lazy/select.d.ts +4 -0
- package/dist/lazy/select.d.ts.map +1 -0
- package/dist/lazy/select.js +5 -0
- package/dist/lazy/select.js.map +1 -0
- package/dist/lazy/table.d.ts +4 -0
- package/dist/lazy/table.d.ts.map +1 -0
- package/dist/lazy/table.js +5 -0
- package/dist/lazy/table.js.map +1 -0
- package/dist/lazy/text-input.d.ts +4 -0
- package/dist/lazy/text-input.d.ts.map +1 -0
- package/dist/lazy/text-input.js +5 -0
- package/dist/lazy/text-input.js.map +1 -0
- package/dist/lazy/text.d.ts +4 -0
- package/dist/lazy/text.d.ts.map +1 -0
- package/dist/lazy/text.js +5 -0
- package/dist/lazy/text.js.map +1 -0
- package/dist/lib/labelled-control.d.ts +12 -0
- package/dist/lib/labelled-control.d.ts.map +1 -0
- package/dist/lib/labelled-control.js +14 -0
- package/dist/lib/labelled-control.js.map +1 -0
- package/package.json +134 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/custom-widget/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC3E,YAAY,EACV,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ArrangingDirection, CustomPaneKind } from './types.js';
|
|
2
|
+
/** Client `WIDGET_DIMENSIONS.KPI_HEIGHT` — fixed band above the panes */
|
|
3
|
+
export declare const KPI_ROW_HEIGHT = 104;
|
|
4
|
+
/** Client renders a 10px spacer between two panes in MCP chat */
|
|
5
|
+
export declare const PANE_GAP = 10;
|
|
6
|
+
/** `useWidgetToolbar` disables adding past two panes */
|
|
7
|
+
export declare const MAX_PANES = 2;
|
|
8
|
+
/** Story / playground toggles — KPI is a band, not a pane */
|
|
9
|
+
export interface CustomWidgetSlots {
|
|
10
|
+
kpi?: boolean;
|
|
11
|
+
chart?: boolean;
|
|
12
|
+
table?: boolean;
|
|
13
|
+
text?: boolean;
|
|
14
|
+
image?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare const PANE_SLOT_KEYS: readonly ["chart", "table", "text", "image"];
|
|
17
|
+
export type CustomWidgetPaneSlot = (typeof PANE_SLOT_KEYS)[number];
|
|
18
|
+
/**
|
|
19
|
+
* First two enabled pane slots, in chart → table → text → image order.
|
|
20
|
+
* KPI is ignored here — it is not a main widget.
|
|
21
|
+
*/
|
|
22
|
+
export declare function panesFromSlots(slots: CustomWidgetSlots): CustomPaneKind[];
|
|
23
|
+
/**
|
|
24
|
+
* At most two pane switches stay on. KPI is never capped.
|
|
25
|
+
* A third pane is rejected so the previous pair stays selected.
|
|
26
|
+
*/
|
|
27
|
+
export declare function limitSelectedPanes(slots: CustomWidgetSlots, previous?: CustomWidgetSlots): CustomWidgetSlots;
|
|
28
|
+
/**
|
|
29
|
+
* Client `WidgetContent` maps direction onto flex-direction inverted:
|
|
30
|
+
* `vertical` → row, `horizontal` → column.
|
|
31
|
+
*/
|
|
32
|
+
export declare function paneFlexDirection(direction: ArrangingDirection): 'row' | 'column';
|
|
33
|
+
/** Unselected pane switches disable once two panes are already on. KPI is not a pane. */
|
|
34
|
+
export declare function isPaneSlotDisabled(slots: CustomWidgetSlots, key: CustomWidgetPaneSlot): boolean;
|
|
35
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/components/custom-widget/lib/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAErE,yEAAyE;AACzE,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,iEAAiE;AACjE,eAAO,MAAM,QAAQ,KAAK,CAAC;AAE3B,wDAAwD;AACxD,eAAO,MAAM,SAAS,IAAI,CAAC;AAE3B,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,8CAA+C,CAAC;AAE3E,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AA2BnE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,cAAc,EAAE,CAIzE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,GAAE,iBAAsB,GAC/B,iBAAiB,CASnB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,GAAG,KAAK,GAAG,QAAQ,CAEjF;AAED,yFAAyF;AACzF,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAGT"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const KPI_ROW_HEIGHT = 104;
|
|
2
|
+
const PANE_GAP = 10;
|
|
3
|
+
const MAX_PANES = 2;
|
|
4
|
+
function paneFlexDirection(direction) {
|
|
5
|
+
return direction === "vertical" ? "row" : "column";
|
|
6
|
+
}
|
|
7
|
+
export {
|
|
8
|
+
KPI_ROW_HEIGHT,
|
|
9
|
+
MAX_PANES,
|
|
10
|
+
PANE_GAP,
|
|
11
|
+
paneFlexDirection
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sources":["../../../../src/components/custom-widget/lib/layout.ts"],"sourcesContent":["import type { ArrangingDirection, CustomPaneKind } from './types.js';\n\n/** Client `WIDGET_DIMENSIONS.KPI_HEIGHT` — fixed band above the panes */\nexport const KPI_ROW_HEIGHT = 104;\n\n/** Client renders a 10px spacer between two panes in MCP chat */\nexport const PANE_GAP = 10;\n\n/** `useWidgetToolbar` disables adding past two panes */\nexport const MAX_PANES = 2;\n\n/** Story / playground toggles — KPI is a band, not a pane */\nexport interface CustomWidgetSlots {\n kpi?: boolean;\n chart?: boolean;\n table?: boolean;\n text?: boolean;\n image?: boolean;\n}\n\nexport const PANE_SLOT_KEYS = ['chart', 'table', 'text', 'image'] as const;\n\nexport type CustomWidgetPaneSlot = (typeof PANE_SLOT_KEYS)[number];\n\nconst SLOT_PANES: readonly { key: CustomWidgetPaneSlot; kind: CustomPaneKind }[] = [\n { key: 'chart', kind: 'chartWidget' },\n { key: 'table', kind: 'tableWidget' },\n { key: 'text', kind: 'textWidget' },\n { key: 'image', kind: 'imageWidget' },\n];\n\nfunction selectedPaneSlots(slots: CustomWidgetSlots): CustomWidgetPaneSlot[] {\n return PANE_SLOT_KEYS.filter((key) => !!slots[key]);\n}\n\nfunction slotsFromPaneKeys(\n slots: CustomWidgetSlots,\n panes: readonly CustomWidgetPaneSlot[],\n): CustomWidgetSlots {\n const keep = new Set(panes);\n return {\n kpi: !!slots.kpi,\n chart: keep.has('chart'),\n table: keep.has('table'),\n text: keep.has('text'),\n image: keep.has('image'),\n };\n}\n\n/**\n * First two enabled pane slots, in chart → table → text → image order.\n * KPI is ignored here — it is not a main widget.\n */\nexport function panesFromSlots(slots: CustomWidgetSlots): CustomPaneKind[] {\n return SLOT_PANES.filter(({ key }) => !!slots[key])\n .slice(0, MAX_PANES)\n .map(({ kind }) => kind);\n}\n\n/**\n * At most two pane switches stay on. KPI is never capped.\n * A third pane is rejected so the previous pair stays selected.\n */\nexport function limitSelectedPanes(\n slots: CustomWidgetSlots,\n previous: CustomWidgetSlots = {},\n): CustomWidgetSlots {\n const selected = selectedPaneSlots(slots);\n if (selected.length <= MAX_PANES) return slotsFromPaneKeys(slots, selected);\n\n const previousSelected = selectedPaneSlots(previous);\n if (previousSelected.length === MAX_PANES) {\n return slotsFromPaneKeys(slots, previousSelected);\n }\n return slotsFromPaneKeys(slots, selected.slice(0, MAX_PANES));\n}\n\n/**\n * Client `WidgetContent` maps direction onto flex-direction inverted:\n * `vertical` → row, `horizontal` → column.\n */\nexport function paneFlexDirection(direction: ArrangingDirection): 'row' | 'column' {\n return direction === 'vertical' ? 'row' : 'column';\n}\n\n/** Unselected pane switches disable once two panes are already on. KPI is not a pane. */\nexport function isPaneSlotDisabled(\n slots: CustomWidgetSlots,\n key: CustomWidgetPaneSlot,\n): boolean {\n if (slots[key]) return false;\n return selectedPaneSlots(slots).length >= MAX_PANES;\n}\n"],"names":[],"mappings":"AAGO,MAAM,iBAAiB;AAGvB,MAAM,WAAW;AAGjB,MAAM,YAAY;AAwElB,SAAS,kBAAkB,WAAiD;AACjF,SAAO,cAAc,aAAa,QAAQ;AAC5C;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../../src/components/custom-widget/lib/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { CustomWidgetModel } from './types.js';
|
|
2
|
+
/** Chart panes whose widget `chartType` is a content type render empty, as in the client */
|
|
3
|
+
export declare function isContentChartType(chartType: string | undefined): boolean;
|
|
4
|
+
/** Build the shell model from a FuseDash CustomWidget payload. */
|
|
5
|
+
export declare function normalizeCustomWidget(input: unknown): CustomWidgetModel;
|
|
6
|
+
//# sourceMappingURL=normalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../src/components/custom-widget/lib/normalize.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAqCpB,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEzE;AAyGD,kEAAkE;AAClE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAsBvE"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { MAX_PANES } from "./layout.js";
|
|
2
|
+
import { parseTableHeaders, getSourceFromContains, normalizeTableModel } from "../../table/lib/table.js";
|
|
3
|
+
import { normalizeTextContent, normalizeImageContent } from "../../image/lib/url.js";
|
|
4
|
+
const PANE_KINDS = [
|
|
5
|
+
"chartWidget",
|
|
6
|
+
"tableWidget",
|
|
7
|
+
"textWidget",
|
|
8
|
+
"imageWidget"
|
|
9
|
+
];
|
|
10
|
+
const CONTENT_CHART_TYPES = ["tableChart", "textChart", "imageChart"];
|
|
11
|
+
const CHART_EMPTY_TITLE = "Custom Chart";
|
|
12
|
+
const CHART_EMPTY_SUBTITLE = "Choose a chart from recommended or configure it by your own.";
|
|
13
|
+
const PANE_EMPTY_TITLES = {
|
|
14
|
+
chartWidget: CHART_EMPTY_TITLE,
|
|
15
|
+
tableWidget: "Table",
|
|
16
|
+
textWidget: "Text",
|
|
17
|
+
imageWidget: "Image"
|
|
18
|
+
};
|
|
19
|
+
const EMPTY_MODEL = {
|
|
20
|
+
title: "",
|
|
21
|
+
direction: "vertical",
|
|
22
|
+
hasKpi: false,
|
|
23
|
+
panes: [],
|
|
24
|
+
widget: null,
|
|
25
|
+
isEmpty: true
|
|
26
|
+
};
|
|
27
|
+
function isPaneKind(value) {
|
|
28
|
+
return typeof value === "string" && PANE_KINDS.includes(value);
|
|
29
|
+
}
|
|
30
|
+
function isContentChartType(chartType) {
|
|
31
|
+
return !!chartType && CONTENT_CHART_TYPES.includes(chartType);
|
|
32
|
+
}
|
|
33
|
+
function emptyPane(kind, index, widgetId, title, subtitle) {
|
|
34
|
+
return {
|
|
35
|
+
key: `${widgetId}-${kind}-${index}`,
|
|
36
|
+
kind,
|
|
37
|
+
renderable: false,
|
|
38
|
+
emptyTitle: title,
|
|
39
|
+
emptySubtitle: subtitle
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function buildPane(kind, index, widget) {
|
|
43
|
+
const widgetId = typeof widget.id === "string" ? widget.id : "";
|
|
44
|
+
const chartType = widget.chartType;
|
|
45
|
+
if (kind === "chartWidget") {
|
|
46
|
+
const renderable = !isContentChartType(chartType);
|
|
47
|
+
return {
|
|
48
|
+
key: `${widgetId}-${kind}-${index}`,
|
|
49
|
+
kind,
|
|
50
|
+
renderable,
|
|
51
|
+
emptyTitle: PANE_EMPTY_TITLES.chartWidget,
|
|
52
|
+
emptySubtitle: CHART_EMPTY_SUBTITLE
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if (kind === "tableWidget") {
|
|
56
|
+
const headers = parseTableHeaders(widget.headers);
|
|
57
|
+
if (!headers.length) {
|
|
58
|
+
return emptyPane(
|
|
59
|
+
kind,
|
|
60
|
+
index,
|
|
61
|
+
widgetId,
|
|
62
|
+
"No table columns yet",
|
|
63
|
+
"Use MCP chat to describe which dataset fields, chart fields, or personal table data to show in this table."
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
if (headers.some((header) => !getSourceFromContains(header))) {
|
|
67
|
+
return emptyPane(
|
|
68
|
+
kind,
|
|
69
|
+
index,
|
|
70
|
+
widgetId,
|
|
71
|
+
"Table columns need sources",
|
|
72
|
+
"Each column must specify a dataset, chart, or static (tableData) field via MCP chat."
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
const table = normalizeTableModel(widget);
|
|
76
|
+
return {
|
|
77
|
+
key: `${widgetId}-${kind}-${index}`,
|
|
78
|
+
kind,
|
|
79
|
+
renderable: true,
|
|
80
|
+
emptyTitle: PANE_EMPTY_TITLES.tableWidget,
|
|
81
|
+
emptySubtitle: "",
|
|
82
|
+
table: table ?? { columns: [], cells: [] }
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (kind === "textWidget") {
|
|
86
|
+
const text = normalizeTextContent(widget);
|
|
87
|
+
if (!text) {
|
|
88
|
+
return emptyPane(
|
|
89
|
+
kind,
|
|
90
|
+
index,
|
|
91
|
+
widgetId,
|
|
92
|
+
"Add text",
|
|
93
|
+
"Click to write your own text or use AI to generate content"
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
key: `${widgetId}-${kind}-${index}`,
|
|
98
|
+
kind,
|
|
99
|
+
renderable: true,
|
|
100
|
+
emptyTitle: PANE_EMPTY_TITLES.textWidget,
|
|
101
|
+
emptySubtitle: "",
|
|
102
|
+
text
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
const image = normalizeImageContent(widget);
|
|
106
|
+
if (!image) {
|
|
107
|
+
return emptyPane(
|
|
108
|
+
kind,
|
|
109
|
+
index,
|
|
110
|
+
widgetId,
|
|
111
|
+
"Upload or Generate an Image",
|
|
112
|
+
"The image should reflect the presented information"
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
key: `${widgetId}-${kind}-${index}`,
|
|
117
|
+
kind,
|
|
118
|
+
renderable: true,
|
|
119
|
+
emptyTitle: PANE_EMPTY_TITLES.imageWidget,
|
|
120
|
+
emptySubtitle: "",
|
|
121
|
+
image
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function normalizeCustomWidget(input) {
|
|
125
|
+
if (!input || typeof input !== "object" || Array.isArray(input)) return EMPTY_MODEL;
|
|
126
|
+
const widget = input;
|
|
127
|
+
const arranging = widget.arranging ?? {};
|
|
128
|
+
const direction = arranging.direction === "horizontal" ? "horizontal" : "vertical";
|
|
129
|
+
const hasKpi = !!arranging.hasKpi;
|
|
130
|
+
const panes = (Array.isArray(arranging.widgets) ? arranging.widgets : []).filter(isPaneKind).slice(0, MAX_PANES).map((kind, index) => buildPane(kind, index, widget));
|
|
131
|
+
return {
|
|
132
|
+
title: typeof widget.name === "string" ? widget.name.trim() : "",
|
|
133
|
+
direction,
|
|
134
|
+
hasKpi,
|
|
135
|
+
panes,
|
|
136
|
+
widget,
|
|
137
|
+
isEmpty: panes.length === 0 && !hasKpi
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
export {
|
|
141
|
+
isContentChartType,
|
|
142
|
+
normalizeCustomWidget
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=normalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.js","sources":["../../../../src/components/custom-widget/lib/normalize.ts"],"sourcesContent":["import { normalizeImageContent, normalizeTextContent } from './content.js';\nimport { MAX_PANES } from './layout.js';\nimport { getSourceFromContains, normalizeTableModel, parseTableHeaders } from './table.js';\nimport type {\n ArrangingDirection,\n CustomPane,\n CustomPaneKind,\n CustomWidgetModel,\n CustomWidgetPayload,\n} from './types.js';\n\nconst PANE_KINDS: readonly CustomPaneKind[] = [\n 'chartWidget',\n 'tableWidget',\n 'textWidget',\n 'imageWidget',\n];\n\n/** Client `CONTENT_WIDGET_TYPES` — chart panes fall back to the empty state for these */\nconst CONTENT_CHART_TYPES = ['tableChart', 'textChart', 'imageChart'];\n\n/** Copy lifted from the client `ChartWidget` empty state */\nconst CHART_EMPTY_TITLE = 'Custom Chart';\nconst CHART_EMPTY_SUBTITLE =\n 'Choose a chart from recommended or configure it by your own.';\n\nconst PANE_EMPTY_TITLES: Record<CustomPaneKind, string> = {\n chartWidget: CHART_EMPTY_TITLE,\n tableWidget: 'Table',\n textWidget: 'Text',\n imageWidget: 'Image',\n};\n\nconst EMPTY_MODEL: CustomWidgetModel = {\n title: '',\n direction: 'vertical',\n hasKpi: false,\n panes: [],\n widget: null,\n isEmpty: true,\n};\n\nfunction isPaneKind(value: unknown): value is CustomPaneKind {\n return typeof value === 'string' && PANE_KINDS.includes(value as CustomPaneKind);\n}\n\n/** Chart panes whose widget `chartType` is a content type render empty, as in the client */\nexport function isContentChartType(chartType: string | undefined): boolean {\n return !!chartType && CONTENT_CHART_TYPES.includes(chartType);\n}\n\nfunction emptyPane(\n kind: CustomPaneKind,\n index: number,\n widgetId: string,\n title: string,\n subtitle: string,\n): CustomPane {\n return {\n key: `${widgetId}-${kind}-${index}`,\n kind,\n renderable: false,\n emptyTitle: title,\n emptySubtitle: subtitle,\n };\n}\n\nfunction buildPane(kind: CustomPaneKind, index: number, widget: CustomWidgetPayload): CustomPane {\n const widgetId = typeof widget.id === 'string' ? widget.id : '';\n const chartType = widget.chartType;\n\n if (kind === 'chartWidget') {\n const renderable = !isContentChartType(chartType);\n return {\n key: `${widgetId}-${kind}-${index}`,\n kind,\n renderable,\n emptyTitle: PANE_EMPTY_TITLES.chartWidget,\n emptySubtitle: CHART_EMPTY_SUBTITLE,\n };\n }\n\n if (kind === 'tableWidget') {\n const headers = parseTableHeaders(widget.headers);\n if (!headers.length) {\n return emptyPane(\n kind,\n index,\n widgetId,\n 'No table columns yet',\n 'Use MCP chat to describe which dataset fields, chart fields, or personal table data to show in this table.',\n );\n }\n if (headers.some((header) => !getSourceFromContains(header))) {\n return emptyPane(\n kind,\n index,\n widgetId,\n 'Table columns need sources',\n 'Each column must specify a dataset, chart, or static (tableData) field via MCP chat.',\n );\n }\n const table = normalizeTableModel(widget);\n return {\n key: `${widgetId}-${kind}-${index}`,\n kind,\n renderable: true,\n emptyTitle: PANE_EMPTY_TITLES.tableWidget,\n emptySubtitle: '',\n table: table ?? { columns: [], cells: [] },\n };\n }\n\n if (kind === 'textWidget') {\n const text = normalizeTextContent(widget);\n if (!text) {\n return emptyPane(\n kind,\n index,\n widgetId,\n 'Add text',\n 'Click to write your own text or use AI to generate content',\n );\n }\n return {\n key: `${widgetId}-${kind}-${index}`,\n kind,\n renderable: true,\n emptyTitle: PANE_EMPTY_TITLES.textWidget,\n emptySubtitle: '',\n text,\n };\n }\n\n const image = normalizeImageContent(widget);\n if (!image) {\n return emptyPane(\n kind,\n index,\n widgetId,\n 'Upload or Generate an Image',\n 'The image should reflect the presented information',\n );\n }\n return {\n key: `${widgetId}-${kind}-${index}`,\n kind,\n renderable: true,\n emptyTitle: PANE_EMPTY_TITLES.imageWidget,\n emptySubtitle: '',\n image,\n };\n}\n\n/** Build the shell model from a FuseDash CustomWidget payload. */\nexport function normalizeCustomWidget(input: unknown): CustomWidgetModel {\n if (!input || typeof input !== 'object' || Array.isArray(input)) return EMPTY_MODEL;\n\n const widget = input as CustomWidgetPayload;\n const arranging = widget.arranging ?? {};\n const direction: ArrangingDirection =\n arranging.direction === 'horizontal' ? 'horizontal' : 'vertical';\n const hasKpi = !!arranging.hasKpi;\n\n const panes = (Array.isArray(arranging.widgets) ? arranging.widgets : [])\n .filter(isPaneKind)\n .slice(0, MAX_PANES)\n .map((kind, index) => buildPane(kind, index, widget));\n\n return {\n title: typeof widget.name === 'string' ? widget.name.trim() : '',\n direction,\n hasKpi,\n panes,\n widget,\n isEmpty: panes.length === 0 && !hasKpi,\n };\n}\n"],"names":[],"mappings":";;;AAWA,MAAM,aAAwC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGA,MAAM,sBAAsB,CAAC,cAAc,aAAa,YAAY;AAGpE,MAAM,oBAAoB;AAC1B,MAAM,uBACJ;AAEF,MAAM,oBAAoD;AAAA,EACxD,aAAa;AAAA,EACb,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,aAAa;AACf;AAEA,MAAM,cAAiC;AAAA,EACrC,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO,CAAA;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AACX;AAEA,SAAS,WAAW,OAAyC;AAC3D,SAAO,OAAO,UAAU,YAAY,WAAW,SAAS,KAAuB;AACjF;AAGO,SAAS,mBAAmB,WAAwC;AACzE,SAAO,CAAC,CAAC,aAAa,oBAAoB,SAAS,SAAS;AAC9D;AAEA,SAAS,UACP,MACA,OACA,UACA,OACA,UACY;AACZ,SAAO;AAAA,IACL,KAAK,GAAG,QAAQ,IAAI,IAAI,IAAI,KAAK;AAAA,IACjC;AAAA,IACA,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,eAAe;AAAA,EAAA;AAEnB;AAEA,SAAS,UAAU,MAAsB,OAAe,QAAyC;AAC/F,QAAM,WAAW,OAAO,OAAO,OAAO,WAAW,OAAO,KAAK;AAC7D,QAAM,YAAY,OAAO;AAEzB,MAAI,SAAS,eAAe;AAC1B,UAAM,aAAa,CAAC,mBAAmB,SAAS;AAChD,WAAO;AAAA,MACL,KAAK,GAAG,QAAQ,IAAI,IAAI,IAAI,KAAK;AAAA,MACjC;AAAA,MACA;AAAA,MACA,YAAY,kBAAkB;AAAA,MAC9B,eAAe;AAAA,IAAA;AAAA,EAEnB;AAEA,MAAI,SAAS,eAAe;AAC1B,UAAM,UAAU,kBAAkB,OAAO,OAAO;AAChD,QAAI,CAAC,QAAQ,QAAQ;AACnB,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AACA,QAAI,QAAQ,KAAK,CAAC,WAAW,CAAC,sBAAsB,MAAM,CAAC,GAAG;AAC5D,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AACA,UAAM,QAAQ,oBAAoB,MAAM;AACxC,WAAO;AAAA,MACL,KAAK,GAAG,QAAQ,IAAI,IAAI,IAAI,KAAK;AAAA,MACjC;AAAA,MACA,YAAY;AAAA,MACZ,YAAY,kBAAkB;AAAA,MAC9B,eAAe;AAAA,MACf,OAAO,SAAS,EAAE,SAAS,CAAA,GAAI,OAAO,CAAA,EAAC;AAAA,IAAE;AAAA,EAE7C;AAEA,MAAI,SAAS,cAAc;AACzB,UAAM,OAAO,qBAAqB,MAAM;AACxC,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AACA,WAAO;AAAA,MACL,KAAK,GAAG,QAAQ,IAAI,IAAI,IAAI,KAAK;AAAA,MACjC;AAAA,MACA,YAAY;AAAA,MACZ,YAAY,kBAAkB;AAAA,MAC9B,eAAe;AAAA,MACf;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,QAAQ,sBAAsB,MAAM;AAC1C,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AACA,SAAO;AAAA,IACL,KAAK,GAAG,QAAQ,IAAI,IAAI,IAAI,KAAK;AAAA,IACjC;AAAA,IACA,YAAY;AAAA,IACZ,YAAY,kBAAkB;AAAA,IAC9B,eAAe;AAAA,IACf;AAAA,EAAA;AAEJ;AAGO,SAAS,sBAAsB,OAAmC;AACvE,MAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,EAAG,QAAO;AAExE,QAAM,SAAS;AACf,QAAM,YAAY,OAAO,aAAa,CAAA;AACtC,QAAM,YACJ,UAAU,cAAc,eAAe,eAAe;AACxD,QAAM,SAAS,CAAC,CAAC,UAAU;AAE3B,QAAM,SAAS,MAAM,QAAQ,UAAU,OAAO,IAAI,UAAU,UAAU,CAAA,GACnE,OAAO,UAAU,EACjB,MAAM,GAAG,SAAS,EAClB,IAAI,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,MAAM,CAAC;AAEtD,SAAO;AAAA,IACL,OAAO,OAAO,OAAO,SAAS,WAAW,OAAO,KAAK,SAAS;AAAA,IAC9D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,MAAM,WAAW,KAAK,CAAC;AAAA,EAAA;AAEpC;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { asDataRows, buildLiveTableRowsFromSources, buildQualifiedChartColumnKey, buildQualifiedDatasetColumnKey, buildQualifiedStaticColumnKey, formatTableCell, getSourceFromContains, normalizeTableModel, parseTableHeaders, stripDataPrefix, type CustomTableModel, type DataRow, type TableCellModel, type TableColumnSource, type TableHeader, type TableHeaderContains, } from '../../table/lib/table.js';
|
|
2
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/components/custom-widget/lib/table.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,6BAA6B,EAC7B,4BAA4B,EAC5B,8BAA8B,EAC9B,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { CustomTableModel } from './table.js';
|
|
2
|
+
/** Pane types a FuseDash CustomWidget can arrange (`arranging.widgets`). */
|
|
3
|
+
export type CustomPaneKind = 'chartWidget' | 'tableWidget' | 'textWidget' | 'imageWidget';
|
|
4
|
+
/**
|
|
5
|
+
* Flex direction of the pane row, using FuseDash semantics:
|
|
6
|
+
* `vertical` lays panes out side by side, `horizontal` stacks them.
|
|
7
|
+
*/
|
|
8
|
+
export type ArrangingDirection = 'vertical' | 'horizontal';
|
|
9
|
+
export interface CustomWidgetArranging {
|
|
10
|
+
widgets?: string[];
|
|
11
|
+
hasKpi?: boolean;
|
|
12
|
+
direction?: ArrangingDirection;
|
|
13
|
+
}
|
|
14
|
+
/** FuseDash `WidgetItem` subset the shell reads; the rest is forwarded to panes. */
|
|
15
|
+
export interface CustomWidgetPayload {
|
|
16
|
+
id?: string;
|
|
17
|
+
name?: string;
|
|
18
|
+
chartType?: string;
|
|
19
|
+
arranging?: CustomWidgetArranging;
|
|
20
|
+
kpis?: unknown[];
|
|
21
|
+
text?: string;
|
|
22
|
+
imageUrl?: string;
|
|
23
|
+
alt?: string;
|
|
24
|
+
headers?: unknown[];
|
|
25
|
+
data?: unknown;
|
|
26
|
+
tableData?: unknown;
|
|
27
|
+
tablePreviewRows?: unknown;
|
|
28
|
+
[key: string]: unknown;
|
|
29
|
+
}
|
|
30
|
+
export interface CustomPane {
|
|
31
|
+
/** Stable key for list rendering — mirrors the client `${id}-${chartType}-${index}` */
|
|
32
|
+
key: string;
|
|
33
|
+
kind: CustomPaneKind;
|
|
34
|
+
/** true when the pane mounts content; false renders the pane empty state */
|
|
35
|
+
renderable: boolean;
|
|
36
|
+
emptyTitle: string;
|
|
37
|
+
emptySubtitle: string;
|
|
38
|
+
table?: CustomTableModel;
|
|
39
|
+
text?: string;
|
|
40
|
+
image?: {
|
|
41
|
+
src: string;
|
|
42
|
+
alt: string;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export interface CustomWidgetModel {
|
|
46
|
+
title: string;
|
|
47
|
+
direction: ArrangingDirection;
|
|
48
|
+
hasKpi: boolean;
|
|
49
|
+
panes: CustomPane[];
|
|
50
|
+
/** Payload handed to chart / KPI panes, or null when the input was unusable */
|
|
51
|
+
widget: CustomWidgetPayload | null;
|
|
52
|
+
/** No panes and no KPI band — the client `WidgetDefaultState` */
|
|
53
|
+
isEmpty: boolean;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/custom-widget/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,4EAA4E;AAC5E,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;AAE1F;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED,oFAAoF;AACpF,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,uFAAuF;IACvF,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,cAAc,CAAC;IACrB,4EAA4E;IAC5E,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,kBAAkB,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,+EAA+E;IAC/E,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"id": "custom-widget",
|
|
3
|
+
"tag": "ui9000-custom-widget",
|
|
4
|
+
"title": "Custom Widget",
|
|
5
|
+
"description": "FuseDash CustomWidget shell — title, optional KPI band, and up to two arranged panes. Chart panes mount ui9000-chart-renderer, the KPI band mounts ui9000-kpi-widget, table/text/image panes mount those primitives. No Redux.",
|
|
6
|
+
"chartTypeKeys": ["customWidget"],
|
|
7
|
+
"source": "client/libs/shared/components/src/Widgets/CustomWidget/",
|
|
8
|
+
"stack": "composite",
|
|
9
|
+
"lazyImport": "@ui9000/widgets/lazy/custom-widget",
|
|
10
|
+
"entry": "@ui9000/widgets/custom-widget",
|
|
11
|
+
"tier": "host",
|
|
12
|
+
"usageConditions": {
|
|
13
|
+
"host": "mcp-chat",
|
|
14
|
+
"notFor": "fusedash-editor",
|
|
15
|
+
"mapsExcluded": true,
|
|
16
|
+
"requiresArranging": "Reads arranging.widgets / arranging.hasKpi / arranging.direction; renders the default state when both are absent.",
|
|
17
|
+
"panesSupported": ["chartWidget", "tableWidget", "textWidget", "imageWidget"],
|
|
18
|
+
"maxPanes": 2
|
|
19
|
+
},
|
|
20
|
+
"allowedActions": ["resize", "download"],
|
|
21
|
+
"propsSchema": {
|
|
22
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
23
|
+
"type": "object",
|
|
24
|
+
"properties": {
|
|
25
|
+
"data": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"description": "FuseDash WidgetItem JSON for the custom widget, including arranging, kpis, and pane fields (text, imageUrl, headers, tableData, tablePreviewRows)",
|
|
28
|
+
"properties": {
|
|
29
|
+
"id": { "type": "string" },
|
|
30
|
+
"name": { "type": "string" },
|
|
31
|
+
"chartType": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "Chart type of the chartWidget pane; content types (tableChart, textChart, imageChart) render the pane empty state"
|
|
34
|
+
},
|
|
35
|
+
"text": { "type": "string", "description": "Markdown/plain text for a textWidget pane" },
|
|
36
|
+
"imageUrl": { "type": "string", "description": "http(s) URL for an imageWidget pane" },
|
|
37
|
+
"alt": { "type": "string" },
|
|
38
|
+
"headers": {
|
|
39
|
+
"type": "array",
|
|
40
|
+
"description": "Table columns. Each contains[].source is dataset | chart | static"
|
|
41
|
+
},
|
|
42
|
+
"tableData": { "type": "array", "description": "Personal/static rows for static-sourced columns" },
|
|
43
|
+
"tablePreviewRows": {
|
|
44
|
+
"type": "array",
|
|
45
|
+
"description": "MCP snapshot used as dataset rows when the host has no live select"
|
|
46
|
+
},
|
|
47
|
+
"arranging": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"properties": {
|
|
50
|
+
"widgets": {
|
|
51
|
+
"type": "array",
|
|
52
|
+
"maxItems": 2,
|
|
53
|
+
"items": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"enum": ["chartWidget", "tableWidget", "textWidget", "imageWidget"]
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"hasKpi": { "type": "boolean", "default": false },
|
|
59
|
+
"direction": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"enum": ["vertical", "horizontal"],
|
|
62
|
+
"default": "vertical",
|
|
63
|
+
"description": "FuseDash semantics — vertical lays panes side by side, horizontal stacks them"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"kpis": {
|
|
68
|
+
"type": "array",
|
|
69
|
+
"description": "KPI items rendered in the KPI band when arranging.hasKpi is true"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"chartTitle": {
|
|
74
|
+
"type": "string",
|
|
75
|
+
"description": "Header title override; falls back to data.name"
|
|
76
|
+
},
|
|
77
|
+
"direction": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"enum": ["vertical", "horizontal"],
|
|
80
|
+
"description": "Overrides data.arranging.direction"
|
|
81
|
+
},
|
|
82
|
+
"scale": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"enum": ["compact", "default", "comfortable"],
|
|
85
|
+
"default": "default"
|
|
86
|
+
},
|
|
87
|
+
"showHeader": { "type": "boolean", "default": true },
|
|
88
|
+
"showGrid": { "type": "boolean", "default": true },
|
|
89
|
+
"showLegend": { "type": "boolean", "default": true },
|
|
90
|
+
"showTooltip": { "type": "boolean", "default": true }
|
|
91
|
+
},
|
|
92
|
+
"required": ["data"]
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
;
|
|
96
|
+
|
|
97
|
+
export default _default;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const id = "custom-widget";
|
|
2
|
+
const tag = "ui9000-custom-widget";
|
|
3
|
+
const title = "Custom Widget";
|
|
4
|
+
const description = "FuseDash CustomWidget shell — title, optional KPI band, and up to two arranged panes. Chart panes mount ui9000-chart-renderer, the KPI band mounts ui9000-kpi-widget, table/text/image panes mount those primitives. No Redux.";
|
|
5
|
+
const chartTypeKeys = ["customWidget"];
|
|
6
|
+
const source = "client/libs/shared/components/src/Widgets/CustomWidget/";
|
|
7
|
+
const stack = "composite";
|
|
8
|
+
const lazyImport = "@ui9000/widgets/lazy/custom-widget";
|
|
9
|
+
const entry = "@ui9000/widgets/custom-widget";
|
|
10
|
+
const tier = "host";
|
|
11
|
+
const usageConditions = { "host": "mcp-chat", "notFor": "fusedash-editor", "mapsExcluded": true, "requiresArranging": "Reads arranging.widgets / arranging.hasKpi / arranging.direction; renders the default state when both are absent.", "panesSupported": ["chartWidget", "tableWidget", "textWidget", "imageWidget"], "maxPanes": 2 };
|
|
12
|
+
const allowedActions = ["resize", "download"];
|
|
13
|
+
const propsSchema = { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "data": { "type": "object", "description": "FuseDash WidgetItem JSON for the custom widget, including arranging, kpis, and pane fields (text, imageUrl, headers, tableData, tablePreviewRows)", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "chartType": { "type": "string", "description": "Chart type of the chartWidget pane; content types (tableChart, textChart, imageChart) render the pane empty state" }, "text": { "type": "string", "description": "Markdown/plain text for a textWidget pane" }, "imageUrl": { "type": "string", "description": "http(s) URL for an imageWidget pane" }, "alt": { "type": "string" }, "headers": { "type": "array", "description": "Table columns. Each contains[].source is dataset | chart | static" }, "tableData": { "type": "array", "description": "Personal/static rows for static-sourced columns" }, "tablePreviewRows": { "type": "array", "description": "MCP snapshot used as dataset rows when the host has no live select" }, "arranging": { "type": "object", "properties": { "widgets": { "type": "array", "maxItems": 2, "items": { "type": "string", "enum": ["chartWidget", "tableWidget", "textWidget", "imageWidget"] } }, "hasKpi": { "type": "boolean", "default": false }, "direction": { "type": "string", "enum": ["vertical", "horizontal"], "default": "vertical", "description": "FuseDash semantics — vertical lays panes side by side, horizontal stacks them" } } }, "kpis": { "type": "array", "description": "KPI items rendered in the KPI band when arranging.hasKpi is true" } } }, "chartTitle": { "type": "string", "description": "Header title override; falls back to data.name" }, "direction": { "type": "string", "enum": ["vertical", "horizontal"], "description": "Overrides data.arranging.direction" }, "scale": { "type": "string", "enum": ["compact", "default", "comfortable"], "default": "default" }, "showHeader": { "type": "boolean", "default": true }, "showGrid": { "type": "boolean", "default": true }, "showLegend": { "type": "boolean", "default": true }, "showTooltip": { "type": "boolean", "default": true } }, "required": ["data"] };
|
|
14
|
+
const metadata = {
|
|
15
|
+
id,
|
|
16
|
+
tag,
|
|
17
|
+
title,
|
|
18
|
+
description,
|
|
19
|
+
chartTypeKeys,
|
|
20
|
+
source,
|
|
21
|
+
stack,
|
|
22
|
+
lazyImport,
|
|
23
|
+
entry,
|
|
24
|
+
tier,
|
|
25
|
+
usageConditions,
|
|
26
|
+
allowedActions,
|
|
27
|
+
propsSchema
|
|
28
|
+
};
|
|
29
|
+
export {
|
|
30
|
+
allowedActions,
|
|
31
|
+
chartTypeKeys,
|
|
32
|
+
metadata as default,
|
|
33
|
+
description,
|
|
34
|
+
entry,
|
|
35
|
+
id,
|
|
36
|
+
lazyImport,
|
|
37
|
+
propsSchema,
|
|
38
|
+
source,
|
|
39
|
+
stack,
|
|
40
|
+
tag,
|
|
41
|
+
tier,
|
|
42
|
+
title,
|
|
43
|
+
usageConditions
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=metadata.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export declare class Ui9000DateInput extends LitElement {
|
|
3
|
+
static styles: import('lit').CSSResult;
|
|
4
|
+
dataJson: string;
|
|
5
|
+
label: string;
|
|
6
|
+
name: string;
|
|
7
|
+
value?: string;
|
|
8
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
9
|
+
}
|
|
10
|
+
export declare function registerDateInput(): void;
|
|
11
|
+
declare global {
|
|
12
|
+
interface HTMLElementTagNameMap {
|
|
13
|
+
'ui9000-date-input': Ui9000DateInput;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=ui9000-date-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui9000-date-input.d.ts","sourceRoot":"","sources":["../../../../src/components/date-input/element/ui9000-date-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAMvC,qBACa,eAAgB,SAAQ,UAAU;IAC7C,OAAgB,MAAM,0BAAiB;IAEQ,QAAQ,SAAQ;IACnC,KAAK,SAAM;IACX,IAAI,SAAM;IACQ,KAAK,CAAC,EAAE,MAAM,CAAC;IAEpD,MAAM;CAuBhB;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAIxC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,eAAe,CAAC;KACtC;CACF"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { LitElement, html } from "lit";
|
|
2
|
+
import { property, customElement } from "lit/decorators.js";
|
|
3
|
+
import { surfaceStyles } from "../../../element/surface-styles.js";
|
|
4
|
+
import { parseLabelledField } from "../../../lib/labelled-control.js";
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
8
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
9
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
10
|
+
if (decorator = decorators[i])
|
|
11
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
12
|
+
if (kind && result) __defProp(target, key, result);
|
|
13
|
+
return result;
|
|
14
|
+
};
|
|
15
|
+
let Ui9000DateInput = class extends LitElement {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this.dataJson = "{}";
|
|
19
|
+
this.label = "";
|
|
20
|
+
this.name = "";
|
|
21
|
+
}
|
|
22
|
+
render() {
|
|
23
|
+
const field = parseLabelledField(this.dataJson, {
|
|
24
|
+
label: this.label,
|
|
25
|
+
name: this.name,
|
|
26
|
+
value: this.value
|
|
27
|
+
});
|
|
28
|
+
if (!field) return html`<p class="blocked" role="alert">Label required</p>`;
|
|
29
|
+
return html`
|
|
30
|
+
<div class="root">
|
|
31
|
+
<label for=${field.name}>${field.label}</label>
|
|
32
|
+
<input
|
|
33
|
+
class="field"
|
|
34
|
+
id=${field.name}
|
|
35
|
+
name=${field.name}
|
|
36
|
+
type="date"
|
|
37
|
+
.value=${field.value}
|
|
38
|
+
@input=${(e) => {
|
|
39
|
+
this.value = e.target.value;
|
|
40
|
+
}}
|
|
41
|
+
/>
|
|
42
|
+
</div>
|
|
43
|
+
`;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
Ui9000DateInput.styles = surfaceStyles;
|
|
47
|
+
__decorateClass([
|
|
48
|
+
property({ type: String, attribute: "data" })
|
|
49
|
+
], Ui9000DateInput.prototype, "dataJson", 2);
|
|
50
|
+
__decorateClass([
|
|
51
|
+
property({ type: String })
|
|
52
|
+
], Ui9000DateInput.prototype, "label", 2);
|
|
53
|
+
__decorateClass([
|
|
54
|
+
property({ type: String })
|
|
55
|
+
], Ui9000DateInput.prototype, "name", 2);
|
|
56
|
+
__decorateClass([
|
|
57
|
+
property({ type: String, attribute: false })
|
|
58
|
+
], Ui9000DateInput.prototype, "value", 2);
|
|
59
|
+
Ui9000DateInput = __decorateClass([
|
|
60
|
+
customElement("ui9000-date-input")
|
|
61
|
+
], Ui9000DateInput);
|
|
62
|
+
function registerDateInput() {
|
|
63
|
+
if (!customElements.get("ui9000-date-input")) {
|
|
64
|
+
customElements.define("ui9000-date-input", Ui9000DateInput);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export {
|
|
68
|
+
Ui9000DateInput,
|
|
69
|
+
registerDateInput
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=ui9000-date-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui9000-date-input.js","sources":["../../../../src/components/date-input/element/ui9000-date-input.ts"],"sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { surfaceStyles } from '../../../element/surface-styles.js';\nimport { parseLabelledField } from '../../../lib/labelled-control.js';\n\n@customElement('ui9000-date-input')\nexport class Ui9000DateInput extends LitElement {\n static override styles = surfaceStyles;\n\n @property({ type: String, attribute: 'data' }) dataJson = '{}';\n @property({ type: String }) label = '';\n @property({ type: String }) name = '';\n @property({ type: String, attribute: false }) value?: string;\n\n override render() {\n const field = parseLabelledField(this.dataJson, {\n label: this.label,\n name: this.name,\n value: this.value,\n });\n if (!field) return html`<p class=\"blocked\" role=\"alert\">Label required</p>`;\n return html`\n <div class=\"root\">\n <label for=${field.name}>${field.label}</label>\n <input\n class=\"field\"\n id=${field.name}\n name=${field.name}\n type=\"date\"\n .value=${field.value}\n @input=${(e: Event) => {\n this.value = (e.target as HTMLInputElement).value;\n }}\n />\n </div>\n `;\n }\n}\n\nexport function registerDateInput(): void {\n if (!customElements.get('ui9000-date-input')) {\n customElements.define('ui9000-date-input', Ui9000DateInput);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ui9000-date-input': Ui9000DateInput;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAOO,IAAM,kBAAN,cAA8B,WAAW;AAAA,EAAzC,cAAA;AAAA,UAAA,GAAA,SAAA;AAG0C,SAAA,WAAW;AAC9B,SAAA,QAAQ;AACR,SAAA,OAAO;AAAA,EAAA;AAAA,EAG1B,SAAS;AAChB,UAAM,QAAQ,mBAAmB,KAAK,UAAU;AAAA,MAC9C,OAAO,KAAK;AAAA,MACZ,MAAM,KAAK;AAAA,MACX,OAAO,KAAK;AAAA,IAAA,CACb;AACD,QAAI,CAAC,MAAO,QAAO;AACnB,WAAO;AAAA;AAAA,qBAEU,MAAM,IAAI,IAAI,MAAM,KAAK;AAAA;AAAA;AAAA,eAG/B,MAAM,IAAI;AAAA,iBACR,MAAM,IAAI;AAAA;AAAA,mBAER,MAAM,KAAK;AAAA,mBACX,CAAC,MAAa;AACrB,WAAK,QAAS,EAAE,OAA4B;AAAA,IAC9C,CAAC;AAAA;AAAA;AAAA;AAAA,EAIT;AACF;AA/Ba,gBACK,SAAS;AAEsB,gBAAA;AAAA,EAA9C,SAAS,EAAE,MAAM,QAAQ,WAAW,QAAQ;AAAA,GAHlC,gBAGoC,WAAA,YAAA,CAAA;AACnB,gBAAA;AAAA,EAA3B,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAJf,gBAIiB,WAAA,SAAA,CAAA;AACA,gBAAA;AAAA,EAA3B,SAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GALf,gBAKiB,WAAA,QAAA,CAAA;AACkB,gBAAA;AAAA,EAA7C,SAAS,EAAE,MAAM,QAAQ,WAAW,OAAO;AAAA,GANjC,gBAMmC,WAAA,SAAA,CAAA;AANnC,kBAAN,gBAAA;AAAA,EADN,cAAc,mBAAmB;AAAA,GACrB,eAAA;AAiCN,SAAS,oBAA0B;AACxC,MAAI,CAAC,eAAe,IAAI,mBAAmB,GAAG;AAC5C,mBAAe,OAAO,qBAAqB,eAAe;AAAA,EAC5D;AACF;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/date-input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { registerDateInput } from "./element/ui9000-date-input.js";
|
|
2
|
+
import { Ui9000DateInput } from "./element/ui9000-date-input.js";
|
|
3
|
+
import { default as default2 } from "./metadata.json.js";
|
|
4
|
+
export {
|
|
5
|
+
Ui9000DateInput,
|
|
6
|
+
default2 as dateInputMetadata,
|
|
7
|
+
registerDateInput
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|