udp-stencil-component-library 25.18.1-beta.6 → 25.18.1-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/add-map-feature-popup_4.cjs.entry.js +12 -12
- package/dist/cjs/advanced-search_50.cjs.entry.js +169 -96
- package/dist/cjs/ag-grid-base_5.cjs.entry.js +5 -5
- package/dist/cjs/api-method-instance-grid.cjs.entry.js +1 -1
- package/dist/cjs/check-box.cjs.entry.js +2 -2
- package/dist/cjs/chip-section.cjs.entry.js +2 -2
- package/dist/cjs/client-side-grid_2.cjs.entry.js +3 -3
- package/dist/cjs/color-preview.cjs.entry.js +1 -1
- package/dist/cjs/date-time-renderer_6.cjs.entry.js +8 -8
- package/dist/cjs/entity-maintenance-grid.cjs.entry.js +1 -1
- package/dist/cjs/feature-details-card_2.cjs.entry.js +5 -5
- package/dist/cjs/image-upload_7.cjs.entry.js +6 -6
- package/dist/cjs/index-DrMNAZCL.js +4 -0
- package/dist/cjs/inputs-example.cjs.entry.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/map-component_2.cjs.entry.js +2 -2
- package/dist/cjs/numeric-field_5.cjs.entry.js +15 -15
- package/dist/cjs/page-renderer.cjs.entry.js +1 -1
- package/dist/cjs/question-configs-renderer_5.cjs.entry.js +14 -14
- package/dist/cjs/resource-timeline-calendar.cjs.entry.js +1 -1
- package/dist/cjs/search-method-grid.cjs.entry.js +1 -1
- package/dist/cjs/server-side-grid.cjs.entry.js +1 -1
- package/dist/cjs/simple-card.cjs.entry.js +1 -1
- package/dist/cjs/stencil-library.cjs.js +1 -1
- package/dist/cjs/udp-chip_3.cjs.entry.js +1 -1
- package/dist/cjs/udp-container-query-grid-item.cjs.entry.js +1 -1
- package/dist/cjs/udp-container-query-grid.cjs.entry.js +1 -1
- package/dist/cjs/udp-container-query.cjs.entry.js +2 -2
- package/dist/cjs/udp-container.cjs.entry.js +2 -2
- package/dist/cjs/udp-date-range-selector.cjs.entry.js +1 -1
- package/dist/cjs/udp-dynamic-form.cjs.entry.js +1 -1
- package/dist/cjs/udp-forms-follow-up-list-card.cjs.entry.js +2 -2
- package/dist/cjs/udp-forms-list-card.cjs.entry.js +5 -5
- package/dist/cjs/udp-forms-list.cjs.entry.js +1 -1
- package/dist/cjs/udp-forms-renderer.cjs.entry.js +1 -1
- package/dist/cjs/udp-list-renderer.udp-pagination.udp-side-sheet.entry.cjs.js.map +1 -1
- package/dist/cjs/udp-list-renderer_3.cjs.entry.js +194 -5
- package/dist/cjs/udp-map.cjs.entry.js +3 -3
- package/dist/cjs/udp-page.cjs.entry.js +1 -1
- package/dist/cjs/udp-split-screen.cjs.entry.js +1 -1
- package/dist/cjs/udp-stepper-demo.cjs.entry.js +1 -1
- package/dist/cjs/udp-tab-panel.cjs.entry.js +22 -0
- package/dist/cjs/udp-tab-panel.entry.cjs.js.map +1 -0
- package/dist/cjs/udp-vertical-spacer.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/my-component/UI/data-display/icons/udp-icon.js +4 -1
- package/dist/collection/components/my-component/UI/data-display/icons/udp-icon.js.map +1 -1
- package/dist/collection/components/my-component/UI/data-display/kpi/kpi-list.js +1 -1
- package/dist/collection/components/my-component/UI/data-display/list-item/list-item.js +2 -2
- package/dist/collection/components/my-component/UI/data-display/pop-over/udp-pop-over.js +1 -1
- package/dist/collection/components/my-component/UI/data-display/pop-over-grid-action-header/udp-pop-over-grid-action-header.js +1 -1
- package/dist/collection/components/my-component/UI/data-display/primary-action-header/primary-action-header.js +2 -2
- package/dist/collection/components/my-component/UI/data-display/simple-card/simple-card.js +1 -1
- package/dist/collection/components/my-component/UI/data-display/tool-tip/udp-ambient-tool-tip.js +2 -2
- package/dist/collection/components/my-component/UI/data-display/tree/tree-list-item/search-item/search-list-item.js +1 -1
- package/dist/collection/components/my-component/UI/data-display/udp-avatar/udp-avatar.js +1 -1
- package/dist/collection/components/my-component/UI/dialogs/fluent-dialog/fluent-dialog.js +2 -2
- package/dist/collection/components/my-component/UI/dialogs/udp-dialog.js +1 -1
- package/dist/collection/components/my-component/UI/drawers/udp-side-sheet/types.js +2 -0
- package/dist/collection/components/my-component/UI/drawers/udp-side-sheet/types.js.map +1 -0
- package/dist/collection/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.css +163 -137
- package/dist/collection/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.js +269 -19
- package/dist/collection/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.js.map +1 -1
- package/dist/collection/components/my-component/UI/feedback/udp-notification/alerts/upd-alert-banner.js +1 -1
- package/dist/collection/components/my-component/UI/feedback/udp-notification/udp-notification.js +2 -2
- package/dist/collection/components/my-component/UI/forms/dynamic-form/udp-dynamic-form.js +1 -1
- package/dist/collection/components/my-component/UI/forms/edit-view-form/edit-view-form.js +2 -2
- package/dist/collection/components/my-component/UI/forms/form/stencil-form.js +1 -1
- package/dist/collection/components/my-component/UI/forms/save-view-form/save-view-form.js +2 -2
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/forms-question-item/udp-forms-builder-question-item.js +2 -2
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.js +2 -2
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/list-option-renderer/list-options-renderer.js +3 -3
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-configs-renderer/question-configs-renderer.js +6 -6
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/section-configs-renderer/section-configs-renderer.js +3 -3
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/signature-renderer/signature-renderer.js +1 -1
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/text-input-renderer/text-input-renderer.js +2 -2
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-menu/udp-forms-builder-menu.js +2 -2
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-style-override/udp-forms-builder-style-override.js +1 -1
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-list/udp-forms-list-card/udp-forms-list-card.js +5 -5
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-list/udp-forms-list.js +1 -1
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-follow-up-list-card/udp-forms-follow-up-list-card.js +2 -2
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js +1 -1
- package/dist/collection/components/my-component/UI/grid/ag-table/ag-table.js +1 -1
- package/dist/collection/components/my-component/UI/grid/ambient-template-grid/ambient-template-grid.js +15 -15
- package/dist/collection/components/my-component/UI/grid/grid-primary-bar/grid-primary-bar.js +2 -2
- package/dist/collection/components/my-component/UI/grid/hotlists/udp-hotlist-form/udp-hotlist-form.js +1 -1
- package/dist/collection/components/my-component/UI/grid/new-grid/ag-grid-base.js +1 -1
- package/dist/collection/components/my-component/UI/grid/new-grid/api-method-instance-grid.js +1 -1
- package/dist/collection/components/my-component/UI/grid/new-grid/client-side-grid.js +1 -1
- package/dist/collection/components/my-component/UI/grid/new-grid/entity-maintenance-grid.js +1 -1
- package/dist/collection/components/my-component/UI/grid/new-grid/search-method-grid.js +1 -1
- package/dist/collection/components/my-component/UI/grid/new-grid/server-side-grid.js +1 -1
- package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-calendar.js +1 -1
- package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-primary-bar.js +2 -2
- package/dist/collection/components/my-component/UI/inputs/checkbox/check-box.js +2 -2
- package/dist/collection/components/my-component/UI/inputs/date-range-selector/udp-date-range-selector.js +1 -1
- package/dist/collection/components/my-component/UI/inputs/date-selector/udp-date-selector.js +3 -3
- package/dist/collection/components/my-component/UI/inputs/date-time-selector/udp-datetime-selector.js +3 -3
- package/dist/collection/components/my-component/UI/inputs/image-upload/image-upload.js +1 -1
- package/dist/collection/components/my-component/UI/inputs/numeric-field/numeric-field.js +3 -3
- package/dist/collection/components/my-component/UI/inputs/signature-input/signature-input.js +2 -2
- package/dist/collection/components/my-component/UI/inputs/tally/tally.js +2 -2
- package/dist/collection/components/my-component/UI/inputs/text-area/text-area.js +3 -3
- package/dist/collection/components/my-component/UI/inputs/text-field/text-field.js +3 -3
- package/dist/collection/components/my-component/UI/inputs/time-selector/udp-time-selector.js +3 -3
- package/dist/collection/components/my-component/UI/inputs/toggle/stencil-toggle.js +4 -4
- package/dist/collection/components/my-component/UI/inputs/udp-selector/udp-selector.js +4 -4
- package/dist/collection/components/my-component/UI/layout/udp-container/udp-container.js +2 -2
- package/dist/collection/components/my-component/UI/layout/udp-container-query/udp-container-query.js +2 -2
- package/dist/collection/components/my-component/UI/layout/udp-container-query-grid/udp-container-query-grid.js +1 -1
- package/dist/collection/components/my-component/UI/layout/udp-container-query-grid-item/udp-container-query-grid-item.js +1 -1
- package/dist/collection/components/my-component/UI/layout/udp-page/udp-page.js +1 -1
- package/dist/collection/components/my-component/UI/layout/udp-split-screen/udp-split-screen.js +1 -1
- package/dist/collection/components/my-component/UI/layout/udp-vertical-spacer.js +1 -1
- package/dist/collection/components/my-component/UI/loaders/udp-grid-loader/udp-grid-loader.js +2 -2
- package/dist/collection/components/my-component/UI/loaders/udp-linear-loader/udp-linear-loader.js +1 -1
- package/dist/collection/components/my-component/UI/loaders/udp-skeleton-loading.js +1 -1
- package/dist/collection/components/my-component/UI/map/udp-map/map-component.js +1 -1
- package/dist/collection/components/my-component/UI/map/udp-map/popups/add-map-feature-popup.js +3 -3
- package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-card/feature-details-card.js +4 -4
- package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-popup.js +1 -1
- package/dist/collection/components/my-component/UI/map/udp-map/popups/select-layer-popup.js +2 -2
- package/dist/collection/components/my-component/UI/map/udp-map/popups/split-line-popup.js +1 -1
- package/dist/collection/components/my-component/UI/map/udp-map/toolbar/map-toolbar.js +6 -6
- package/dist/collection/components/my-component/UI/map/udp-map/udp-map-toolbar.js +1 -1
- package/dist/collection/components/my-component/UI/map/udp-map/udp-map.js +3 -3
- package/dist/collection/components/my-component/UI/menu/menu-item/udp-menu-item.js +1 -1
- package/dist/collection/components/my-component/UI/menu/udp-menu.js +1 -1
- package/dist/collection/components/my-component/UI/stepper/udp-stepper-demo.js +1 -1
- package/dist/collection/components/my-component/UI/tabs/tab/tabs/udp-tabs.css +0 -5
- package/dist/collection/components/my-component/UI/tabs/tab/tabs/udp-tabs.js +170 -37
- package/dist/collection/components/my-component/UI/tabs/tab/tabs/udp-tabs.js.map +1 -1
- package/dist/collection/components/my-component/UI/tabs/tab/udp-tab.css +2 -4
- package/dist/collection/components/my-component/UI/tabs/tab/udp-tab.js +3 -3
- package/dist/collection/components/my-component/UI/tabs/tab/udp-tab.js.map +1 -1
- package/dist/collection/components/my-component/UI/tabs/udp-tab-panel/udp-tab-panel.css +11 -0
- package/dist/collection/components/my-component/UI/tabs/udp-tab-panel/udp-tab-panel.js +65 -0
- package/dist/collection/components/my-component/UI/tabs/udp-tab-panel/udp-tab-panel.js.map +1 -0
- package/dist/collection/components/my-component/UI/toolbars/app-bar/app-bar.js +1 -1
- package/dist/collection/components/my-component/UI/util/ghost-render/ghost-render.js +1 -1
- package/dist/collection/components/my-component/demo/ambient-demo-container.js +1 -1
- package/dist/collection/components/test-component/inputs-example/inputs-example.js +2 -2
- package/dist/collection/page-renderer/page-renderer.js +1 -1
- package/dist/collection/theme/color-preview/color-preview.js +1 -1
- package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/chip-section/chip-section.js +2 -2
- package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/udp-dynamic-container-with-menu.js +1 -1
- package/dist/components/add-map-feature-popup2.js +3 -3
- package/dist/components/ag-grid-base2.js +1 -1
- package/dist/components/ag-table2.js +1 -1
- package/dist/components/ambient-demo-container2.js +1 -1
- package/dist/components/ambient-template-grid2.js +15 -15
- package/dist/components/api-method-instance-grid.js +1 -1
- package/dist/components/app-bar2.js +1 -1
- package/dist/components/check-box2.js +2 -2
- package/dist/components/chip-section.js +2 -2
- package/dist/components/client-side-grid2.js +1 -1
- package/dist/components/color-preview.js +1 -1
- package/dist/components/edit-view-form.js +2 -2
- package/dist/components/entity-maintenance-grid.js +1 -1
- package/dist/components/feature-details-card2.js +4 -4
- package/dist/components/feature-details-popup2.js +1 -1
- package/dist/components/file-upload-renderer2.js +2 -2
- package/dist/components/fluent-dialog2.js +2 -2
- package/dist/components/ghost-render2.js +1 -1
- package/dist/components/grid-primary-bar2.js +2 -2
- package/dist/components/image-upload2.js +1 -1
- package/dist/components/inputs-example.js +2 -2
- package/dist/components/kpi-list2.js +1 -1
- package/dist/components/list-item.js +2 -2
- package/dist/components/list-options-renderer2.js +3 -3
- package/dist/components/map-component2.js +1 -1
- package/dist/components/map-toolbar2.js +6 -6
- package/dist/components/numeric-field2.js +3 -3
- package/dist/components/page-renderer.js +1 -1
- package/dist/components/primary-action-header2.js +2 -2
- package/dist/components/question-configs-renderer2.js +6 -6
- package/dist/components/resource-timeline-calendar.js +1 -1
- package/dist/components/resource-timeline-primary-bar2.js +2 -2
- package/dist/components/save-view-form.js +2 -2
- package/dist/components/search-list-item2.js +1 -1
- package/dist/components/search-method-grid2.js +1 -1
- package/dist/components/section-configs-renderer2.js +3 -3
- package/dist/components/select-layer-popup2.js +2 -2
- package/dist/components/server-side-grid2.js +1 -1
- package/dist/components/signature-input2.js +2 -2
- package/dist/components/signature-renderer2.js +1 -1
- package/dist/components/simple-card.js +1 -1
- package/dist/components/split-line-popup2.js +1 -1
- package/dist/components/stencil-form2.js +1 -1
- package/dist/components/stencil-toggle2.js +4 -4
- package/dist/components/tally.js +2 -2
- package/dist/components/text-area2.js +3 -3
- package/dist/components/text-field2.js +3 -3
- package/dist/components/text-input-renderer2.js +2 -2
- package/dist/components/udp-ambient-tool-tip2.js +2 -2
- package/dist/components/udp-avatar2.js +1 -1
- package/dist/components/udp-container-query-grid-item.js +1 -1
- package/dist/components/udp-container-query-grid.js +1 -1
- package/dist/components/udp-container-query2.js +2 -2
- package/dist/components/udp-container2.js +2 -2
- package/dist/components/udp-date-range-selector.js +1 -1
- package/dist/components/udp-date-selector2.js +3 -3
- package/dist/components/udp-datetime-selector2.js +3 -3
- package/dist/components/udp-dialog2.js +1 -1
- package/dist/components/udp-dynamic-container-with-menu2.js +1 -1
- package/dist/components/udp-dynamic-form.js +1 -1
- package/dist/components/udp-forms-builder-menu2.js +2 -2
- package/dist/components/udp-forms-builder-question-item2.js +2 -2
- package/dist/components/udp-forms-builder-style-override2.js +1 -1
- package/dist/components/udp-forms-builder.js +72 -60
- package/dist/components/udp-forms-builder.js.map +1 -1
- package/dist/components/udp-forms-follow-up-list-card.js +2 -2
- package/dist/components/udp-forms-list-card2.js +5 -5
- package/dist/components/udp-forms-list.js +51 -39
- package/dist/components/udp-forms-list.js.map +1 -1
- package/dist/components/udp-forms-renderer.js +67 -55
- package/dist/components/udp-forms-renderer.js.map +1 -1
- package/dist/components/udp-grid-loader2.js +2 -2
- package/dist/components/udp-hotlist-form2.js +1 -1
- package/dist/components/udp-icon2.js +4 -1
- package/dist/components/udp-icon2.js.map +1 -1
- package/dist/components/udp-linear-loader2.js +1 -1
- package/dist/components/udp-map-toolbar2.js +1 -1
- package/dist/components/udp-map.js +3 -3
- package/dist/components/udp-menu-item2.js +1 -1
- package/dist/components/udp-menu2.js +1 -1
- package/dist/components/udp-notification2.js +2 -2
- package/dist/components/udp-page.js +1 -1
- package/dist/components/udp-pop-over-grid-action-header2.js +1 -1
- package/dist/components/udp-pop-over2.js +1 -1
- package/dist/components/udp-selector2.js +4 -4
- package/dist/components/udp-side-sheet2.js +228 -19
- package/dist/components/udp-side-sheet2.js.map +1 -1
- package/dist/components/udp-skeleton-loading2.js +1 -1
- package/dist/components/udp-split-screen.js +1 -1
- package/dist/components/udp-stepper-demo.js +1 -1
- package/dist/components/udp-tab-panel.d.ts +11 -0
- package/dist/components/udp-tab-panel.js +45 -0
- package/dist/components/udp-tab-panel.js.map +1 -0
- package/dist/components/udp-tab2.js +3 -3
- package/dist/components/udp-tab2.js.map +1 -1
- package/dist/components/udp-tabs2.js +114 -40
- package/dist/components/udp-tabs2.js.map +1 -1
- package/dist/components/udp-time-selector2.js +3 -3
- package/dist/components/udp-vertical-spacer.js +1 -1
- package/dist/components/upd-alert-banner2.js +1 -1
- package/dist/docs.json +263 -31
- package/dist/esm/add-map-feature-popup_4.entry.js +12 -12
- package/dist/esm/advanced-search_50.entry.js +169 -96
- package/dist/esm/ag-grid-base_5.entry.js +5 -5
- package/dist/esm/api-method-instance-grid.entry.js +1 -1
- package/dist/esm/check-box.entry.js +2 -2
- package/dist/esm/chip-section.entry.js +2 -2
- package/dist/esm/client-side-grid_2.entry.js +3 -3
- package/dist/esm/color-preview.entry.js +1 -1
- package/dist/esm/date-time-renderer_6.entry.js +8 -8
- package/dist/esm/entity-maintenance-grid.entry.js +1 -1
- package/dist/esm/feature-details-card_2.entry.js +5 -5
- package/dist/esm/image-upload_7.entry.js +6 -6
- package/dist/esm/index-n-1ZSeAs.js +4 -0
- package/dist/esm/inputs-example.entry.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/map-component_2.entry.js +2 -2
- package/dist/esm/numeric-field_5.entry.js +15 -15
- package/dist/esm/page-renderer.entry.js +1 -1
- package/dist/esm/question-configs-renderer_5.entry.js +14 -14
- package/dist/esm/resource-timeline-calendar.entry.js +1 -1
- package/dist/esm/search-method-grid.entry.js +1 -1
- package/dist/esm/server-side-grid.entry.js +1 -1
- package/dist/esm/simple-card.entry.js +1 -1
- package/dist/esm/stencil-library.js +1 -1
- package/dist/esm/udp-chip_3.entry.js +1 -1
- package/dist/esm/udp-container-query-grid-item.entry.js +1 -1
- package/dist/esm/udp-container-query-grid.entry.js +1 -1
- package/dist/esm/udp-container-query.entry.js +2 -2
- package/dist/esm/udp-container.entry.js +2 -2
- package/dist/esm/udp-date-range-selector.entry.js +1 -1
- package/dist/esm/udp-dynamic-form.entry.js +1 -1
- package/dist/esm/udp-forms-follow-up-list-card.entry.js +2 -2
- package/dist/esm/udp-forms-list-card.entry.js +5 -5
- package/dist/esm/udp-forms-list.entry.js +1 -1
- package/dist/esm/udp-forms-renderer.entry.js +1 -1
- package/dist/esm/udp-list-renderer.udp-pagination.udp-side-sheet.entry.js.map +1 -1
- package/dist/esm/udp-list-renderer_3.entry.js +194 -5
- package/dist/esm/udp-map.entry.js +3 -3
- package/dist/esm/udp-page.entry.js +1 -1
- package/dist/esm/udp-split-screen.entry.js +1 -1
- package/dist/esm/udp-stepper-demo.entry.js +1 -1
- package/dist/esm/udp-tab-panel.entry.js +20 -0
- package/dist/esm/udp-tab-panel.entry.js.map +1 -0
- package/dist/esm/udp-vertical-spacer.entry.js +1 -1
- package/dist/stencil-library/add-map-feature-popup_4.entry.js +1 -1
- package/dist/stencil-library/advanced-search_50.entry.js +1 -1
- package/dist/stencil-library/advanced-search_50.entry.js.map +1 -1
- package/dist/stencil-library/ag-grid-base_5.entry.js +1 -1
- package/dist/stencil-library/api-method-instance-grid.entry.js +1 -1
- package/dist/stencil-library/check-box.entry.js +1 -1
- package/dist/stencil-library/chip-section.entry.js +1 -1
- package/dist/stencil-library/client-side-grid_2.entry.js +1 -1
- package/dist/stencil-library/color-preview.entry.js +1 -1
- package/dist/stencil-library/date-time-renderer_6.entry.js +1 -1
- package/dist/stencil-library/entity-maintenance-grid.entry.js +1 -1
- package/dist/stencil-library/feature-details-card_2.entry.js +1 -1
- package/dist/stencil-library/image-upload_7.entry.js +1 -1
- package/dist/stencil-library/inputs-example.entry.js +1 -1
- package/dist/stencil-library/map-component_2.entry.js +1 -1
- package/dist/stencil-library/numeric-field_5.entry.js +1 -1
- package/dist/stencil-library/page-renderer.entry.js +1 -1
- package/dist/stencil-library/question-configs-renderer_5.entry.js +1 -1
- package/dist/stencil-library/resource-timeline-calendar.entry.js +1 -1
- package/dist/stencil-library/search-method-grid.entry.js +1 -1
- package/dist/stencil-library/server-side-grid.entry.js +1 -1
- package/dist/stencil-library/simple-card.entry.js +1 -1
- package/dist/stencil-library/simple-card.entry.js.map +1 -1
- package/dist/stencil-library/stencil-library.esm.js +1 -1
- package/dist/stencil-library/udp-chip_3.entry.js +1 -1
- package/dist/stencil-library/udp-container-query-grid-item.entry.js +1 -1
- package/dist/stencil-library/udp-container-query-grid.entry.js +1 -1
- package/dist/stencil-library/udp-container-query.entry.js +1 -1
- package/dist/stencil-library/udp-container.entry.js +1 -1
- package/dist/stencil-library/udp-date-range-selector.entry.js +1 -1
- package/dist/stencil-library/udp-dynamic-form.entry.js +1 -1
- package/dist/stencil-library/udp-forms-follow-up-list-card.entry.js +1 -1
- package/dist/stencil-library/udp-forms-list-card.entry.js +1 -1
- package/dist/stencil-library/udp-forms-list.entry.js +1 -1
- package/dist/stencil-library/udp-forms-renderer.entry.js +1 -1
- package/dist/stencil-library/udp-list-renderer.udp-pagination.udp-side-sheet.entry.esm.js.map +1 -1
- package/dist/stencil-library/udp-list-renderer_3.entry.js +1 -1
- package/dist/stencil-library/udp-list-renderer_3.entry.js.map +1 -1
- package/dist/stencil-library/udp-map.entry.js +1 -1
- package/dist/stencil-library/udp-page.entry.js +1 -1
- package/dist/stencil-library/udp-split-screen.entry.js +1 -1
- package/dist/stencil-library/udp-stepper-demo.entry.js +1 -1
- package/dist/stencil-library/udp-tab-panel.entry.esm.js.map +1 -0
- package/dist/stencil-library/udp-tab-panel.entry.js +2 -0
- package/dist/stencil-library/udp-tab-panel.entry.js.map +1 -0
- package/dist/stencil-library/udp-vertical-spacer.entry.js +1 -1
- package/dist/types/components/my-component/UI/drawers/udp-side-sheet/types.d.ts +7 -0
- package/dist/types/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.d.ts +114 -0
- package/dist/types/components/my-component/UI/tabs/tab/tabs/udp-tabs.d.ts +47 -4
- package/dist/types/components/my-component/UI/tabs/tab/udp-tab.d.ts +1 -1
- package/dist/types/components/my-component/UI/tabs/udp-tab-panel/udp-tab-panel.d.ts +11 -0
- package/dist/types/components.d.ts +151 -2
- package/package.json +1 -1
|
@@ -27,19 +27,19 @@ const UdpFormsListCard = class {
|
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
render() {
|
|
30
|
-
const contentJsx = (index.h(index.Fragment, { key: '
|
|
31
|
-
const actionsJsx = (index.h(index.Fragment, { key: '
|
|
30
|
+
const contentJsx = (index.h(index.Fragment, { key: '65c992b567d2b0e80b93819c760400ea0ee2b813' }, index.h("unity-typography", { key: '327ad8c6680dedd7fa1c12b50d62b2bd5763428b', variant: "body1", color: "textSecondary" }, "Version: ", this.data.version), !this.isSideSheetList && (index.h("unity-typography", { key: '78cfdb94dfc0dff690c18e23e0d07263c25c94c3', variant: "body1", color: "textSecondary" }, "Last Modified: ", new Date(this.data.lastModifiedOn).toLocaleDateString())), index.h("unity-typography", { key: '0b381c323f4910e5727ad848178065b37fc24e83', variant: "body1", color: "textSecondary" }, "Created On: ", this.isSideSheetList ? new Date(this.data.createdOn).toLocaleDateString() : new Date(this.data.initialCreatedOn).toLocaleDateString()), index.h("unity-typography", { key: '62137e05a5c76a334369f839ce589b8bc71a1f9b', variant: "body1", color: "textSecondary" }, "Form Type: ", enums.UdpFormsTypeEnum[this.data.type])));
|
|
31
|
+
const actionsJsx = (index.h(index.Fragment, { key: '11b0965f017d6bcfc290bf81892e8bd3dd18730d' }, index.h("stencil-icon-button", { key: 'b976c977cbdbce0a843b54845147837dbd553f20', icon: Edit16__default.default, tooltip: "Open in Form Builder", onClick: e => {
|
|
32
32
|
e.stopPropagation();
|
|
33
33
|
this.formBuilderHandler();
|
|
34
|
-
} }), !this.isSideSheetList && (index.h("stencil-icon-button", { key: '
|
|
34
|
+
} }), !this.isSideSheetList && (index.h("stencil-icon-button", { key: 'da6b8f48a2004f82765561b34cfd6f2c5b99dc9e', icon: View16__default.default, tooltip: "View in Form Renderer", onClick: e => {
|
|
35
35
|
e.stopPropagation();
|
|
36
36
|
this.formRendererHandler();
|
|
37
|
-
} })), !this.isSideSheetList && (index.h("stencil-icon-button", { key: '
|
|
37
|
+
} })), !this.isSideSheetList && (index.h("stencil-icon-button", { key: '081db624c49cd5cbc5888c349a601c177f96b8ef', icon: ChevronRight24__default.default, tooltip: "See Version History", onClick: e => {
|
|
38
38
|
var _a;
|
|
39
39
|
e.stopPropagation();
|
|
40
40
|
(_a = this.openSideSheet) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
41
41
|
} }))));
|
|
42
|
-
return (index.h("udp-card", { key: '
|
|
42
|
+
return (index.h("udp-card", { key: '6e0572787731e49edb74b9b8d3e9f04e0f09ce57', cardTitle: this.data.name, subheader: this.data.description, actions: actionsJsx, onTitleClick: this.handleTitleClick, disableContentPadding: true, adornmentStatus: 'info' }, contentJsx));
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
45
|
|
|
@@ -179,7 +179,7 @@ const UdpFormsList = class {
|
|
|
179
179
|
return this.errorMessage ? (index.h("div", { class: "error-banner" }, index.h("unity-typography", { variant: "body2" }, this.errorMessage))) : null;
|
|
180
180
|
}
|
|
181
181
|
render() {
|
|
182
|
-
return (index.h("div", { key: '
|
|
182
|
+
return (index.h("div", { key: 'e10e187f8b796620e07cbe5de09304b3ff806f9d', class: "udp-forms-list-container" }, index.h("primary-action-header", { key: 'c07a9deced2ebc01319ac7aa75ff81458e810b7d', title: "UDP Forms", primaryActionClick: () => this.handleHeaderPrimaryActionClick(), actionButtonLabel: "Create New Form", tabs: false }), this.isLoading && index.h("udp-linear-loader", { key: 'bd0b7aa584dd74d1aa610d276166a7ade78ec39b' }), this.renderSideSheet(), index.h("udp-container", { key: '9db380a8bc34671684f133f35d2af4634bfe13c4', maxWidth: "lg" }, this.renderErrorMessage(), this.renderFilters(), index.h("udp-list-renderer", { key: '80570f32e8d09872019514651de334327c7797af', itemComponent: "udp-forms-list-card", data: this.mainFormsList, pagination: true, isServerSide: true, isLoading: this.isLoading, itemsPerPage: this.MAIN_PAGE_SIZE, currentPage: this.mainListPageNumber, totalItems: this.mainTotalItems, onPageChange: e => this.handleMainPageChange(e.detail), componentDataMap: this.componentMap, spacing: 'md' })), index.h("udp-forms-list-card", { key: '83c6afb79ecbd9154229bb4ee571290af0ce43cc', style: { display: 'none' } }), index.h("div", { key: '5f8ee58dc8cdd79db5cf8f4c8e487ddb3b005e9d', style: { height: '60px' } })));
|
|
183
183
|
}
|
|
184
184
|
get el() { return index.getElement(this); }
|
|
185
185
|
static get watchers() { return {
|
|
@@ -950,7 +950,7 @@ const UdpFormsRenderer = class {
|
|
|
950
950
|
return (index.h("udp-side-sheet", { title: "Link a Follow Up Form", open: this.isFollowUpFormsSideSheetOpen, onUdpSideSheetClose: () => this.handleSideSheetClose(), position: "right", width: "md" }, this.isLoading && this.isFollowUpFormsSideSheetOpen && index.h("udp-linear-loader", null), index.h("udp-list-renderer", { itemComponent: "udp-forms-follow-up-list-card", data: this.sideSheetFollowUpFormsList, pagination: true, isServerSide: true, isLoading: this.isLoading, itemsPerPage: this.FOLLOW_UP_SIDE_SHEET_PAGE_SIZE, currentPage: this.followUpSideSheetListPageNumber, totalItems: this.followUpSideSheetTotalItems, onPageChange: e => this.handleSideSheetPageChange(e.detail), componentDataMap: this.componentMap, spacing: 'md' })));
|
|
951
951
|
}
|
|
952
952
|
render() {
|
|
953
|
-
return (index.h("div", { key: '
|
|
953
|
+
return (index.h("div", { key: 'd14ce715fb3aff8f995332816c18c501e88b1ade', class: "forms-renderer-container" }, this.renderFollowUpSideSheet(), index.h("udp-forms-ui", { udpForm: this.udpForm, initialValues: this.initialValues, udpFormSubmission: this.udpFormSubmission, submitSuccessful: this.submitSuccessful, isSaving: this.isSaving, saveErrorMessage: this.saveErrorMessage,
|
|
954
954
|
// showAutoSaveStatus={this.formSubmissionHandler.supportsAutoSave() && !!this.userId}
|
|
955
955
|
readonly: this.isSubmitted, handleSubmit: this.handleSubmit.bind(this), handleSave: values => Promise.resolve(this.debouncedManualSave(values)), handleChange: this.handleFormChange, handleAction: this.triggerAction, handleFinish: this.handleFinish, userId: this.userId, isSubmitted: this.isSubmitted, dynamicSections: this.dynamicSections, duplicateRepeatableSection: this.duplicateRepeatableSection, deleteRepeatableSection: this.deleteRepeatableSection, ref: el => (this.formsUiEl = el), key: `form-rerender-key-${this.reRenderKey}`, isShowManualSaveIcon: this.isShowManualSaveIcon(), isLoading: this.isLoading, performBackgroundSaveAndUpdateLocalSubmissionState: this.performBackgroundSaveAndUpdateLocalSubmissionState })));
|
|
956
956
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"udp-list-renderer.udp-pagination.udp-side-sheet.entry.cjs.js","sources":["src/components/my-component/UI/data-display/list-renderer/udp-list-renderer.css?tag=udp-list-renderer&encapsulation=shadow","src/components/my-component/UI/data-display/list-renderer/udp-list-renderer.tsx","src/components/my-component/UI/navigation/pagination/udp-pagination.css?tag=udp-pagination&encapsulation=shadow","src/components/my-component/UI/navigation/pagination/udp-pagination.tsx","src/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.css?tag=udp-side-sheet&encapsulation=shadow","src/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.udp-list-renderer-container {\n display: flex;\n flex-direction: column;\n}\n\n.item-list-container {\n display: flex;\n flex-direction: column;\n}\n\n/* Spacing variants */\n.item-list-container.spacing-xs {\n gap: var(--spacing-02);\n}\n\n.item-list-container.spacing-sm {\n gap: var(--spacing-03);\n}\n\n.item-list-container.spacing-md {\n gap: var(--spacing-04);\n}\n\n.item-list-container.spacing-lg {\n gap: var(--spacing-06);\n}\n\n.item-list-container.spacing-condensed {\n gap: var(--spacing-01);\n}\n\n.loading-container {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: var(--spacing-07); /* 2rem */\n min-height: 100px; /* Adjust as needed, or use a spacing variable if appropriate */\n} ","import { Component, Prop, h, State, Watch, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'udp-list-renderer',\n styleUrl: 'udp-list-renderer.css',\n shadow: true,\n})\nexport class UdpItemList {\n /**\n * The tag name of the component to render for each item in the list.\n * For example, 'my-item-component'.\n */\n @Prop() itemComponent: string;\n\n /**\n * Array of objects to be rendered in the list.\n */\n @Prop() data: any[] = [];\n\n /**\n * Object mapping source data fields to prop names for the item component.\n * Example: {元のフィールド: '新しいフィールド'}\n * This will pass props to ItemComponent as: <ItemComponent newField={sourceData.originalField} />\n */\n @Prop() componentDataMap: { [key: string]: string };\n\n /**\n * Whether to enable pagination.\n */\n @Prop() pagination: boolean = false;\n\n /**\n * Number of items to display per page.\n */\n @Prop() itemsPerPage: number = 10;\n\n /**\n * Whether pagination is handled server-side.\n */\n @Prop() isServerSide: boolean = false;\n\n /**\n * Total number of items (required for server-side pagination).\n */\n @Prop() totalItems: number = 0;\n\n /**\n * Callback function for page changes. Required when isServerSide is true.\n * Emits the new page number.\n */\n @Event() pageChange: EventEmitter<number>;\n\n /**\n * Current page number (used for server-side pagination or can be controlled externally).\n * Defaults to 1.\n */\n @Prop({ mutable: true, reflect: true }) currentPage: number = 1;\n\n /**\n * Whether the list is in a loading state.\n */\n @Prop() isLoading: boolean = false;\n\n /**\n * Defines the spacing between items.\n * Options: 'xs', 'sm', 'md', 'lg', 'condensed'\n * Default: 'sm'\n */\n @Prop({ reflect: true }) spacing: 'xs' | 'sm' | 'md' | 'lg' | 'condensed' = 'md';\n\n @State() internalCurrentPage: number = 1;\n\n @Watch('currentPage')\n currentPageChanged(newValue: number) {\n if (newValue !== this.internalCurrentPage) {\n this.internalCurrentPage = newValue;\n }\n }\n\n componentWillLoad() {\n this.internalCurrentPage = this.currentPage;\n }\n\n private getPaginatedData() {\n if (!this.pagination || this.isServerSide) {\n return this.data;\n }\n const startIndex = (this.internalCurrentPage - 1) * this.itemsPerPage;\n const endIndex = startIndex + this.itemsPerPage;\n return this.data.slice(startIndex, endIndex);\n }\n\n private getTotalPages(): number {\n if (!this.pagination) return 1;\n if (this.isServerSide) {\n if (this.totalItems === 0 || this.itemsPerPage === 0) return 1;\n return Math.ceil(this.totalItems / this.itemsPerPage);\n }\n if (this.data.length === 0 || this.itemsPerPage === 0) return 1;\n return Math.ceil(this.data.length / this.itemsPerPage);\n }\n\n private handlePageChange(newPage: number) {\n if (this.isLoading) return;\n if (newPage >= 1 && newPage <= this.getTotalPages()) {\n if (this.isServerSide) {\n this.pageChange.emit(newPage);\n } else {\n this.internalCurrentPage = newPage;\n this.currentPage = newPage;\n this.pageChange.emit(newPage);\n }\n }\n }\n\n private renderItems() {\n if (!this.itemComponent) {\n console.warn('[udp-item-list] itemComponent prop is required.');\n return <p>Error: itemComponent prop is not defined.</p>;\n }\n if (!this.componentDataMap) {\n console.warn('[udp-item-list] componentDataMap prop is required.');\n return <p>Error: componentDataMap prop is not defined.</p>;\n }\n\n const itemsToRender = this.getPaginatedData();\n\n if (!itemsToRender || itemsToRender.length === 0) {\n return <p>No items to display.</p>;\n }\n\n return itemsToRender.map(item => {\n const props = {};\n for (const sourceKey in this.componentDataMap) {\n if (item.hasOwnProperty(sourceKey)) {\n const targetKey = this.componentDataMap[sourceKey];\n props[targetKey] = item[sourceKey];\n }\n }\n const ItemCmp = this.itemComponent;\n return <ItemCmp {...props} />;\n });\n }\n\n render() {\n if (this.isLoading && (!this.data || this.data.length === 0)) {\n return (\n <div class=\"loading-container\">\n <p>Loading...</p>\n </div>\n );\n }\n\n const containerClasses = {\n 'item-list-container': true,\n [`spacing-${this.spacing}`]: true,\n };\n\n return (\n <host>\n <div class={containerClasses}>{this.renderItems()}</div>\n {this.pagination && this.getTotalPages() > 1 && (\n <udp-pagination\n currentPage={this.internalCurrentPage}\n totalPages={this.getTotalPages()}\n isLoading={this.isLoading}\n onPageChange={event => this.handlePageChange(event.detail)}\n ></udp-pagination>\n )}\n </host>\n );\n }\n}\n",":host {\n display: block;\n font-family: var(--font-family);\n}\n\n.pagination-controls {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: var(--spacing-03); /* 0.5rem */\n gap: var(--spacing-02); /* 0.25rem, replaces margin on individual buttons */\n}\n\n/* Styles for udp-button are handled by the component itself. \n We might only need to ensure proper alignment or specific overrides if necessary.\n The udp-button already has variants for 'active', 'disabled' etc. */\n\n.pagination-controls span.ellipsis {\n /* background-color: transparent; -- Already default for span */\n /* border: none; -- Already default for span */\n color: var(--text-secondary); /* Using a global variable for text color */\n padding: var(--spacing-02) var(--spacing-01); /* Adjust padding using variables */\n display: inline-flex; /* To align with buttons */\n align-items: center; /* To align with buttons */\n justify-content: center; /* To align with buttons */\n min-width: 36px; /* Approximate width of a small icon button, adjust as needed */\n min-height: 36px; /* Approximate height of a small icon button, adjust as needed */\n}\n\n/* Remove specific button styling for .prev-button, .next-button, etc. as udp-button handles it */\n/* .prev-button,\n.next-button,\n.first-page,\n.last-page {\n Additional specific styles if needed\n} */ ","import { Component, Prop, h, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'udp-pagination',\n styleUrl: './udp-pagination.css',\n shadow: true,\n})\nexport class UdpPagination {\n /**\n * The currently active page number.\n */\n @Prop() currentPage: number = 1;\n\n /**\n * The total number of pages available.\n */\n @Prop() totalPages: number = 1;\n\n /**\n * Optional: Whether the component consuming pagination is in a loading state.\n * If true, pagination controls will be disabled.\n */\n @Prop() isLoading: boolean = false;\n\n /**\n * Emitted when the page is changed by the user.\n * The event detail will contain the new page number.\n */\n @Event() pageChange: EventEmitter<number>;\n\n private navigateToPage(page: number) {\n if (this.isLoading || page < 1 || page > this.totalPages || page === this.currentPage) {\n return;\n }\n this.pageChange.emit(page);\n }\n\n // Basic page number generation. Could be made more sophisticated (e.g., with ellipses for many pages)\n private renderPageNumbers() {\n const pageNumbers = [];\n const maxPagesToShow = 5; // Max number of page buttons to show directly\n const halfMaxPages = Math.floor(maxPagesToShow / 2);\n\n let startPage = Math.max(1, this.currentPage - halfMaxPages);\n let endPage = Math.min(this.totalPages, this.currentPage + halfMaxPages);\n\n if (this.currentPage - halfMaxPages < 1) {\n endPage = Math.min(this.totalPages, maxPagesToShow);\n }\n\n if (this.currentPage + halfMaxPages > this.totalPages) {\n startPage = Math.max(1, this.totalPages - maxPagesToShow + 1);\n }\n\n if (this.totalPages <= maxPagesToShow) {\n startPage = 1;\n endPage = this.totalPages;\n }\n\n // Always show first page if not in range\n if (startPage > 1) {\n pageNumbers.push(\n <udp-button onClick={() => this.navigateToPage(1)} disabled={this.isLoading} variant=\"outlined\" ariaLabel=\"Go to first page\">\n 1\n </udp-button>,\n );\n if (startPage > 2) {\n pageNumbers.push(<span class=\"ellipsis\">...</span>);\n }\n }\n\n for (let i = startPage; i <= endPage; i++) {\n pageNumbers.push(\n <udp-button\n onClick={() => this.navigateToPage(i)}\n disabled={this.isLoading}\n variant={i === this.currentPage ? 'contained' : 'outlined'}\n color={i === this.currentPage ? 'primary' : 'inherit'}\n ariaLabel={`Go to page ${i}`}\n aria-current={i === this.currentPage ? 'page' : undefined}\n >\n {i}\n </udp-button>,\n );\n }\n\n // Always show last page if not in range\n if (endPage < this.totalPages) {\n if (endPage < this.totalPages - 1) {\n pageNumbers.push(<span class=\"ellipsis\">...</span>);\n }\n pageNumbers.push(\n <udp-button onClick={() => this.navigateToPage(this.totalPages)} disabled={this.isLoading} variant=\"outlined\" ariaLabel=\"Go to last page\">\n {this.totalPages}\n </udp-button>,\n );\n }\n\n return pageNumbers;\n }\n\n render() {\n if (this.totalPages <= 1) {\n return null; // Don't render pagination if there's only one page or less\n }\n\n return (\n <div class=\"pagination-controls\">\n <udp-button onClick={() => this.navigateToPage(this.currentPage - 1)} disabled={this.isLoading || this.currentPage <= 1} variant=\"text\" ariaLabel=\"Go to previous page\">\n Previous\n </udp-button>\n\n {this.renderPageNumbers()}\n\n <udp-button\n onClick={() => this.navigateToPage(this.currentPage + 1)}\n disabled={this.isLoading || this.currentPage >= this.totalPages}\n variant=\"text\"\n ariaLabel=\"Go to next page\"\n >\n Next\n </udp-button>\n </div>\n );\n }\n}\n",":host {\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n z-index: 9999;\n visibility: hidden;\n transition: visibility 0s 0.2s;\n}\n\n:host(.is-visible) {\n visibility: visible;\n transition-delay: 0s;\n}\n\n.backdrop {\n background: rgba(0, 0, 0, 0.5);\n width: 100%;\n height: 100%;\n position: fixed;\n top: 0;\n left: 0;\n opacity: 0;\n transition: opacity 0.2s ease-in-out;\n}\n\n:host(.is-visible) .backdrop {\n opacity: 1;\n}\n\n.sheet {\n background: white;\n height: 100vh;\n position: fixed;\n top: 0;\n display: flex;\n flex-direction: column;\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);\n transition: transform 0.2s ease-in-out;\n width: 100%;\n}\n\n.sheet.right {\n right: 0;\n transform: translateX(100%);\n}\n\n.sheet.left {\n left: 0;\n transform: translateX(-100%);\n}\n\n:host(.is-visible) .sheet {\n transform: translateX(0);\n}\n\n.sheet.sm { max-width: 360px; }\n.sheet.md { max-width: 600px; }\n.sheet.lg { max-width: 960px; }\n.sheet.full { max-width: 100%; }\n.sheet.custom-width { /* max-width is set via inline style */ }\n\n/* Updated title container for new layout */\n.title-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n box-shadow: var(--elevation-01, 0 4px 8px rgba(0, 0, 0, 0.1));\n gap: var(--spacing-02)\n}\n\n.title-text {\n flex-grow: 1;\n text-align: left; /* Ensure title stays left-aligned */\n}\n\n.close-button {\n flex-shrink: 0;\n}\n\n/* Added styles for the new button's container */\n.header-action-button {\n flex-shrink: 0;\n}\n\n.content {\n overflow-y: auto;\n flex-grow: 1;\n background-color: var(--gray-01);\n}\n\n.content.padding {\n padding: var(--spacing-05, 24px);\n}\n\n.footer {\n padding: var(--spacing-05, 24px);\n border-top: 1px solid #ccc;\n display: flex;\n justify-content: flex-end;\n flex-shrink: 0;\n}\n\n\n/* This container reserves the space for the loader (4px height).\n This prevents the content below it from shifting up and down\n when the loader appears or disappears.\n*/\n.loader-container {\n height: 4px;\n width: 100%;\n background-color: var(--gray-01);\n}\n\n/*\n By default, the loader is instantly hidden.\n There is no transition applied in its hidden state.\n*/\n.loader-container udp-linear-loader {\n visibility: hidden;\n opacity: 0;\n transition: none;\n}\n\n/*\n When the .is-loading class is applied, we make the loader visible\n AND apply a transition so it fades in smoothly. When the class is removed,\n it reverts to the rule above and disappears instantly.\n*/\n.loader-container udp-linear-loader.is-loading {\n visibility: visible;\n opacity: 1;\n /* transition: opacity 0.3s ease-in-out; */\n}\n\n","import { Component, h, Prop, Element, Watch, Event, EventEmitter } from '@stencil/core';\nimport Close24 from '@carbon/icons/es/close/24';\n\n@Component({\n tag: 'udp-side-sheet',\n styleUrl: 'udp-side-sheet.css',\n shadow: true,\n})\nexport class UdpSideSheet {\n @Element() hostEl!: HTMLElement;\n\n @Prop({ reflect: true, mutable: true }) open = false;\n @Prop() title: string;\n @Prop() position: 'left' | 'right' = 'right';\n @Prop() width: 'sm' | 'md' | 'lg' | 'full' | number = 'md';\n @Prop() padding = true;\n @Prop() loading: boolean = false;\n\n // Props for the new header action button\n @Prop() headerActionButtonLabel: string;\n @Prop() headerActionButtonDisabled = false;\n @Prop() headerActionButtonIcon: string;\n\n // Props for the existing footer button\n @Prop() primaryButtonLabel: string;\n @Prop() primaryButtonDisabled = false;\n @Prop() primaryButtonIcon: string;\n\n @Event() udpSideSheetClose: EventEmitter<void>;\n @Event() udpPrimaryButtonClick: EventEmitter<void>;\n // Event for the new header action button\n @Event() udpHeaderActionButtonClick: EventEmitter<void>;\n\n private originalBodyOverflow: string = '';\n\n @Watch('open')\n handleOpenChange(newValue: boolean, oldValue: boolean) {\n if (newValue === oldValue) {\n return;\n }\n\n if (newValue) {\n this.originalBodyOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n document.body.appendChild(this.hostEl);\n\n requestAnimationFrame(() => {\n this.hostEl.classList.add('is-visible');\n });\n } else {\n this.hostEl.classList.remove('is-visible');\n document.body.style.overflow = this.originalBodyOverflow;\n this.hostEl.addEventListener('transitionend', this.handleTransitionEnd, { once: true });\n }\n }\n\n private handleTransitionEnd = () => {\n if (!this.open && this.hostEl.parentElement === document.body) {\n document.body.removeChild(this.hostEl);\n }\n };\n\n disconnectedCallback() {\n if (document.body.style.overflow === 'hidden') {\n document.body.style.overflow = this.originalBodyOverflow;\n }\n }\n\n private onClose = () => {\n this.open = false;\n this.udpSideSheetClose.emit();\n };\n\n private onPrimaryButtonClick = () => {\n this.udpPrimaryButtonClick.emit();\n };\n\n // Handler for the new header action button click\n private onHeaderActionButtonClick = () => {\n this.udpHeaderActionButtonClick.emit();\n };\n\n render() {\n const widthClass = typeof this.width === 'number' ? 'custom-width' : this.width;\n const sideSheetStyle = typeof this.width === 'number' ? { maxWidth: `${this.width}px` } : {};\n\n return (\n <div class=\"backdrop\" onClick={this.onClose}>\n <div\n class={{ sheet: true, [this.position]: true, [widthClass]: true }}\n style={sideSheetStyle}\n onClick={e => e.stopPropagation()}\n >\n {/* Header layout has been changed here */}\n <div class=\"title-container\">\n <div class=\"close-button\">\n <stencil-icon-button\n icon={Close24}\n onClick={this.onClose}\n secondary\n ></stencil-icon-button>\n </div>\n <div class=\"title-text\">\n <unity-typography variant=\"h6\">{this.title}</unity-typography>\n </div>\n {/* Conditionally render the new header action button */}\n {this.headerActionButtonLabel && (\n <div class=\"header-action-button\">\n <udp-button\n disabled={this.headerActionButtonDisabled}\n onClick={this.onHeaderActionButtonClick}\n startIcon={<udp-icon iconName={this.headerActionButtonIcon} color={'inherit'} />}\n variant=\"contained\"\n >\n {this.headerActionButtonLabel}\n </udp-button>\n </div>\n )}\n </div>\n <div class=\"loader-container\">\n <udp-linear-loader class={{ 'is-loading': this.loading }} color=\"primary\" />\n </div>\n\n <div class={{ content: true, padding: this.padding }}>\n\n <slot />\n </div>\n {this.primaryButtonLabel && (\n <div class=\"footer\">\n <udp-button\n variant=\"contained\"\n size=\"large\"\n disabled={this.primaryButtonDisabled}\n onClick={this.onPrimaryButtonClick}\n endIcon={this.primaryButtonIcon}\n >\n {this.primaryButtonLabel}\n </udp-button>\n </div>\n )}\n </div>\n </div>\n );\n }\n}\n"],"names":["h","Close24"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"udp-list-renderer.udp-pagination.udp-side-sheet.entry.cjs.js","sources":["src/components/my-component/UI/data-display/list-renderer/udp-list-renderer.css?tag=udp-list-renderer&encapsulation=shadow","src/components/my-component/UI/data-display/list-renderer/udp-list-renderer.tsx","src/components/my-component/UI/navigation/pagination/udp-pagination.css?tag=udp-pagination&encapsulation=shadow","src/components/my-component/UI/navigation/pagination/udp-pagination.tsx","src/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.css?tag=udp-side-sheet&encapsulation=shadow","src/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.udp-list-renderer-container {\n display: flex;\n flex-direction: column;\n}\n\n.item-list-container {\n display: flex;\n flex-direction: column;\n}\n\n/* Spacing variants */\n.item-list-container.spacing-xs {\n gap: var(--spacing-02);\n}\n\n.item-list-container.spacing-sm {\n gap: var(--spacing-03);\n}\n\n.item-list-container.spacing-md {\n gap: var(--spacing-04);\n}\n\n.item-list-container.spacing-lg {\n gap: var(--spacing-06);\n}\n\n.item-list-container.spacing-condensed {\n gap: var(--spacing-01);\n}\n\n.loading-container {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: var(--spacing-07); /* 2rem */\n min-height: 100px; /* Adjust as needed, or use a spacing variable if appropriate */\n} ","import { Component, Prop, h, State, Watch, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'udp-list-renderer',\n styleUrl: 'udp-list-renderer.css',\n shadow: true,\n})\nexport class UdpItemList {\n /**\n * The tag name of the component to render for each item in the list.\n * For example, 'my-item-component'.\n */\n @Prop() itemComponent: string;\n\n /**\n * Array of objects to be rendered in the list.\n */\n @Prop() data: any[] = [];\n\n /**\n * Object mapping source data fields to prop names for the item component.\n * Example: {元のフィールド: '新しいフィールド'}\n * This will pass props to ItemComponent as: <ItemComponent newField={sourceData.originalField} />\n */\n @Prop() componentDataMap: { [key: string]: string };\n\n /**\n * Whether to enable pagination.\n */\n @Prop() pagination: boolean = false;\n\n /**\n * Number of items to display per page.\n */\n @Prop() itemsPerPage: number = 10;\n\n /**\n * Whether pagination is handled server-side.\n */\n @Prop() isServerSide: boolean = false;\n\n /**\n * Total number of items (required for server-side pagination).\n */\n @Prop() totalItems: number = 0;\n\n /**\n * Callback function for page changes. Required when isServerSide is true.\n * Emits the new page number.\n */\n @Event() pageChange: EventEmitter<number>;\n\n /**\n * Current page number (used for server-side pagination or can be controlled externally).\n * Defaults to 1.\n */\n @Prop({ mutable: true, reflect: true }) currentPage: number = 1;\n\n /**\n * Whether the list is in a loading state.\n */\n @Prop() isLoading: boolean = false;\n\n /**\n * Defines the spacing between items.\n * Options: 'xs', 'sm', 'md', 'lg', 'condensed'\n * Default: 'sm'\n */\n @Prop({ reflect: true }) spacing: 'xs' | 'sm' | 'md' | 'lg' | 'condensed' = 'md';\n\n @State() internalCurrentPage: number = 1;\n\n @Watch('currentPage')\n currentPageChanged(newValue: number) {\n if (newValue !== this.internalCurrentPage) {\n this.internalCurrentPage = newValue;\n }\n }\n\n componentWillLoad() {\n this.internalCurrentPage = this.currentPage;\n }\n\n private getPaginatedData() {\n if (!this.pagination || this.isServerSide) {\n return this.data;\n }\n const startIndex = (this.internalCurrentPage - 1) * this.itemsPerPage;\n const endIndex = startIndex + this.itemsPerPage;\n return this.data.slice(startIndex, endIndex);\n }\n\n private getTotalPages(): number {\n if (!this.pagination) return 1;\n if (this.isServerSide) {\n if (this.totalItems === 0 || this.itemsPerPage === 0) return 1;\n return Math.ceil(this.totalItems / this.itemsPerPage);\n }\n if (this.data.length === 0 || this.itemsPerPage === 0) return 1;\n return Math.ceil(this.data.length / this.itemsPerPage);\n }\n\n private handlePageChange(newPage: number) {\n if (this.isLoading) return;\n if (newPage >= 1 && newPage <= this.getTotalPages()) {\n if (this.isServerSide) {\n this.pageChange.emit(newPage);\n } else {\n this.internalCurrentPage = newPage;\n this.currentPage = newPage;\n this.pageChange.emit(newPage);\n }\n }\n }\n\n private renderItems() {\n if (!this.itemComponent) {\n console.warn('[udp-item-list] itemComponent prop is required.');\n return <p>Error: itemComponent prop is not defined.</p>;\n }\n if (!this.componentDataMap) {\n console.warn('[udp-item-list] componentDataMap prop is required.');\n return <p>Error: componentDataMap prop is not defined.</p>;\n }\n\n const itemsToRender = this.getPaginatedData();\n\n if (!itemsToRender || itemsToRender.length === 0) {\n return <p>No items to display.</p>;\n }\n\n return itemsToRender.map(item => {\n const props = {};\n for (const sourceKey in this.componentDataMap) {\n if (item.hasOwnProperty(sourceKey)) {\n const targetKey = this.componentDataMap[sourceKey];\n props[targetKey] = item[sourceKey];\n }\n }\n const ItemCmp = this.itemComponent;\n return <ItemCmp {...props} />;\n });\n }\n\n render() {\n if (this.isLoading && (!this.data || this.data.length === 0)) {\n return (\n <div class=\"loading-container\">\n <p>Loading...</p>\n </div>\n );\n }\n\n const containerClasses = {\n 'item-list-container': true,\n [`spacing-${this.spacing}`]: true,\n };\n\n return (\n <host>\n <div class={containerClasses}>{this.renderItems()}</div>\n {this.pagination && this.getTotalPages() > 1 && (\n <udp-pagination\n currentPage={this.internalCurrentPage}\n totalPages={this.getTotalPages()}\n isLoading={this.isLoading}\n onPageChange={event => this.handlePageChange(event.detail)}\n ></udp-pagination>\n )}\n </host>\n );\n }\n}\n",":host {\n display: block;\n font-family: var(--font-family);\n}\n\n.pagination-controls {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: var(--spacing-03); /* 0.5rem */\n gap: var(--spacing-02); /* 0.25rem, replaces margin on individual buttons */\n}\n\n/* Styles for udp-button are handled by the component itself. \n We might only need to ensure proper alignment or specific overrides if necessary.\n The udp-button already has variants for 'active', 'disabled' etc. */\n\n.pagination-controls span.ellipsis {\n /* background-color: transparent; -- Already default for span */\n /* border: none; -- Already default for span */\n color: var(--text-secondary); /* Using a global variable for text color */\n padding: var(--spacing-02) var(--spacing-01); /* Adjust padding using variables */\n display: inline-flex; /* To align with buttons */\n align-items: center; /* To align with buttons */\n justify-content: center; /* To align with buttons */\n min-width: 36px; /* Approximate width of a small icon button, adjust as needed */\n min-height: 36px; /* Approximate height of a small icon button, adjust as needed */\n}\n\n/* Remove specific button styling for .prev-button, .next-button, etc. as udp-button handles it */\n/* .prev-button,\n.next-button,\n.first-page,\n.last-page {\n Additional specific styles if needed\n} */ ","import { Component, Prop, h, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'udp-pagination',\n styleUrl: './udp-pagination.css',\n shadow: true,\n})\nexport class UdpPagination {\n /**\n * The currently active page number.\n */\n @Prop() currentPage: number = 1;\n\n /**\n * The total number of pages available.\n */\n @Prop() totalPages: number = 1;\n\n /**\n * Optional: Whether the component consuming pagination is in a loading state.\n * If true, pagination controls will be disabled.\n */\n @Prop() isLoading: boolean = false;\n\n /**\n * Emitted when the page is changed by the user.\n * The event detail will contain the new page number.\n */\n @Event() pageChange: EventEmitter<number>;\n\n private navigateToPage(page: number) {\n if (this.isLoading || page < 1 || page > this.totalPages || page === this.currentPage) {\n return;\n }\n this.pageChange.emit(page);\n }\n\n // Basic page number generation. Could be made more sophisticated (e.g., with ellipses for many pages)\n private renderPageNumbers() {\n const pageNumbers = [];\n const maxPagesToShow = 5; // Max number of page buttons to show directly\n const halfMaxPages = Math.floor(maxPagesToShow / 2);\n\n let startPage = Math.max(1, this.currentPage - halfMaxPages);\n let endPage = Math.min(this.totalPages, this.currentPage + halfMaxPages);\n\n if (this.currentPage - halfMaxPages < 1) {\n endPage = Math.min(this.totalPages, maxPagesToShow);\n }\n\n if (this.currentPage + halfMaxPages > this.totalPages) {\n startPage = Math.max(1, this.totalPages - maxPagesToShow + 1);\n }\n\n if (this.totalPages <= maxPagesToShow) {\n startPage = 1;\n endPage = this.totalPages;\n }\n\n // Always show first page if not in range\n if (startPage > 1) {\n pageNumbers.push(\n <udp-button onClick={() => this.navigateToPage(1)} disabled={this.isLoading} variant=\"outlined\" ariaLabel=\"Go to first page\">\n 1\n </udp-button>,\n );\n if (startPage > 2) {\n pageNumbers.push(<span class=\"ellipsis\">...</span>);\n }\n }\n\n for (let i = startPage; i <= endPage; i++) {\n pageNumbers.push(\n <udp-button\n onClick={() => this.navigateToPage(i)}\n disabled={this.isLoading}\n variant={i === this.currentPage ? 'contained' : 'outlined'}\n color={i === this.currentPage ? 'primary' : 'inherit'}\n ariaLabel={`Go to page ${i}`}\n aria-current={i === this.currentPage ? 'page' : undefined}\n >\n {i}\n </udp-button>,\n );\n }\n\n // Always show last page if not in range\n if (endPage < this.totalPages) {\n if (endPage < this.totalPages - 1) {\n pageNumbers.push(<span class=\"ellipsis\">...</span>);\n }\n pageNumbers.push(\n <udp-button onClick={() => this.navigateToPage(this.totalPages)} disabled={this.isLoading} variant=\"outlined\" ariaLabel=\"Go to last page\">\n {this.totalPages}\n </udp-button>,\n );\n }\n\n return pageNumbers;\n }\n\n render() {\n if (this.totalPages <= 1) {\n return null; // Don't render pagination if there's only one page or less\n }\n\n return (\n <div class=\"pagination-controls\">\n <udp-button onClick={() => this.navigateToPage(this.currentPage - 1)} disabled={this.isLoading || this.currentPage <= 1} variant=\"text\" ariaLabel=\"Go to previous page\">\n Previous\n </udp-button>\n\n {this.renderPageNumbers()}\n\n <udp-button\n onClick={() => this.navigateToPage(this.currentPage + 1)}\n disabled={this.isLoading || this.currentPage >= this.totalPages}\n variant=\"text\"\n ariaLabel=\"Go to next page\"\n >\n Next\n </udp-button>\n </div>\n );\n }\n}\n",":host {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n height: 100vh;\r\n z-index: 9999;\r\n visibility: hidden;\r\n transition: visibility 0s 0.2s;\r\n}\r\n\r\n:host(.is-visible) {\r\n visibility: visible;\r\n transition-delay: 0s;\r\n}\r\n\r\n.backdrop {\r\n background: rgba(0, 0, 0, 0.5);\r\n width: 100%;\r\n height: 100%;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n opacity: 0;\r\n transition: opacity 0.2s ease-in-out;\r\n}\r\n\r\n:host(.is-visible) .backdrop {\r\n opacity: 1;\r\n}\r\n\r\n.sheet {\r\n background: white;\r\n height: 100vh;\r\n position: fixed;\r\n top: 0;\r\n display: flex;\r\n flex-direction: column;\r\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);\r\n transition: transform 0.2s ease-in-out;\r\n width: 100%;\r\n}\r\n\r\n.sheet.right {\r\n right: 0;\r\n transform: translateX(100%);\r\n}\r\n\r\n.sheet.left {\r\n left: 0;\r\n transform: translateX(-100%);\r\n}\r\n\r\n:host(.is-visible) .sheet {\r\n transform: translateX(0);\r\n}\r\n\r\n.sheet.sm { max-width: 360px; }\r\n.sheet.md { max-width: 600px; }\r\n.sheet.lg { max-width: 960px; }\r\n.sheet.full { max-width: 100%; }\r\n.sheet.custom-width { /* max-width is set via inline style */ }\r\n\r\n/* Updated title container for new layout */\r\n.title-container {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n flex-shrink: 0;\r\n box-shadow: var(--elevation-01, 0 4px 8px rgba(0, 0, 0, 0.1));\r\n gap: var(--spacing-02)\r\n}\r\n\r\n.title-text {\r\n flex-grow: 1;\r\n text-align: left; /* Ensure title stays left-aligned */\r\n}\r\n\r\n.close-button {\r\n flex-shrink: 0;\r\n}\r\n\r\n/* Added styles for the new button's container */\r\n.header-action-button {\r\n flex-shrink: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: var(--spacing-02, 4px);\r\n padding: var(--spacing-03, 8px) var(--spacing-03, 8px) var(--spacing-03, 8px) 0;\r\n}\r\n\r\n.content {\r\n overflow-y: auto;\r\n flex-grow: 1;\r\n background-color: var(--gray-01);\r\n}\r\n\r\n.content.padding {\r\n padding: var(--spacing-05, 24px);\r\n}\r\n\r\n.footer {\r\n padding: var(--spacing-03, 8px);\r\n box-shadow: var(--elevation-01, 0 4px 8px rgba(0, 0, 0, 0.1));\r\n display: flex;\r\n justify-content: flex-end;\r\n flex-shrink: 0;\r\n width: 100%;\r\n gap: var(--spacing-02, 4px);\r\n align-items: center;\r\n}\r\n\r\n.footer.secondary-button-overflow{\r\n flex-direction: row-reverse;\r\n}\r\n\r\n.footer-secondary-buttons-container{\r\n flex-grow: 2;\r\n width: 100%;\r\n}\r\n\r\n.footer-secondary-buttons{\r\n display: flex;\r\n justify-content: flex-end;\r\n gap: var(--spacing-02, 4px);\r\n align-items: center;\r\n}\r\n\r\n.footer-secondary-buttons.secondary-button-overflow{\r\n flex-grow: 1;\r\n}\r\n\r\n/* This container reserves the space for the loader (4px height).\r\n This prevents the content below it from shifting up and down\r\n when the loader appears or disappears.\r\n*/\r\n.loader-container {\r\n height: 4px;\r\n width: 100%;\r\n background-color: var(--gray-01);\r\n}\r\n\r\n/*\r\n By default, the loader is instantly hidden.\r\n There is no transition applied in its hidden state.\r\n*/\r\n.loader-container udp-linear-loader {\r\n visibility: hidden;\r\n opacity: 0;\r\n transition: none;\r\n}\r\n\r\n/*\r\n When the .is-loading class is applied, we make the loader visible\r\n AND apply a transition so it fades in smoothly. When the class is removed,\r\n it reverts to the rule above and disappears instantly.\r\n*/\r\n.loader-container udp-linear-loader.is-loading {\r\n visibility: visible;\r\n opacity: 1;\r\n /* transition: opacity 0.3s ease-in-out; */\r\n}\r\n\r\n","/* eslint-disable stencil/strict-boolean-conditions */\r\nimport {\r\n Component,\r\n h,\r\n Prop,\r\n Element,\r\n Watch,\r\n Event,\r\n EventEmitter,\r\n State,\r\n Build,\r\n} from '@stencil/core';\r\nimport Close24 from '@carbon/icons/es/close/24';\r\nimport { SecondaryButton } from './types';\r\n\r\n/**\r\n * Side sheet component used for contextual drawers.\r\n */\r\n@Component({\r\n tag: 'udp-side-sheet',\r\n styleUrl: 'udp-side-sheet.css',\r\n shadow: true,\r\n})\r\nexport class UdpSideSheet {\r\n /** Host element reference for portal behavior */\r\n @Element() hostEl!: HTMLElement;\r\n\r\n /** When true, the side sheet is open and visible */\r\n @Prop({ reflect: true, mutable: true }) open = false;\r\n\r\n /** Title text displayed in the header */\r\n @Prop() title: string;\r\n\r\n /** Position of the sheet on the screen */\r\n @Prop() position: 'left' | 'right' = 'right';\r\n\r\n /** Width preset or a numeric pixel width */\r\n @Prop() width: 'sm' | 'md' | 'lg' | 'full' | number = 'md';\r\n\r\n /** Controls whether default inner padding is applied */\r\n @Prop() padding = true;\r\n\r\n /** When true, shows a top loader */\r\n @Prop() loading: boolean = false;\r\n\r\n // Header action button props\r\n\r\n /** Label for the header primary action button */\r\n @Prop() headerActionButtonLabel: string;\r\n\r\n /** Whether the header action button is disabled */\r\n @Prop() headerActionButtonDisabled = false;\r\n\r\n /** Icon name for the header action button */\r\n @Prop() headerActionButtonIcon: string;\r\n\r\n /** Additional secondary buttons to render in the header */\r\n @Prop() headerSecondaryButtons: SecondaryButton[];\r\n\r\n // Footer / primary button props\r\n\r\n /** Label for the primary footer action button */\r\n @Prop() primaryButtonLabel: string;\r\n\r\n /** Whether the primary footer button is disabled */\r\n @Prop() primaryButtonDisabled = false;\r\n\r\n /** Icon name for the primary footer button */\r\n @Prop() primaryButtonIcon: string;\r\n\r\n /** Secondary buttons to render in the footer */\r\n @Prop() footerSecondaryButtons?: SecondaryButton[];\r\n\r\n /** Emitted when the sheet is closed */\r\n @Event() udpSideSheetClose: EventEmitter<void>;\r\n\r\n /** Emitted when the primary footer button is clicked */\r\n @Event() udpPrimaryButtonClick: EventEmitter<void>;\r\n\r\n /** Emitted when the header action button is clicked */\r\n @Event() udpHeaderActionButtonClick: EventEmitter<void>;\r\n\r\n /** Whether the footer should show the overflow \"More\" button */\r\n @State() showOverflowButton: boolean = false;\r\n\r\n /** Whether the overflow popover is open */\r\n @State() openOverflowMenu: boolean = false;\r\n\r\n /** Anchor element for the overflow popover */\r\n @State() overflowMenuAnchor: HTMLElement;\r\n\r\n @State() visibleSecondaryButtons: SecondaryButton[] = [];\r\n @State() overflowSecondaryButtons: SecondaryButton[] = [];\r\n\r\n /** Saved original document.body.overflow value to restore on close */\r\n private originalBodyOverflow: string = '';\r\n\r\n /** ResizeObserver instance watching footer size changes */\r\n private resizeObserver: ResizeObserver;\r\n\r\n /** Reference to the footer element */\r\n private footerRef: HTMLElement;\r\n\r\n /** Offscreen measurement container for buttons */\r\n private measurementContainerRef: HTMLElement;\r\n\r\n /** Saved original document.body.paddingRight value to restore on close */\r\n private originalBodyPaddingRight: string = '';\r\n\r\n /**\r\n * Watcher for `open` prop. Handles portal append/removal and body scroll lock.\r\n *\r\n * @param newValue - new value of the `open` prop\r\n * @param oldValue - previous value of the `open` prop\r\n */\r\n @Watch('open')\r\n handleOpenChange(newValue: boolean, oldValue: boolean) {\r\n if (newValue === oldValue) {\r\n return;\r\n }\r\n\r\n if (newValue) {\r\n // Calculate scrollbar width before hiding it\r\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\r\n\r\n // Save original values\r\n this.originalBodyOverflow = document.body.style.overflow;\r\n this.originalBodyPaddingRight = document.body.style.paddingRight;\r\n\r\n document.body.appendChild(this.hostEl);\r\n\r\n // Add padding to compensate for scrollbar\r\n if (scrollbarWidth > 0) {\r\n const currentPadding = parseInt(window.getComputedStyle(document.body).paddingRight) || 0;\r\n document.body.style.paddingRight = `${currentPadding + scrollbarWidth}px`;\r\n }\r\n\r\n document.body.style.overflow = 'hidden';\r\n\r\n requestAnimationFrame(() => {\r\n this.hostEl.classList.add('is-visible');\r\n // Check overflow after the side sheet is visible\r\n setTimeout(() => this.checkOverflow(), 50);\r\n });\r\n } else {\r\n this.hostEl.classList.remove('is-visible');\r\n document.body.style.overflow = this.originalBodyOverflow;\r\n document.body.style.paddingRight = this.originalBodyPaddingRight;\r\n this.hostEl.addEventListener('transitionend', this.handleTransitionEnd, { once: true });\r\n }\r\n }\r\n\r\n /**\r\n * Watcher for footer secondary buttons changes. Triggers overflow recalculation.\r\n */\r\n @Watch('footerSecondaryButtons')\r\n handleSecondaryButtonsChange() {\r\n // Recheck overflow when buttons change\r\n setTimeout(() => this.checkOverflow(), 50);\r\n }\r\n\r\n /**\r\n * Measures footer buttons in an offscreen container and sets `showOverflowButton`.\r\n * Safely returns early if required refs are unavailable.\r\n */\r\n private checkOverflow() {\r\n if (!this.footerRef || !this.measurementContainerRef) {\r\n return;\r\n }\r\n\r\n if (!this.footerSecondaryButtons || this.footerSecondaryButtons.length === 0) {\r\n this.showOverflowButton = false;\r\n return;\r\n }\r\n\r\n // Get the footer container width (minus padding)\r\n const footerWidth = this.footerRef.offsetWidth;\r\n const footerStyle = window.getComputedStyle(this.footerRef);\r\n const footerPaddingLeft = parseFloat(footerStyle.paddingLeft);\r\n const footerPaddingRight = parseFloat(footerStyle.paddingRight);\r\n const availableWidth = footerWidth - footerPaddingLeft - footerPaddingRight;\r\n\r\n // Measure all buttons in the hidden measurement container\r\n const measurementButtons = this.measurementContainerRef.querySelectorAll('udp-button');\r\n let totalWidth = 0;\r\n\r\n measurementButtons.forEach((button, index) => {\r\n const buttonWidth = button && button instanceof HTMLElement ? button.offsetWidth : 0;\r\n totalWidth += buttonWidth;\r\n\r\n // Add gap spacing between buttons (except for the last one)\r\n if (index < measurementButtons.length - 1) {\r\n const containerStyle = window.getComputedStyle(this.measurementContainerRef);\r\n const gap = parseFloat(containerStyle.gap) || 4; // Default gap from CSS\r\n totalWidth += gap;\r\n }\r\n });\r\n\r\n // Add a small buffer to prevent edge cases\r\n const buffer = 10;\r\n const isOverflowing = totalWidth + buffer > availableWidth;\r\n\r\n this.showOverflowButton = isOverflowing;\r\n }\r\n\r\n /**\r\n * Transition end handler used to remove the host element from body after close.\r\n *\r\n * @private\r\n */\r\n private handleTransitionEnd = () => {\r\n if (!this.open && this.hostEl.parentElement === document.body) {\r\n document.body.removeChild(this.hostEl);\r\n }\r\n };\r\n\r\n /**\r\n * Lifecycle: componentDidLoad. Sets up ResizeObserver and initial overflow check.\r\n *\r\n * @private\r\n */\r\n componentDidLoad() {\r\n if (Build.isBrowser) {\r\n // Set up ResizeObserver to watch for footer size changes\r\n this.resizeObserver = new ResizeObserver(() => {\r\n this.checkOverflow();\r\n });\r\n\r\n // Initial check after a small delay to ensure DOM is ready\r\n requestAnimationFrame(() => {\r\n setTimeout(() => {\r\n if (this.footerRef) {\r\n this.resizeObserver.observe(this.footerRef);\r\n }\r\n this.checkOverflow();\r\n }, 100);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Lifecycle: disconnectedCallback. Restores body styles and disconnects observers.\r\n *\r\n * @private\r\n */\r\n disconnectedCallback() {\r\n if (document.body.style.overflow === 'hidden') {\r\n document.body.style.overflow = this.originalBodyOverflow;\r\n document.body.style.paddingRight = this.originalBodyPaddingRight;\r\n }\r\n\r\n // Clean up ResizeObserver\r\n if (this.resizeObserver) {\r\n this.resizeObserver.disconnect();\r\n }\r\n }\r\n\r\n /**\r\n * Close the side sheet and emit close event.\r\n *\r\n * @private\r\n */\r\n private onClose = () => {\r\n this.open = false;\r\n this.udpSideSheetClose.emit();\r\n };\r\n\r\n /**\r\n * Backdrop click handler. Only closes when clicking the backdrop itself.\r\n *\r\n * @param e - MouseEvent from the backdrop click\r\n * @private\r\n */\r\n private onCloseBackdrop = (e: MouseEvent) => {\r\n if (e.target === e.currentTarget) {\r\n this.onClose();\r\n }\r\n };\r\n\r\n /**\r\n * Emit primary footer button click event.\r\n *\r\n * @private\r\n */\r\n private onPrimaryButtonClick = () => {\r\n this.udpPrimaryButtonClick.emit();\r\n };\r\n\r\n /**\r\n * Emit header action button click event.\r\n *\r\n * @private\r\n */\r\n private onHeaderActionButtonClick = () => {\r\n this.udpHeaderActionButtonClick.emit();\r\n };\r\n\r\n /**\r\n * Open overflow menu anchored to the clicked element.\r\n *\r\n * @param event - MouseEvent from the \"More\" button click\r\n * @private\r\n */\r\n private onMoreActionButtonClick = (event: MouseEvent) => {\r\n this.overflowMenuAnchor = event.currentTarget as HTMLElement;\r\n this.openOverflowMenu = true;\r\n };\r\n\r\n /**\r\n * Close the overflow popover.\r\n *\r\n * @param e - optional KeyboardEvent or MouseEvent (unused)\r\n * @private\r\n */\r\n private handleCloseOverflowMenu = () => {\r\n this.openOverflowMenu = false;\r\n };\r\n\r\n /**\r\n * Render the component UI.\r\n *\r\n * @returns JSX element tree\r\n * @private\r\n */\r\n render() {\r\n const widthClass = typeof this.width === 'number' ? 'custom-width' : this.width;\r\n const sideSheetStyle = typeof this.width === 'number' ? { maxWidth: `${this.width}px` } : {};\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n const headerStartIcon = Boolean(this.headerActionButtonIcon) ? (\r\n <udp-icon iconName={this.headerActionButtonIcon} color=\"inherit\" />\r\n ) : undefined;\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n const overflowIcon = <udp-icon iconName=\"overflowMenuVertical\" color=\"inherit\" />;\r\n\r\n return (\r\n <div class=\"backdrop\" onClick={this.onCloseBackdrop}>\r\n <div\r\n class={{ sheet: true, [this.position]: true, [widthClass]: true }}\r\n style={sideSheetStyle}\r\n >\r\n {/* Header layout has been changed here */}\r\n <div class=\"title-container\">\r\n <div class=\"close-button\">\r\n <stencil-icon-button\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n icon={Close24}\r\n onClick={this.onClose}\r\n secondary\r\n ></stencil-icon-button>\r\n </div>\r\n <div class=\"title-text\">\r\n <unity-typography variant=\"h6\">{this.title}</unity-typography>\r\n </div>\r\n {/* Conditionally render the new header action button */}\r\n {(this.headerActionButtonLabel || this.headerSecondaryButtons?.length > 0) && (\r\n <div class=\"header-action-button\">\r\n {this.headerSecondaryButtons?.map((item: SecondaryButton) => (\r\n <udp-button\r\n variant=\"outlined\"\r\n disabled={item.disabled}\r\n onClick={item.onClick}\r\n endIcon={item.icon}\r\n >\r\n {item.label}\r\n </udp-button>\r\n ))}\r\n {this.headerActionButtonLabel && (\r\n <udp-button\r\n disabled={this.headerActionButtonDisabled}\r\n onClick={this.onHeaderActionButtonClick}\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n startIcon={headerStartIcon}\r\n variant=\"contained\"\r\n >\r\n {this.headerActionButtonLabel}\r\n </udp-button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n <div class=\"loader-container\">\r\n <udp-linear-loader class={{ 'is-loading': this.loading }} color=\"primary\" />\r\n </div>\r\n\r\n <div class={{ content: true, padding: this.padding }}>\r\n <slot />\r\n </div>\r\n {(this.primaryButtonLabel || this.footerSecondaryButtons?.length > 0) && (\r\n <div>\r\n <div class=\"loader-container\"></div>\r\n <div\r\n class={{\r\n footer: true,\r\n }}\r\n ref={el => (this.footerRef = el)}\r\n >\r\n {/* Visible buttons container */}\r\n {!this.showOverflowButton && this.footerSecondaryButtons?.length > 0 && (\r\n <div class=\"footer-secondary-buttons-container\">\r\n <div class=\"footer-secondary-buttons\">\r\n {this.footerSecondaryButtons?.map((item: SecondaryButton) => (\r\n <udp-button\r\n variant=\"outlined\"\r\n disabled={item.disabled}\r\n onClick={item.onClick}\r\n endIcon={item.icon}\r\n >\r\n {item.label}\r\n </udp-button>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* More button when overflowing */}\r\n {this.showOverflowButton && (\r\n <udp-button\r\n variant=\"outlined\"\r\n onClick={this.onMoreActionButtonClick}\r\n color=\"secondary\"\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n endIcon={overflowIcon}\r\n >\r\n More\r\n </udp-button>\r\n )}\r\n\r\n {/* Primary button */}\r\n {this.primaryButtonLabel && (\r\n <udp-button\r\n variant=\"contained\"\r\n disabled={this.primaryButtonDisabled}\r\n onClick={this.onPrimaryButtonClick}\r\n endIcon={this.primaryButtonIcon}\r\n >\r\n {this.primaryButtonLabel}\r\n </udp-button>\r\n )}\r\n\r\n {/* Overflow menu */}\r\n {this.showOverflowButton && (\r\n <udp-pop-over\r\n anchorElement={this.overflowMenuAnchor}\r\n isOpen={this.openOverflowMenu}\r\n popoverWidth={'200px'}\r\n popoverMaxHeight={'300px'}\r\n handleOnClose={this.handleCloseOverflowMenu}\r\n >\r\n <div class=\"menu\">\r\n {this.footerSecondaryButtons?.map(item => (\r\n <udp-menu-item\r\n label={item?.label}\r\n iconName={item?.icon}\r\n onItemClick={() => {\r\n item?.onClick();\r\n this.handleCloseOverflowMenu();\r\n }}\r\n disabled={item?.disabled}\r\n />\r\n ))}\r\n </div>\r\n </udp-pop-over>\r\n )}\r\n\r\n {/* Hidden measurement container - renders all buttons for measurement */}\r\n <div\r\n ref={el => (this.measurementContainerRef = el)}\r\n style={{\r\n position: 'absolute',\r\n visibility: 'hidden',\r\n pointerEvents: 'none',\r\n display: 'flex',\r\n gap: 'var(--spacing-02, 4px)',\r\n }}\r\n aria-hidden=\"true\"\r\n >\r\n {this.footerSecondaryButtons?.map((item: SecondaryButton) => (\r\n <udp-button\r\n variant=\"text\"\r\n size=\"medium\"\r\n disabled={item.disabled}\r\n endIcon={item.icon}\r\n >\r\n {item.label}\r\n </udp-button>\r\n ))}\r\n {this.primaryButtonLabel && (\r\n <udp-button\r\n variant=\"contained\"\r\n size=\"medium\"\r\n disabled={this.primaryButtonDisabled}\r\n endIcon={this.primaryButtonIcon}\r\n >\r\n {this.primaryButtonLabel}\r\n </udp-button>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"names":["h","Close24"],"mappings":"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"}
|
|
@@ -204,7 +204,7 @@ const UdpPagination = class {
|
|
|
204
204
|
};
|
|
205
205
|
UdpPagination.style = udpPaginationCss;
|
|
206
206
|
|
|
207
|
-
const udpSideSheetCss = ":host{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999;visibility:hidden;transition:visibility 0s 0.2s}:host(.is-visible){visibility:visible;transition-delay:0s}.backdrop{background:rgba(0, 0, 0, 0.5);width:100%;height:100%;position:fixed;top:0;left:0;opacity:0;transition:opacity 0.2s ease-in-out}:host(.is-visible) .backdrop{opacity:1}.sheet{background:white;height:100vh;position:fixed;top:0;display:flex;flex-direction:column;box-shadow:0 0 4px rgba(0, 0, 0, 0.3);transition:transform 0.2s ease-in-out;width:100%}.sheet.right{right:0;transform:translateX(100%)}.sheet.left{left:0;transform:translateX(-100%)}:host(.is-visible) .sheet{transform:translateX(0)}.sheet.sm{max-width:360px}.sheet.md{max-width:600px}.sheet.lg{max-width:960px}.sheet.full{max-width:100%}.sheet.custom-width{}.title-container{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;box-shadow:var(--elevation-01, 0 4px 8px rgba(0, 0, 0, 0.1));gap:var(--spacing-02)}.title-text{flex-grow:1;text-align:left;}.close-button{flex-shrink:0}.header-action-button{flex-shrink:0}.content{overflow-y:auto;flex-grow:1;background-color:var(--gray-01)}.content.padding{padding:var(--spacing-05, 24px)}.footer{padding:var(--spacing-
|
|
207
|
+
const udpSideSheetCss = ":host{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999;visibility:hidden;transition:visibility 0s 0.2s}:host(.is-visible){visibility:visible;transition-delay:0s}.backdrop{background:rgba(0, 0, 0, 0.5);width:100%;height:100%;position:fixed;top:0;left:0;opacity:0;transition:opacity 0.2s ease-in-out}:host(.is-visible) .backdrop{opacity:1}.sheet{background:white;height:100vh;position:fixed;top:0;display:flex;flex-direction:column;box-shadow:0 0 4px rgba(0, 0, 0, 0.3);transition:transform 0.2s ease-in-out;width:100%}.sheet.right{right:0;transform:translateX(100%)}.sheet.left{left:0;transform:translateX(-100%)}:host(.is-visible) .sheet{transform:translateX(0)}.sheet.sm{max-width:360px}.sheet.md{max-width:600px}.sheet.lg{max-width:960px}.sheet.full{max-width:100%}.sheet.custom-width{}.title-container{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;box-shadow:var(--elevation-01, 0 4px 8px rgba(0, 0, 0, 0.1));gap:var(--spacing-02)}.title-text{flex-grow:1;text-align:left;}.close-button{flex-shrink:0}.header-action-button{flex-shrink:0;display:flex;align-items:center;gap:var(--spacing-02, 4px);padding:var(--spacing-03, 8px) var(--spacing-03, 8px) var(--spacing-03, 8px) 0}.content{overflow-y:auto;flex-grow:1;background-color:var(--gray-01)}.content.padding{padding:var(--spacing-05, 24px)}.footer{padding:var(--spacing-03, 8px);box-shadow:var(--elevation-01, 0 4px 8px rgba(0, 0, 0, 0.1));display:flex;justify-content:flex-end;flex-shrink:0;width:100%;gap:var(--spacing-02, 4px);align-items:center}.footer.secondary-button-overflow{flex-direction:row-reverse}.footer-secondary-buttons-container{flex-grow:2;width:100%}.footer-secondary-buttons{display:flex;justify-content:flex-end;gap:var(--spacing-02, 4px);align-items:center}.footer-secondary-buttons.secondary-button-overflow{flex-grow:1}.loader-container{height:4px;width:100%;background-color:var(--gray-01)}.loader-container udp-linear-loader{visibility:hidden;opacity:0;transition:none}.loader-container udp-linear-loader.is-loading{visibility:visible;opacity:1;}";
|
|
208
208
|
|
|
209
209
|
const UdpSideSheet = class {
|
|
210
210
|
constructor(hostRef) {
|
|
@@ -212,62 +212,251 @@ const UdpSideSheet = class {
|
|
|
212
212
|
this.udpSideSheetClose = index.createEvent(this, "udpSideSheetClose");
|
|
213
213
|
this.udpPrimaryButtonClick = index.createEvent(this, "udpPrimaryButtonClick");
|
|
214
214
|
this.udpHeaderActionButtonClick = index.createEvent(this, "udpHeaderActionButtonClick");
|
|
215
|
+
/** When true, the side sheet is open and visible */
|
|
215
216
|
this.open = false;
|
|
217
|
+
/** Position of the sheet on the screen */
|
|
216
218
|
this.position = 'right';
|
|
219
|
+
/** Width preset or a numeric pixel width */
|
|
217
220
|
this.width = 'md';
|
|
221
|
+
/** Controls whether default inner padding is applied */
|
|
218
222
|
this.padding = true;
|
|
223
|
+
/** When true, shows a top loader */
|
|
219
224
|
this.loading = false;
|
|
225
|
+
/** Whether the header action button is disabled */
|
|
220
226
|
this.headerActionButtonDisabled = false;
|
|
227
|
+
/** Whether the primary footer button is disabled */
|
|
221
228
|
this.primaryButtonDisabled = false;
|
|
229
|
+
/** Whether the footer should show the overflow "More" button */
|
|
230
|
+
this.showOverflowButton = false;
|
|
231
|
+
/** Whether the overflow popover is open */
|
|
232
|
+
this.openOverflowMenu = false;
|
|
233
|
+
this.visibleSecondaryButtons = [];
|
|
234
|
+
this.overflowSecondaryButtons = [];
|
|
235
|
+
/** Saved original document.body.overflow value to restore on close */
|
|
222
236
|
this.originalBodyOverflow = '';
|
|
237
|
+
/** Saved original document.body.paddingRight value to restore on close */
|
|
238
|
+
this.originalBodyPaddingRight = '';
|
|
239
|
+
/**
|
|
240
|
+
* Transition end handler used to remove the host element from body after close.
|
|
241
|
+
*
|
|
242
|
+
* @private
|
|
243
|
+
*/
|
|
223
244
|
this.handleTransitionEnd = () => {
|
|
224
245
|
if (!this.open && this.hostEl.parentElement === document.body) {
|
|
225
246
|
document.body.removeChild(this.hostEl);
|
|
226
247
|
}
|
|
227
248
|
};
|
|
249
|
+
/**
|
|
250
|
+
* Close the side sheet and emit close event.
|
|
251
|
+
*
|
|
252
|
+
* @private
|
|
253
|
+
*/
|
|
228
254
|
this.onClose = () => {
|
|
229
255
|
this.open = false;
|
|
230
256
|
this.udpSideSheetClose.emit();
|
|
231
257
|
};
|
|
258
|
+
/**
|
|
259
|
+
* Backdrop click handler. Only closes when clicking the backdrop itself.
|
|
260
|
+
*
|
|
261
|
+
* @param e - MouseEvent from the backdrop click
|
|
262
|
+
* @private
|
|
263
|
+
*/
|
|
264
|
+
this.onCloseBackdrop = (e) => {
|
|
265
|
+
if (e.target === e.currentTarget) {
|
|
266
|
+
this.onClose();
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
/**
|
|
270
|
+
* Emit primary footer button click event.
|
|
271
|
+
*
|
|
272
|
+
* @private
|
|
273
|
+
*/
|
|
232
274
|
this.onPrimaryButtonClick = () => {
|
|
233
275
|
this.udpPrimaryButtonClick.emit();
|
|
234
276
|
};
|
|
235
|
-
|
|
277
|
+
/**
|
|
278
|
+
* Emit header action button click event.
|
|
279
|
+
*
|
|
280
|
+
* @private
|
|
281
|
+
*/
|
|
236
282
|
this.onHeaderActionButtonClick = () => {
|
|
237
283
|
this.udpHeaderActionButtonClick.emit();
|
|
238
284
|
};
|
|
285
|
+
/**
|
|
286
|
+
* Open overflow menu anchored to the clicked element.
|
|
287
|
+
*
|
|
288
|
+
* @param event - MouseEvent from the "More" button click
|
|
289
|
+
* @private
|
|
290
|
+
*/
|
|
291
|
+
this.onMoreActionButtonClick = (event) => {
|
|
292
|
+
this.overflowMenuAnchor = event.currentTarget;
|
|
293
|
+
this.openOverflowMenu = true;
|
|
294
|
+
};
|
|
295
|
+
/**
|
|
296
|
+
* Close the overflow popover.
|
|
297
|
+
*
|
|
298
|
+
* @param e - optional KeyboardEvent or MouseEvent (unused)
|
|
299
|
+
* @private
|
|
300
|
+
*/
|
|
301
|
+
this.handleCloseOverflowMenu = () => {
|
|
302
|
+
this.openOverflowMenu = false;
|
|
303
|
+
};
|
|
239
304
|
}
|
|
305
|
+
/**
|
|
306
|
+
* Watcher for `open` prop. Handles portal append/removal and body scroll lock.
|
|
307
|
+
*
|
|
308
|
+
* @param newValue - new value of the `open` prop
|
|
309
|
+
* @param oldValue - previous value of the `open` prop
|
|
310
|
+
*/
|
|
240
311
|
handleOpenChange(newValue, oldValue) {
|
|
241
312
|
if (newValue === oldValue) {
|
|
242
313
|
return;
|
|
243
314
|
}
|
|
244
315
|
if (newValue) {
|
|
316
|
+
// Calculate scrollbar width before hiding it
|
|
317
|
+
const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
|
|
318
|
+
// Save original values
|
|
245
319
|
this.originalBodyOverflow = document.body.style.overflow;
|
|
246
|
-
document.body.style.
|
|
320
|
+
this.originalBodyPaddingRight = document.body.style.paddingRight;
|
|
247
321
|
document.body.appendChild(this.hostEl);
|
|
322
|
+
// Add padding to compensate for scrollbar
|
|
323
|
+
if (scrollbarWidth > 0) {
|
|
324
|
+
const currentPadding = parseInt(window.getComputedStyle(document.body).paddingRight) || 0;
|
|
325
|
+
document.body.style.paddingRight = `${currentPadding + scrollbarWidth}px`;
|
|
326
|
+
}
|
|
327
|
+
document.body.style.overflow = 'hidden';
|
|
248
328
|
requestAnimationFrame(() => {
|
|
249
329
|
this.hostEl.classList.add('is-visible');
|
|
330
|
+
// Check overflow after the side sheet is visible
|
|
331
|
+
setTimeout(() => this.checkOverflow(), 50);
|
|
250
332
|
});
|
|
251
333
|
}
|
|
252
334
|
else {
|
|
253
335
|
this.hostEl.classList.remove('is-visible');
|
|
254
336
|
document.body.style.overflow = this.originalBodyOverflow;
|
|
337
|
+
document.body.style.paddingRight = this.originalBodyPaddingRight;
|
|
255
338
|
this.hostEl.addEventListener('transitionend', this.handleTransitionEnd, { once: true });
|
|
256
339
|
}
|
|
257
340
|
}
|
|
341
|
+
/**
|
|
342
|
+
* Watcher for footer secondary buttons changes. Triggers overflow recalculation.
|
|
343
|
+
*/
|
|
344
|
+
handleSecondaryButtonsChange() {
|
|
345
|
+
// Recheck overflow when buttons change
|
|
346
|
+
setTimeout(() => this.checkOverflow(), 50);
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Measures footer buttons in an offscreen container and sets `showOverflowButton`.
|
|
350
|
+
* Safely returns early if required refs are unavailable.
|
|
351
|
+
*/
|
|
352
|
+
checkOverflow() {
|
|
353
|
+
if (!this.footerRef || !this.measurementContainerRef) {
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
if (!this.footerSecondaryButtons || this.footerSecondaryButtons.length === 0) {
|
|
357
|
+
this.showOverflowButton = false;
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
// Get the footer container width (minus padding)
|
|
361
|
+
const footerWidth = this.footerRef.offsetWidth;
|
|
362
|
+
const footerStyle = window.getComputedStyle(this.footerRef);
|
|
363
|
+
const footerPaddingLeft = parseFloat(footerStyle.paddingLeft);
|
|
364
|
+
const footerPaddingRight = parseFloat(footerStyle.paddingRight);
|
|
365
|
+
const availableWidth = footerWidth - footerPaddingLeft - footerPaddingRight;
|
|
366
|
+
// Measure all buttons in the hidden measurement container
|
|
367
|
+
const measurementButtons = this.measurementContainerRef.querySelectorAll('udp-button');
|
|
368
|
+
let totalWidth = 0;
|
|
369
|
+
measurementButtons.forEach((button, index) => {
|
|
370
|
+
const buttonWidth = button && button instanceof HTMLElement ? button.offsetWidth : 0;
|
|
371
|
+
totalWidth += buttonWidth;
|
|
372
|
+
// Add gap spacing between buttons (except for the last one)
|
|
373
|
+
if (index < measurementButtons.length - 1) {
|
|
374
|
+
const containerStyle = window.getComputedStyle(this.measurementContainerRef);
|
|
375
|
+
const gap = parseFloat(containerStyle.gap) || 4; // Default gap from CSS
|
|
376
|
+
totalWidth += gap;
|
|
377
|
+
}
|
|
378
|
+
});
|
|
379
|
+
// Add a small buffer to prevent edge cases
|
|
380
|
+
const buffer = 10;
|
|
381
|
+
const isOverflowing = totalWidth + buffer > availableWidth;
|
|
382
|
+
this.showOverflowButton = isOverflowing;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Lifecycle: componentDidLoad. Sets up ResizeObserver and initial overflow check.
|
|
386
|
+
*
|
|
387
|
+
* @private
|
|
388
|
+
*/
|
|
389
|
+
componentDidLoad() {
|
|
390
|
+
{
|
|
391
|
+
// Set up ResizeObserver to watch for footer size changes
|
|
392
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
393
|
+
this.checkOverflow();
|
|
394
|
+
});
|
|
395
|
+
// Initial check after a small delay to ensure DOM is ready
|
|
396
|
+
requestAnimationFrame(() => {
|
|
397
|
+
setTimeout(() => {
|
|
398
|
+
if (this.footerRef) {
|
|
399
|
+
this.resizeObserver.observe(this.footerRef);
|
|
400
|
+
}
|
|
401
|
+
this.checkOverflow();
|
|
402
|
+
}, 100);
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Lifecycle: disconnectedCallback. Restores body styles and disconnects observers.
|
|
408
|
+
*
|
|
409
|
+
* @private
|
|
410
|
+
*/
|
|
258
411
|
disconnectedCallback() {
|
|
259
412
|
if (document.body.style.overflow === 'hidden') {
|
|
260
413
|
document.body.style.overflow = this.originalBodyOverflow;
|
|
414
|
+
document.body.style.paddingRight = this.originalBodyPaddingRight;
|
|
415
|
+
}
|
|
416
|
+
// Clean up ResizeObserver
|
|
417
|
+
if (this.resizeObserver) {
|
|
418
|
+
this.resizeObserver.disconnect();
|
|
261
419
|
}
|
|
262
420
|
}
|
|
421
|
+
/**
|
|
422
|
+
* Render the component UI.
|
|
423
|
+
*
|
|
424
|
+
* @returns JSX element tree
|
|
425
|
+
* @private
|
|
426
|
+
*/
|
|
263
427
|
render() {
|
|
428
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
264
429
|
const widthClass = typeof this.width === 'number' ? 'custom-width' : this.width;
|
|
265
430
|
const sideSheetStyle = typeof this.width === 'number' ? { maxWidth: `${this.width}px` } : {};
|
|
266
|
-
|
|
431
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
432
|
+
const headerStartIcon = Boolean(this.headerActionButtonIcon) ? (index.h("udp-icon", { iconName: this.headerActionButtonIcon, color: "inherit" })) : undefined;
|
|
433
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
434
|
+
const overflowIcon = index.h("udp-icon", { key: '3262baafbf833e25e0b4d1128b24fb503d1dd157', iconName: "overflowMenuVertical", color: "inherit" });
|
|
435
|
+
return (index.h("div", { key: '780c5705588899683400da7bce6569ad8ce15d30', class: "backdrop", onClick: this.onCloseBackdrop }, index.h("div", { key: 'a68811f8a6c59239c60c048453bb63eae7ed7ee0', class: { sheet: true, [this.position]: true, [widthClass]: true }, style: sideSheetStyle }, index.h("div", { key: '82207996d3f164f4e4a27132a64d6ce6b82ac401', class: "title-container" }, index.h("div", { key: 'e29501f861893b9e61f72509c44c337e7d1a5fb1', class: "close-button" }, index.h("stencil-icon-button", { key: '8980a42b0d47582a0fd91998cafe5c57982e9c04',
|
|
436
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
437
|
+
icon: Close24__default.default, onClick: this.onClose, secondary: true })), index.h("div", { key: '6b71ecb62ed1bac4560ca3e8e4ff1f643ee98555', class: "title-text" }, index.h("unity-typography", { key: 'b5f420d289dd23f040100d82def0ff635038cafd', variant: "h6" }, this.title)), (this.headerActionButtonLabel || ((_a = this.headerSecondaryButtons) === null || _a === void 0 ? void 0 : _a.length) > 0) && (index.h("div", { key: '65b8198f2a63096839fa678b6b69761ea2a93196', class: "header-action-button" }, (_b = this.headerSecondaryButtons) === null || _b === void 0 ? void 0 :
|
|
438
|
+
_b.map((item) => (index.h("udp-button", { variant: "outlined", disabled: item.disabled, onClick: item.onClick, endIcon: item.icon }, item.label))), this.headerActionButtonLabel && (index.h("udp-button", { key: 'a9985bcd675163a0a3dc47ea88cfe35e98a830fb', disabled: this.headerActionButtonDisabled, onClick: this.onHeaderActionButtonClick,
|
|
439
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
440
|
+
startIcon: headerStartIcon, variant: "contained" }, this.headerActionButtonLabel))))), index.h("div", { key: '362358edc955be022239e6662a0403baf49a4444', class: "loader-container" }, index.h("udp-linear-loader", { key: '0f93c37fc52e8400fbdb2d0db0879b49eb605859', class: { 'is-loading': this.loading }, color: "primary" })), index.h("div", { key: 'a2e70b272eb6f02878845350b7057908fdbb0cb2', class: { content: true, padding: this.padding } }, index.h("slot", { key: 'c6128fac4e8549fda3c25db826ed0377759a3bbb' })), (this.primaryButtonLabel || ((_c = this.footerSecondaryButtons) === null || _c === void 0 ? void 0 : _c.length) > 0) && (index.h("div", { key: '2d408d1f87df636effab01487739762b52c8897f' }, index.h("div", { key: '2fbdee5102a9837cc26d3f0cafb37141ebcc1527', class: "loader-container" }), index.h("div", { key: '8ba75738ab5ac6c4d33f828988f2d1e85ae1e3d5', class: {
|
|
441
|
+
footer: true,
|
|
442
|
+
}, ref: el => (this.footerRef = el) }, !this.showOverflowButton && ((_d = this.footerSecondaryButtons) === null || _d === void 0 ? void 0 : _d.length) > 0 && (index.h("div", { key: '13c00f7ff092655600f11885ce39d9acd4b9b26a', class: "footer-secondary-buttons-container" }, index.h("div", { key: '9bc81711a693c84bdab3274e67588193dc226203', class: "footer-secondary-buttons" }, (_e = this.footerSecondaryButtons) === null || _e === void 0 ? void 0 : _e.map((item) => (index.h("udp-button", { variant: "outlined", disabled: item.disabled, onClick: item.onClick, endIcon: item.icon }, item.label)))))), this.showOverflowButton && (index.h("udp-button", { key: '92c871d74675c9fd42ac890d9c5efe8e39a6aeb2', variant: "outlined", onClick: this.onMoreActionButtonClick, color: "secondary",
|
|
443
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
444
|
+
endIcon: overflowIcon }, "More")), this.primaryButtonLabel && (index.h("udp-button", { key: '94acda01904ab4265ced91dd6ef6e6d9ab788784', variant: "contained", disabled: this.primaryButtonDisabled, onClick: this.onPrimaryButtonClick, endIcon: this.primaryButtonIcon }, this.primaryButtonLabel)), this.showOverflowButton && (index.h("udp-pop-over", { key: 'c839371b5401fb7433417cba6b705c08c2242c09', anchorElement: this.overflowMenuAnchor, isOpen: this.openOverflowMenu, popoverWidth: '200px', popoverMaxHeight: '300px', handleOnClose: this.handleCloseOverflowMenu }, index.h("div", { key: '368023d9643a123acfa8215dab9ceaa85e613fbf', class: "menu" }, (_f = this.footerSecondaryButtons) === null || _f === void 0 ? void 0 : _f.map(item => (index.h("udp-menu-item", { label: item === null || item === void 0 ? void 0 : item.label, iconName: item === null || item === void 0 ? void 0 : item.icon, onItemClick: () => {
|
|
445
|
+
item === null || item === void 0 ? void 0 : item.onClick();
|
|
446
|
+
this.handleCloseOverflowMenu();
|
|
447
|
+
}, disabled: item === null || item === void 0 ? void 0 : item.disabled })))))), index.h("div", { key: '2dfb53eb181826fce129e856a4427da9edaeb756', ref: el => (this.measurementContainerRef = el), style: {
|
|
448
|
+
position: 'absolute',
|
|
449
|
+
visibility: 'hidden',
|
|
450
|
+
pointerEvents: 'none',
|
|
451
|
+
display: 'flex',
|
|
452
|
+
gap: 'var(--spacing-02, 4px)',
|
|
453
|
+
}, "aria-hidden": "true" }, (_g = this.footerSecondaryButtons) === null || _g === void 0 ? void 0 :
|
|
454
|
+
_g.map((item) => (index.h("udp-button", { variant: "text", size: "medium", disabled: item.disabled, endIcon: item.icon }, item.label))), this.primaryButtonLabel && (index.h("udp-button", { key: '5e6f99245f8649cbacfee9c34a88967966c2e856', variant: "contained", size: "medium", disabled: this.primaryButtonDisabled, endIcon: this.primaryButtonIcon }, this.primaryButtonLabel)))))))));
|
|
267
455
|
}
|
|
268
456
|
get hostEl() { return index.getElement(this); }
|
|
269
457
|
static get watchers() { return {
|
|
270
|
-
"open": ["handleOpenChange"]
|
|
458
|
+
"open": ["handleOpenChange"],
|
|
459
|
+
"footerSecondaryButtons": ["handleSecondaryButtonsChange"]
|
|
271
460
|
}; }
|
|
272
461
|
};
|
|
273
462
|
UdpSideSheet.style = udpSideSheetCss;
|
|
@@ -95,11 +95,11 @@ const UdpMap = class {
|
|
|
95
95
|
}
|
|
96
96
|
//////////////////////////////////////////////////////////RENDER/////////////////////////////////////////////////////
|
|
97
97
|
render() {
|
|
98
|
-
return (index.h("map-component", { key: '
|
|
98
|
+
return (index.h("map-component", { key: 'dbea383c45161505aff8965d3bfbd925ccce570b', handleSetMapComponent: this.handleSetMapComponent, data: this.data, isGeoJsonFormat: this.isGeoJsonFormat, geoJsonMappingConfig: this.geoJsonMappingConfig, enableZoom: this.enableZoom, mapZoom: this.mapZoom, mapCenter: this.mapCenter, mapHeight: this.mapHeight, crs: this.crs, mapProjection: this.mapProjection, mapDataProjection: this.mapDataProjection, getFilteredMapData: this.getFilteredMapData, getFeatureStyles: this.getFeatureStyles, getSelectedFeatureStyles: this.getSelectedFeatureStyles, filterPanel: this.filterPanel, filterPanelCallback: this.filterPanelCallback, enableTileSelection: this.enableTileSelection, tileLayersOptions: this.tileLayersOptions, defaultTileOptionName: this.defaultTileOptionName, layerOptions: this.layerOptions, initialSelectedLayers: this.initialSelectedLayers, bulkSelectedFeaturesActionPanel: this.bulkSelectedFeaturesActionPanel, handleSetSelectedFeaturesOnBulkSelect: this.handleSetSelectedFeaturesOnBulkSelect, handleSetSelectedFeatureOnSelect: this.handleSetSelectedFeatureOnSelect, filterLayersByRole: this.filterLayersByRole, layerKeys: this.layerKeys, layerKeySeparator: this.layerKeySeparator, user: this.user, layerRoles: this.layerRoles, filteredLayerOptionsByRole: this.filteredLayerOptionsByRole, handleSetFilteredLayerOptionsByRole: this.handleSetFilteredLayerOptionsByRole, readOnlyMap: this.readOnlyMap, enableViewFeature: this.enableViewFeature, handleViewFeature: this.handleViewFeature, bulkSelectionActive: this.bulkSelectionActive, splitActive: this.splitActive, enableDragBox: this.enableDragBox, selectFeatureInteraction: this.selectFeatureInteraction, handleSetSelectedFeatureProperties: this.handleSetSelectedFeatureProperties, selectedFeatureCoordinates: this.selectedFeatureCoordinates, selectedFeatureProperties: this.selectedFeatureProperties, enableAddNewFeature: this.enableAddNewFeature, handleGetZoomExtent: this.handleGetZoomExtent, selectedLayers: this.selectedLayers, handleSetSelectedLayers: val => {
|
|
99
99
|
this.updateSelectedLayers(val);
|
|
100
|
-
}, readOnlyLayers: this.readOnlyLayers, additionalOnclosePopover: this.additionalOnclosePopover, popoverPrimaryActions: this.popoverPrimaryActions, popoverMoreIconButtonActions: this.popoverMoreIconButtonActions, getMessagePopover: this.getMessagePopover, getMessageIconPopover: this.getMessageIconPopover, hideMessageIconPopover: this.hideMessageIconPopover, popoverCardConfig: this.cardConfig, popoverWidth: this.popoverWidth, handleGetAdditionalFeaturePropertiesOnSelect: this.handleGetAdditionalFeaturePropertiesOnSelect, minZoom: this.minZoom, maxZoom: this.maxZoom }, this.enableToolbar && (index.h("udp-map-toolbar", { key: '
|
|
100
|
+
}, readOnlyLayers: this.readOnlyLayers, additionalOnclosePopover: this.additionalOnclosePopover, popoverPrimaryActions: this.popoverPrimaryActions, popoverMoreIconButtonActions: this.popoverMoreIconButtonActions, getMessagePopover: this.getMessagePopover, getMessageIconPopover: this.getMessageIconPopover, hideMessageIconPopover: this.hideMessageIconPopover, popoverCardConfig: this.cardConfig, popoverWidth: this.popoverWidth, handleGetAdditionalFeaturePropertiesOnSelect: this.handleGetAdditionalFeaturePropertiesOnSelect, minZoom: this.minZoom, maxZoom: this.maxZoom }, this.enableToolbar && (index.h("udp-map-toolbar", { key: 'd62be8bc2f358155b349688ac9ddd27c4ee95594', map: this.map, mapTitle: this.mapTitle, mapProjection: this.mapProjection, getFeatureStyles: this.getFeatureStyles, getSelectedFeatureStyles: this.getSelectedFeatureStyles, filterPanel: this.filterPanel, enableTileSelection: this.enableTileSelection, tileLayersOptions: this.tileLayersOptions, defaultTileOptionName: this.defaultTileOptionName, layerOptions: this.layerOptions, bulkSelectedFeaturesActionPanel: this.bulkSelectedFeaturesActionPanel, handleSetSelectedFeaturesOnBulkSelect: this.handleSetSelectedFeaturesOnBulkSelect, handleRefresh: this.handleRefresh, refreshButtonTooltip: this.refreshButtonTooltip, readOnlyMap: this.readOnlyMap, enableAdd: this.enableAdd, handleAddNewFeatures: this.handleAddNewFeatures, addMultipleFeatures: this.addMultipleFeatures, enableSplitFeature: this.enableSplitFeature, handleSplitFeature: this.handleSplitFeature, handleSetSelectedFeatureProperties: this.handleSetSelectedFeatureProperties, filteredLayerOptionsByRole: this.filteredLayerOptionsByRole, handleSetBulkSelectionActive: this.handleSetBulkSelectionActive, enableDragBox: this.enableDragBox, handleSetEnableDragBox: this.handleSetEnableDragBox, splitActive: this.splitActive, handleSetSplitActive: this.handleSetSplitActive, selectFeatureInteraction: this.selectFeatureInteraction, enableAddNewFeature: this.enableAddNewFeature, handleEnableAddNewFeature: this.handleEnableAddNewFeature, handleSelectLayersCallback: this.handleSelectLayersCallback, selectedLayers: this.selectedLayers, handleSetSelectedLayers: val => {
|
|
101
101
|
this.updateSelectedLayers(val);
|
|
102
|
-
}, addFeaturePanelConfig: this.addFeaturePanelConfig })), index.h("slot", { key: '
|
|
102
|
+
}, addFeaturePanelConfig: this.addFeaturePanelConfig })), index.h("slot", { key: 'f2753f5f595726febc44235dbc1e728c1763da64' })));
|
|
103
103
|
}
|
|
104
104
|
static get watchers() { return {
|
|
105
105
|
"enableDragBox": ["watchDragBoxandSelectedFeatureInteraction"],
|
|
@@ -22,7 +22,7 @@ const UdpPage = class {
|
|
|
22
22
|
padding: this.padding,
|
|
23
23
|
margin: '0 auto', // Centers the content if max-width is set
|
|
24
24
|
};
|
|
25
|
-
return (index.h("div", { key: '
|
|
25
|
+
return (index.h("div", { key: '9a506250a5ee7200c405e7f3fe0a018dda294ab4', style: style }, index.h("slot", { key: 'eea699d0fed23736cfe071b86ac1449a52f51b0f' }), " "));
|
|
26
26
|
}
|
|
27
27
|
};
|
|
28
28
|
UdpPage.style = udpPageCss;
|
|
@@ -57,7 +57,7 @@ const UdpSplitScreen = class {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
render() {
|
|
60
|
-
return (index.h("div", { key: '
|
|
60
|
+
return (index.h("div", { key: 'ca232222c0c85071eb987d373ad1541631070e3e', ref: (el) => this.element = el, class: { 'container': true, 'open': this.isOpen } }, index.h("div", { key: 'c221965b0e7542253986c878b05cc656289431e9', class: "panel", style: { width: `${this.panelWidth}%` } }, index.h("slot", { key: '4edf17b48cf6d2e89826878ede587f0a9e2ce1e8', name: "first-panel" })), index.h("div", { key: '51b5ea69206ebf1221cbb9dbed3f9456fbf54c59', class: "resizer", onMouseDown: (event) => event.preventDefault() }, index.h("div", { key: '86d906ebb8e8561e7e564b6c8b4af62a03e1653c', class: "drag-handle" })), index.h("div", { key: '28fba6e4b0f176b7e08c1f29a3edc045f66346e8', class: "panel", style: { width: `${100 - this.panelWidth}%` } }, index.h("slot", { key: 'b1215db69a194eced28d595a39322afbe4c7ccde', name: "second-panel" }, this.panelContent))));
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
63
|
UdpSplitScreen.style = udpSplitScreenCss;
|