udp-stencil-component-library 25.18.1-beta.7 → 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 +63 -60
- 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/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 +2 -2
- package/dist/cjs/udp-vertical-spacer.cjs.entry.js +1 -1
- 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.js +2 -2
- package/dist/collection/components/my-component/UI/tabs/tab/udp-tab.js +1 -1
- package/dist/collection/components/my-component/UI/tabs/udp-tab-panel/udp-tab-panel.js +2 -2
- 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.js +2 -2
- package/dist/components/udp-tab2.js +1 -1
- package/dist/components/udp-tabs2.js +2 -2
- 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 +123 -28
- package/dist/esm/add-map-feature-popup_4.entry.js +12 -12
- package/dist/esm/advanced-search_50.entry.js +63 -60
- 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/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 +2 -2
- 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.js +1 -1
- 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.d.ts +83 -0
- package/package.json +1 -1
|
@@ -19,19 +19,19 @@ const UdpFormsListCard = class {
|
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
render() {
|
|
22
|
-
const contentJsx = (h(Fragment, { key: '
|
|
23
|
-
const actionsJsx = (h(Fragment, { key: '
|
|
22
|
+
const contentJsx = (h(Fragment, { key: '65c992b567d2b0e80b93819c760400ea0ee2b813' }, h("unity-typography", { key: '327ad8c6680dedd7fa1c12b50d62b2bd5763428b', variant: "body1", color: "textSecondary" }, "Version: ", this.data.version), !this.isSideSheetList && (h("unity-typography", { key: '78cfdb94dfc0dff690c18e23e0d07263c25c94c3', variant: "body1", color: "textSecondary" }, "Last Modified: ", new Date(this.data.lastModifiedOn).toLocaleDateString())), 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()), h("unity-typography", { key: '62137e05a5c76a334369f839ce589b8bc71a1f9b', variant: "body1", color: "textSecondary" }, "Form Type: ", UdpFormsTypeEnum[this.data.type])));
|
|
23
|
+
const actionsJsx = (h(Fragment, { key: '11b0965f017d6bcfc290bf81892e8bd3dd18730d' }, h("stencil-icon-button", { key: 'b976c977cbdbce0a843b54845147837dbd553f20', icon: Edit16, tooltip: "Open in Form Builder", onClick: e => {
|
|
24
24
|
e.stopPropagation();
|
|
25
25
|
this.formBuilderHandler();
|
|
26
|
-
} }), !this.isSideSheetList && (h("stencil-icon-button", { key: '
|
|
26
|
+
} }), !this.isSideSheetList && (h("stencil-icon-button", { key: 'da6b8f48a2004f82765561b34cfd6f2c5b99dc9e', icon: View16, tooltip: "View in Form Renderer", onClick: e => {
|
|
27
27
|
e.stopPropagation();
|
|
28
28
|
this.formRendererHandler();
|
|
29
|
-
} })), !this.isSideSheetList && (h("stencil-icon-button", { key: '
|
|
29
|
+
} })), !this.isSideSheetList && (h("stencil-icon-button", { key: '081db624c49cd5cbc5888c349a601c177f96b8ef', icon: ChevronRight24, tooltip: "See Version History", onClick: e => {
|
|
30
30
|
var _a;
|
|
31
31
|
e.stopPropagation();
|
|
32
32
|
(_a = this.openSideSheet) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
33
33
|
} }))));
|
|
34
|
-
return (h("udp-card", { key: '
|
|
34
|
+
return (h("udp-card", { key: '6e0572787731e49edb74b9b8d3e9f04e0f09ce57', cardTitle: this.data.name, subheader: this.data.description, actions: actionsJsx, onTitleClick: this.handleTitleClick, disableContentPadding: true, adornmentStatus: 'info' }, contentJsx));
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
|
|
@@ -177,7 +177,7 @@ const UdpFormsList = class {
|
|
|
177
177
|
return this.errorMessage ? (h("div", { class: "error-banner" }, h("unity-typography", { variant: "body2" }, this.errorMessage))) : null;
|
|
178
178
|
}
|
|
179
179
|
render() {
|
|
180
|
-
return (h("div", { key: '
|
|
180
|
+
return (h("div", { key: 'e10e187f8b796620e07cbe5de09304b3ff806f9d', class: "udp-forms-list-container" }, h("primary-action-header", { key: 'c07a9deced2ebc01319ac7aa75ff81458e810b7d', title: "UDP Forms", primaryActionClick: () => this.handleHeaderPrimaryActionClick(), actionButtonLabel: "Create New Form", tabs: false }), this.isLoading && h("udp-linear-loader", { key: 'bd0b7aa584dd74d1aa610d276166a7ade78ec39b' }), this.renderSideSheet(), h("udp-container", { key: '9db380a8bc34671684f133f35d2af4634bfe13c4', maxWidth: "lg" }, this.renderErrorMessage(), this.renderFilters(), 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' })), h("udp-forms-list-card", { key: '83c6afb79ecbd9154229bb4ee571290af0ce43cc', style: { display: 'none' } }), h("div", { key: '5f8ee58dc8cdd79db5cf8f4c8e487ddb3b005e9d', style: { height: '60px' } })));
|
|
181
181
|
}
|
|
182
182
|
get el() { return getElement(this); }
|
|
183
183
|
static get watchers() { return {
|
|
@@ -948,7 +948,7 @@ const UdpFormsRenderer = class {
|
|
|
948
948
|
return (h("udp-side-sheet", { title: "Link a Follow Up Form", open: this.isFollowUpFormsSideSheetOpen, onUdpSideSheetClose: () => this.handleSideSheetClose(), position: "right", width: "md" }, this.isLoading && this.isFollowUpFormsSideSheetOpen && h("udp-linear-loader", null), 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' })));
|
|
949
949
|
}
|
|
950
950
|
render() {
|
|
951
|
-
return (h("div", { key: '
|
|
951
|
+
return (h("div", { key: 'd14ce715fb3aff8f995332816c18c501e88b1ade', class: "forms-renderer-container" }, this.renderFollowUpSideSheet(), h("udp-forms-ui", { udpForm: this.udpForm, initialValues: this.initialValues, udpFormSubmission: this.udpFormSubmission, submitSuccessful: this.submitSuccessful, isSaving: this.isSaving, saveErrorMessage: this.saveErrorMessage,
|
|
952
952
|
// showAutoSaveStatus={this.formSubmissionHandler.supportsAutoSave() && !!this.userId}
|
|
953
953
|
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 })));
|
|
954
954
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"udp-list-renderer.udp-pagination.udp-side-sheet.entry.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":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"udp-list-renderer.udp-pagination.udp-side-sheet.entry.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":[],"mappings":"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"}
|
|
@@ -198,7 +198,7 @@ const UdpPagination = class {
|
|
|
198
198
|
};
|
|
199
199
|
UdpPagination.style = udpPaginationCss;
|
|
200
200
|
|
|
201
|
-
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-
|
|
201
|
+
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;}";
|
|
202
202
|
|
|
203
203
|
const UdpSideSheet = class {
|
|
204
204
|
constructor(hostRef) {
|
|
@@ -206,62 +206,251 @@ const UdpSideSheet = class {
|
|
|
206
206
|
this.udpSideSheetClose = createEvent(this, "udpSideSheetClose");
|
|
207
207
|
this.udpPrimaryButtonClick = createEvent(this, "udpPrimaryButtonClick");
|
|
208
208
|
this.udpHeaderActionButtonClick = createEvent(this, "udpHeaderActionButtonClick");
|
|
209
|
+
/** When true, the side sheet is open and visible */
|
|
209
210
|
this.open = false;
|
|
211
|
+
/** Position of the sheet on the screen */
|
|
210
212
|
this.position = 'right';
|
|
213
|
+
/** Width preset or a numeric pixel width */
|
|
211
214
|
this.width = 'md';
|
|
215
|
+
/** Controls whether default inner padding is applied */
|
|
212
216
|
this.padding = true;
|
|
217
|
+
/** When true, shows a top loader */
|
|
213
218
|
this.loading = false;
|
|
219
|
+
/** Whether the header action button is disabled */
|
|
214
220
|
this.headerActionButtonDisabled = false;
|
|
221
|
+
/** Whether the primary footer button is disabled */
|
|
215
222
|
this.primaryButtonDisabled = false;
|
|
223
|
+
/** Whether the footer should show the overflow "More" button */
|
|
224
|
+
this.showOverflowButton = false;
|
|
225
|
+
/** Whether the overflow popover is open */
|
|
226
|
+
this.openOverflowMenu = false;
|
|
227
|
+
this.visibleSecondaryButtons = [];
|
|
228
|
+
this.overflowSecondaryButtons = [];
|
|
229
|
+
/** Saved original document.body.overflow value to restore on close */
|
|
216
230
|
this.originalBodyOverflow = '';
|
|
231
|
+
/** Saved original document.body.paddingRight value to restore on close */
|
|
232
|
+
this.originalBodyPaddingRight = '';
|
|
233
|
+
/**
|
|
234
|
+
* Transition end handler used to remove the host element from body after close.
|
|
235
|
+
*
|
|
236
|
+
* @private
|
|
237
|
+
*/
|
|
217
238
|
this.handleTransitionEnd = () => {
|
|
218
239
|
if (!this.open && this.hostEl.parentElement === document.body) {
|
|
219
240
|
document.body.removeChild(this.hostEl);
|
|
220
241
|
}
|
|
221
242
|
};
|
|
243
|
+
/**
|
|
244
|
+
* Close the side sheet and emit close event.
|
|
245
|
+
*
|
|
246
|
+
* @private
|
|
247
|
+
*/
|
|
222
248
|
this.onClose = () => {
|
|
223
249
|
this.open = false;
|
|
224
250
|
this.udpSideSheetClose.emit();
|
|
225
251
|
};
|
|
252
|
+
/**
|
|
253
|
+
* Backdrop click handler. Only closes when clicking the backdrop itself.
|
|
254
|
+
*
|
|
255
|
+
* @param e - MouseEvent from the backdrop click
|
|
256
|
+
* @private
|
|
257
|
+
*/
|
|
258
|
+
this.onCloseBackdrop = (e) => {
|
|
259
|
+
if (e.target === e.currentTarget) {
|
|
260
|
+
this.onClose();
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
/**
|
|
264
|
+
* Emit primary footer button click event.
|
|
265
|
+
*
|
|
266
|
+
* @private
|
|
267
|
+
*/
|
|
226
268
|
this.onPrimaryButtonClick = () => {
|
|
227
269
|
this.udpPrimaryButtonClick.emit();
|
|
228
270
|
};
|
|
229
|
-
|
|
271
|
+
/**
|
|
272
|
+
* Emit header action button click event.
|
|
273
|
+
*
|
|
274
|
+
* @private
|
|
275
|
+
*/
|
|
230
276
|
this.onHeaderActionButtonClick = () => {
|
|
231
277
|
this.udpHeaderActionButtonClick.emit();
|
|
232
278
|
};
|
|
279
|
+
/**
|
|
280
|
+
* Open overflow menu anchored to the clicked element.
|
|
281
|
+
*
|
|
282
|
+
* @param event - MouseEvent from the "More" button click
|
|
283
|
+
* @private
|
|
284
|
+
*/
|
|
285
|
+
this.onMoreActionButtonClick = (event) => {
|
|
286
|
+
this.overflowMenuAnchor = event.currentTarget;
|
|
287
|
+
this.openOverflowMenu = true;
|
|
288
|
+
};
|
|
289
|
+
/**
|
|
290
|
+
* Close the overflow popover.
|
|
291
|
+
*
|
|
292
|
+
* @param e - optional KeyboardEvent or MouseEvent (unused)
|
|
293
|
+
* @private
|
|
294
|
+
*/
|
|
295
|
+
this.handleCloseOverflowMenu = () => {
|
|
296
|
+
this.openOverflowMenu = false;
|
|
297
|
+
};
|
|
233
298
|
}
|
|
299
|
+
/**
|
|
300
|
+
* Watcher for `open` prop. Handles portal append/removal and body scroll lock.
|
|
301
|
+
*
|
|
302
|
+
* @param newValue - new value of the `open` prop
|
|
303
|
+
* @param oldValue - previous value of the `open` prop
|
|
304
|
+
*/
|
|
234
305
|
handleOpenChange(newValue, oldValue) {
|
|
235
306
|
if (newValue === oldValue) {
|
|
236
307
|
return;
|
|
237
308
|
}
|
|
238
309
|
if (newValue) {
|
|
310
|
+
// Calculate scrollbar width before hiding it
|
|
311
|
+
const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
|
|
312
|
+
// Save original values
|
|
239
313
|
this.originalBodyOverflow = document.body.style.overflow;
|
|
240
|
-
document.body.style.
|
|
314
|
+
this.originalBodyPaddingRight = document.body.style.paddingRight;
|
|
241
315
|
document.body.appendChild(this.hostEl);
|
|
316
|
+
// Add padding to compensate for scrollbar
|
|
317
|
+
if (scrollbarWidth > 0) {
|
|
318
|
+
const currentPadding = parseInt(window.getComputedStyle(document.body).paddingRight) || 0;
|
|
319
|
+
document.body.style.paddingRight = `${currentPadding + scrollbarWidth}px`;
|
|
320
|
+
}
|
|
321
|
+
document.body.style.overflow = 'hidden';
|
|
242
322
|
requestAnimationFrame(() => {
|
|
243
323
|
this.hostEl.classList.add('is-visible');
|
|
324
|
+
// Check overflow after the side sheet is visible
|
|
325
|
+
setTimeout(() => this.checkOverflow(), 50);
|
|
244
326
|
});
|
|
245
327
|
}
|
|
246
328
|
else {
|
|
247
329
|
this.hostEl.classList.remove('is-visible');
|
|
248
330
|
document.body.style.overflow = this.originalBodyOverflow;
|
|
331
|
+
document.body.style.paddingRight = this.originalBodyPaddingRight;
|
|
249
332
|
this.hostEl.addEventListener('transitionend', this.handleTransitionEnd, { once: true });
|
|
250
333
|
}
|
|
251
334
|
}
|
|
335
|
+
/**
|
|
336
|
+
* Watcher for footer secondary buttons changes. Triggers overflow recalculation.
|
|
337
|
+
*/
|
|
338
|
+
handleSecondaryButtonsChange() {
|
|
339
|
+
// Recheck overflow when buttons change
|
|
340
|
+
setTimeout(() => this.checkOverflow(), 50);
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Measures footer buttons in an offscreen container and sets `showOverflowButton`.
|
|
344
|
+
* Safely returns early if required refs are unavailable.
|
|
345
|
+
*/
|
|
346
|
+
checkOverflow() {
|
|
347
|
+
if (!this.footerRef || !this.measurementContainerRef) {
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
if (!this.footerSecondaryButtons || this.footerSecondaryButtons.length === 0) {
|
|
351
|
+
this.showOverflowButton = false;
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
354
|
+
// Get the footer container width (minus padding)
|
|
355
|
+
const footerWidth = this.footerRef.offsetWidth;
|
|
356
|
+
const footerStyle = window.getComputedStyle(this.footerRef);
|
|
357
|
+
const footerPaddingLeft = parseFloat(footerStyle.paddingLeft);
|
|
358
|
+
const footerPaddingRight = parseFloat(footerStyle.paddingRight);
|
|
359
|
+
const availableWidth = footerWidth - footerPaddingLeft - footerPaddingRight;
|
|
360
|
+
// Measure all buttons in the hidden measurement container
|
|
361
|
+
const measurementButtons = this.measurementContainerRef.querySelectorAll('udp-button');
|
|
362
|
+
let totalWidth = 0;
|
|
363
|
+
measurementButtons.forEach((button, index) => {
|
|
364
|
+
const buttonWidth = button && button instanceof HTMLElement ? button.offsetWidth : 0;
|
|
365
|
+
totalWidth += buttonWidth;
|
|
366
|
+
// Add gap spacing between buttons (except for the last one)
|
|
367
|
+
if (index < measurementButtons.length - 1) {
|
|
368
|
+
const containerStyle = window.getComputedStyle(this.measurementContainerRef);
|
|
369
|
+
const gap = parseFloat(containerStyle.gap) || 4; // Default gap from CSS
|
|
370
|
+
totalWidth += gap;
|
|
371
|
+
}
|
|
372
|
+
});
|
|
373
|
+
// Add a small buffer to prevent edge cases
|
|
374
|
+
const buffer = 10;
|
|
375
|
+
const isOverflowing = totalWidth + buffer > availableWidth;
|
|
376
|
+
this.showOverflowButton = isOverflowing;
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Lifecycle: componentDidLoad. Sets up ResizeObserver and initial overflow check.
|
|
380
|
+
*
|
|
381
|
+
* @private
|
|
382
|
+
*/
|
|
383
|
+
componentDidLoad() {
|
|
384
|
+
{
|
|
385
|
+
// Set up ResizeObserver to watch for footer size changes
|
|
386
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
387
|
+
this.checkOverflow();
|
|
388
|
+
});
|
|
389
|
+
// Initial check after a small delay to ensure DOM is ready
|
|
390
|
+
requestAnimationFrame(() => {
|
|
391
|
+
setTimeout(() => {
|
|
392
|
+
if (this.footerRef) {
|
|
393
|
+
this.resizeObserver.observe(this.footerRef);
|
|
394
|
+
}
|
|
395
|
+
this.checkOverflow();
|
|
396
|
+
}, 100);
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Lifecycle: disconnectedCallback. Restores body styles and disconnects observers.
|
|
402
|
+
*
|
|
403
|
+
* @private
|
|
404
|
+
*/
|
|
252
405
|
disconnectedCallback() {
|
|
253
406
|
if (document.body.style.overflow === 'hidden') {
|
|
254
407
|
document.body.style.overflow = this.originalBodyOverflow;
|
|
408
|
+
document.body.style.paddingRight = this.originalBodyPaddingRight;
|
|
409
|
+
}
|
|
410
|
+
// Clean up ResizeObserver
|
|
411
|
+
if (this.resizeObserver) {
|
|
412
|
+
this.resizeObserver.disconnect();
|
|
255
413
|
}
|
|
256
414
|
}
|
|
415
|
+
/**
|
|
416
|
+
* Render the component UI.
|
|
417
|
+
*
|
|
418
|
+
* @returns JSX element tree
|
|
419
|
+
* @private
|
|
420
|
+
*/
|
|
257
421
|
render() {
|
|
422
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
258
423
|
const widthClass = typeof this.width === 'number' ? 'custom-width' : this.width;
|
|
259
424
|
const sideSheetStyle = typeof this.width === 'number' ? { maxWidth: `${this.width}px` } : {};
|
|
260
|
-
|
|
425
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
426
|
+
const headerStartIcon = Boolean(this.headerActionButtonIcon) ? (h("udp-icon", { iconName: this.headerActionButtonIcon, color: "inherit" })) : undefined;
|
|
427
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
428
|
+
const overflowIcon = h("udp-icon", { key: '3262baafbf833e25e0b4d1128b24fb503d1dd157', iconName: "overflowMenuVertical", color: "inherit" });
|
|
429
|
+
return (h("div", { key: '780c5705588899683400da7bce6569ad8ce15d30', class: "backdrop", onClick: this.onCloseBackdrop }, h("div", { key: 'a68811f8a6c59239c60c048453bb63eae7ed7ee0', class: { sheet: true, [this.position]: true, [widthClass]: true }, style: sideSheetStyle }, h("div", { key: '82207996d3f164f4e4a27132a64d6ce6b82ac401', class: "title-container" }, h("div", { key: 'e29501f861893b9e61f72509c44c337e7d1a5fb1', class: "close-button" }, h("stencil-icon-button", { key: '8980a42b0d47582a0fd91998cafe5c57982e9c04',
|
|
430
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
431
|
+
icon: Close24, onClick: this.onClose, secondary: true })), h("div", { key: '6b71ecb62ed1bac4560ca3e8e4ff1f643ee98555', class: "title-text" }, h("unity-typography", { key: 'b5f420d289dd23f040100d82def0ff635038cafd', variant: "h6" }, this.title)), (this.headerActionButtonLabel || ((_a = this.headerSecondaryButtons) === null || _a === void 0 ? void 0 : _a.length) > 0) && (h("div", { key: '65b8198f2a63096839fa678b6b69761ea2a93196', class: "header-action-button" }, (_b = this.headerSecondaryButtons) === null || _b === void 0 ? void 0 :
|
|
432
|
+
_b.map((item) => (h("udp-button", { variant: "outlined", disabled: item.disabled, onClick: item.onClick, endIcon: item.icon }, item.label))), this.headerActionButtonLabel && (h("udp-button", { key: 'a9985bcd675163a0a3dc47ea88cfe35e98a830fb', disabled: this.headerActionButtonDisabled, onClick: this.onHeaderActionButtonClick,
|
|
433
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
434
|
+
startIcon: headerStartIcon, variant: "contained" }, this.headerActionButtonLabel))))), h("div", { key: '362358edc955be022239e6662a0403baf49a4444', class: "loader-container" }, h("udp-linear-loader", { key: '0f93c37fc52e8400fbdb2d0db0879b49eb605859', class: { 'is-loading': this.loading }, color: "primary" })), h("div", { key: 'a2e70b272eb6f02878845350b7057908fdbb0cb2', class: { content: true, padding: this.padding } }, h("slot", { key: 'c6128fac4e8549fda3c25db826ed0377759a3bbb' })), (this.primaryButtonLabel || ((_c = this.footerSecondaryButtons) === null || _c === void 0 ? void 0 : _c.length) > 0) && (h("div", { key: '2d408d1f87df636effab01487739762b52c8897f' }, h("div", { key: '2fbdee5102a9837cc26d3f0cafb37141ebcc1527', class: "loader-container" }), h("div", { key: '8ba75738ab5ac6c4d33f828988f2d1e85ae1e3d5', class: {
|
|
435
|
+
footer: true,
|
|
436
|
+
}, ref: el => (this.footerRef = el) }, !this.showOverflowButton && ((_d = this.footerSecondaryButtons) === null || _d === void 0 ? void 0 : _d.length) > 0 && (h("div", { key: '13c00f7ff092655600f11885ce39d9acd4b9b26a', class: "footer-secondary-buttons-container" }, h("div", { key: '9bc81711a693c84bdab3274e67588193dc226203', class: "footer-secondary-buttons" }, (_e = this.footerSecondaryButtons) === null || _e === void 0 ? void 0 : _e.map((item) => (h("udp-button", { variant: "outlined", disabled: item.disabled, onClick: item.onClick, endIcon: item.icon }, item.label)))))), this.showOverflowButton && (h("udp-button", { key: '92c871d74675c9fd42ac890d9c5efe8e39a6aeb2', variant: "outlined", onClick: this.onMoreActionButtonClick, color: "secondary",
|
|
437
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
438
|
+
endIcon: overflowIcon }, "More")), this.primaryButtonLabel && (h("udp-button", { key: '94acda01904ab4265ced91dd6ef6e6d9ab788784', variant: "contained", disabled: this.primaryButtonDisabled, onClick: this.onPrimaryButtonClick, endIcon: this.primaryButtonIcon }, this.primaryButtonLabel)), this.showOverflowButton && (h("udp-pop-over", { key: 'c839371b5401fb7433417cba6b705c08c2242c09', anchorElement: this.overflowMenuAnchor, isOpen: this.openOverflowMenu, popoverWidth: '200px', popoverMaxHeight: '300px', handleOnClose: this.handleCloseOverflowMenu }, h("div", { key: '368023d9643a123acfa8215dab9ceaa85e613fbf', class: "menu" }, (_f = this.footerSecondaryButtons) === null || _f === void 0 ? void 0 : _f.map(item => (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: () => {
|
|
439
|
+
item === null || item === void 0 ? void 0 : item.onClick();
|
|
440
|
+
this.handleCloseOverflowMenu();
|
|
441
|
+
}, disabled: item === null || item === void 0 ? void 0 : item.disabled })))))), h("div", { key: '2dfb53eb181826fce129e856a4427da9edaeb756', ref: el => (this.measurementContainerRef = el), style: {
|
|
442
|
+
position: 'absolute',
|
|
443
|
+
visibility: 'hidden',
|
|
444
|
+
pointerEvents: 'none',
|
|
445
|
+
display: 'flex',
|
|
446
|
+
gap: 'var(--spacing-02, 4px)',
|
|
447
|
+
}, "aria-hidden": "true" }, (_g = this.footerSecondaryButtons) === null || _g === void 0 ? void 0 :
|
|
448
|
+
_g.map((item) => (h("udp-button", { variant: "text", size: "medium", disabled: item.disabled, endIcon: item.icon }, item.label))), this.primaryButtonLabel && (h("udp-button", { key: '5e6f99245f8649cbacfee9c34a88967966c2e856', variant: "contained", size: "medium", disabled: this.primaryButtonDisabled, endIcon: this.primaryButtonIcon }, this.primaryButtonLabel)))))))));
|
|
261
449
|
}
|
|
262
450
|
get hostEl() { return getElement(this); }
|
|
263
451
|
static get watchers() { return {
|
|
264
|
-
"open": ["handleOpenChange"]
|
|
452
|
+
"open": ["handleOpenChange"],
|
|
453
|
+
"footerSecondaryButtons": ["handleSecondaryButtonsChange"]
|
|
265
454
|
}; }
|
|
266
455
|
};
|
|
267
456
|
UdpSideSheet.style = udpSideSheetCss;
|
|
@@ -93,11 +93,11 @@ const UdpMap = class {
|
|
|
93
93
|
}
|
|
94
94
|
//////////////////////////////////////////////////////////RENDER/////////////////////////////////////////////////////
|
|
95
95
|
render() {
|
|
96
|
-
return (h("map-component", { key: '
|
|
96
|
+
return (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 => {
|
|
97
97
|
this.updateSelectedLayers(val);
|
|
98
|
-
}, 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 && (h("udp-map-toolbar", { key: '
|
|
98
|
+
}, 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 && (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 => {
|
|
99
99
|
this.updateSelectedLayers(val);
|
|
100
|
-
}, addFeaturePanelConfig: this.addFeaturePanelConfig })), h("slot", { key: '
|
|
100
|
+
}, addFeaturePanelConfig: this.addFeaturePanelConfig })), h("slot", { key: 'f2753f5f595726febc44235dbc1e728c1763da64' })));
|
|
101
101
|
}
|
|
102
102
|
static get watchers() { return {
|
|
103
103
|
"enableDragBox": ["watchDragBoxandSelectedFeatureInteraction"],
|
|
@@ -20,7 +20,7 @@ const UdpPage = class {
|
|
|
20
20
|
padding: this.padding,
|
|
21
21
|
margin: '0 auto', // Centers the content if max-width is set
|
|
22
22
|
};
|
|
23
|
-
return (h("div", { key: '
|
|
23
|
+
return (h("div", { key: '9a506250a5ee7200c405e7f3fe0a018dda294ab4', style: style }, h("slot", { key: 'eea699d0fed23736cfe071b86ac1449a52f51b0f' }), " "));
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
UdpPage.style = udpPageCss;
|
|
@@ -55,7 +55,7 @@ const UdpSplitScreen = class {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
render() {
|
|
58
|
-
return (h("div", { key: '
|
|
58
|
+
return (h("div", { key: 'ca232222c0c85071eb987d373ad1541631070e3e', ref: (el) => this.element = el, class: { 'container': true, 'open': this.isOpen } }, h("div", { key: 'c221965b0e7542253986c878b05cc656289431e9', class: "panel", style: { width: `${this.panelWidth}%` } }, h("slot", { key: '4edf17b48cf6d2e89826878ede587f0a9e2ce1e8', name: "first-panel" })), h("div", { key: '51b5ea69206ebf1221cbb9dbed3f9456fbf54c59', class: "resizer", onMouseDown: (event) => event.preventDefault() }, h("div", { key: '86d906ebb8e8561e7e564b6c8b4af62a03e1653c', class: "drag-handle" })), h("div", { key: '28fba6e4b0f176b7e08c1f29a3edc045f66346e8', class: "panel", style: { width: `${100 - this.panelWidth}%` } }, h("slot", { key: 'b1215db69a194eced28d595a39322afbe4c7ccde', name: "second-panel" }, this.panelContent))));
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
61
|
UdpSplitScreen.style = udpSplitScreenCss;
|
|
@@ -92,7 +92,7 @@ const UdpStepperDemo = class {
|
|
|
92
92
|
};
|
|
93
93
|
}
|
|
94
94
|
render() {
|
|
95
|
-
return (h("div", { key: '
|
|
95
|
+
return (h("div", { key: 'e81619ca3c31f9f6662c0b3af6c02a2db3e3f564', style: { padding: '2rem' } }, h("unity-typography", { key: '5e11e57915b6081e460f47a344dd31bf722d7e5b', variant: "h2" }, "Horizontal Stepper with Labels bottom"), h("udp-stepper", { key: 'ec35e19cc92d59c85818becd4e4d56e065df5dc3', steps: this.steps, activeStep: this.activeStep, completed: this.completed, stepChange: this.handleStepChange, orientation: "horizontal", labelDisplay: "all", labelPosition: "bottom" }), h("unity-typography", { key: 'f0011595e8eb435dd85b6c6c2570029a3cbd6afc', variant: "h2" }, "Horizontal Stepper without Labels"), h("udp-stepper", { key: 'afe54dc4d369c757dcb6ba5fe455e84c95e86f07', steps: this.steps, activeStep: this.activeStep, completed: this.completed, stepChange: this.handleStepChange, orientation: "horizontal", labelDisplay: "none", labelPosition: "bottom" }), h("unity-typography", { key: '394396ffff23cc1f4d99611bc3ccceeb096a2c1e', variant: "h2" }, "Horizontal Stepper with Labels to Right"), h("udp-stepper", { key: '104aaf080e02cd0c9da8a84cf911b721883e0a37', steps: this.steps, activeStep: this.activeStep, completed: this.completed, stepChange: this.handleStepChange, orientation: "horizontal", labelDisplay: "all", labelPosition: "right" }), h("unity-typography", { key: '90b1aaf901ca38b48c5584c0fb79d75a0f5a2a8c', variant: "h2" }, "Vertical Stepper"), h("udp-stepper", { key: '219567475d5ea693bd77641df12c20ee9360367d', steps: this.steps, activeStep: this.activeStep, completed: this.completed, stepChange: this.handleStepChange, orientation: "vertical", labelDisplay: "all", labelPosition: "right" })));
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
98
|
|