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
|
@@ -1,59 +1,251 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable stencil/strict-boolean-conditions */
|
|
2
|
+
import { h, Build, } from "@stencil/core";
|
|
2
3
|
import Close24 from "@carbon/icons/es/close/24";
|
|
4
|
+
/**
|
|
5
|
+
* Side sheet component used for contextual drawers.
|
|
6
|
+
*/
|
|
3
7
|
export class UdpSideSheet {
|
|
4
8
|
constructor() {
|
|
9
|
+
/** When true, the side sheet is open and visible */
|
|
5
10
|
this.open = false;
|
|
11
|
+
/** Position of the sheet on the screen */
|
|
6
12
|
this.position = 'right';
|
|
13
|
+
/** Width preset or a numeric pixel width */
|
|
7
14
|
this.width = 'md';
|
|
15
|
+
/** Controls whether default inner padding is applied */
|
|
8
16
|
this.padding = true;
|
|
17
|
+
/** When true, shows a top loader */
|
|
9
18
|
this.loading = false;
|
|
19
|
+
/** Whether the header action button is disabled */
|
|
10
20
|
this.headerActionButtonDisabled = false;
|
|
21
|
+
/** Whether the primary footer button is disabled */
|
|
11
22
|
this.primaryButtonDisabled = false;
|
|
23
|
+
/** Whether the footer should show the overflow "More" button */
|
|
24
|
+
this.showOverflowButton = false;
|
|
25
|
+
/** Whether the overflow popover is open */
|
|
26
|
+
this.openOverflowMenu = false;
|
|
27
|
+
this.visibleSecondaryButtons = [];
|
|
28
|
+
this.overflowSecondaryButtons = [];
|
|
29
|
+
/** Saved original document.body.overflow value to restore on close */
|
|
12
30
|
this.originalBodyOverflow = '';
|
|
31
|
+
/** Saved original document.body.paddingRight value to restore on close */
|
|
32
|
+
this.originalBodyPaddingRight = '';
|
|
33
|
+
/**
|
|
34
|
+
* Transition end handler used to remove the host element from body after close.
|
|
35
|
+
*
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
13
38
|
this.handleTransitionEnd = () => {
|
|
14
39
|
if (!this.open && this.hostEl.parentElement === document.body) {
|
|
15
40
|
document.body.removeChild(this.hostEl);
|
|
16
41
|
}
|
|
17
42
|
};
|
|
43
|
+
/**
|
|
44
|
+
* Close the side sheet and emit close event.
|
|
45
|
+
*
|
|
46
|
+
* @private
|
|
47
|
+
*/
|
|
18
48
|
this.onClose = () => {
|
|
19
49
|
this.open = false;
|
|
20
50
|
this.udpSideSheetClose.emit();
|
|
21
51
|
};
|
|
52
|
+
/**
|
|
53
|
+
* Backdrop click handler. Only closes when clicking the backdrop itself.
|
|
54
|
+
*
|
|
55
|
+
* @param e - MouseEvent from the backdrop click
|
|
56
|
+
* @private
|
|
57
|
+
*/
|
|
58
|
+
this.onCloseBackdrop = (e) => {
|
|
59
|
+
if (e.target === e.currentTarget) {
|
|
60
|
+
this.onClose();
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Emit primary footer button click event.
|
|
65
|
+
*
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
22
68
|
this.onPrimaryButtonClick = () => {
|
|
23
69
|
this.udpPrimaryButtonClick.emit();
|
|
24
70
|
};
|
|
25
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Emit header action button click event.
|
|
73
|
+
*
|
|
74
|
+
* @private
|
|
75
|
+
*/
|
|
26
76
|
this.onHeaderActionButtonClick = () => {
|
|
27
77
|
this.udpHeaderActionButtonClick.emit();
|
|
28
78
|
};
|
|
79
|
+
/**
|
|
80
|
+
* Open overflow menu anchored to the clicked element.
|
|
81
|
+
*
|
|
82
|
+
* @param event - MouseEvent from the "More" button click
|
|
83
|
+
* @private
|
|
84
|
+
*/
|
|
85
|
+
this.onMoreActionButtonClick = (event) => {
|
|
86
|
+
this.overflowMenuAnchor = event.currentTarget;
|
|
87
|
+
this.openOverflowMenu = true;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Close the overflow popover.
|
|
91
|
+
*
|
|
92
|
+
* @param e - optional KeyboardEvent or MouseEvent (unused)
|
|
93
|
+
* @private
|
|
94
|
+
*/
|
|
95
|
+
this.handleCloseOverflowMenu = () => {
|
|
96
|
+
this.openOverflowMenu = false;
|
|
97
|
+
};
|
|
29
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Watcher for `open` prop. Handles portal append/removal and body scroll lock.
|
|
101
|
+
*
|
|
102
|
+
* @param newValue - new value of the `open` prop
|
|
103
|
+
* @param oldValue - previous value of the `open` prop
|
|
104
|
+
*/
|
|
30
105
|
handleOpenChange(newValue, oldValue) {
|
|
31
106
|
if (newValue === oldValue) {
|
|
32
107
|
return;
|
|
33
108
|
}
|
|
34
109
|
if (newValue) {
|
|
110
|
+
// Calculate scrollbar width before hiding it
|
|
111
|
+
const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
|
|
112
|
+
// Save original values
|
|
35
113
|
this.originalBodyOverflow = document.body.style.overflow;
|
|
36
|
-
document.body.style.
|
|
114
|
+
this.originalBodyPaddingRight = document.body.style.paddingRight;
|
|
37
115
|
document.body.appendChild(this.hostEl);
|
|
116
|
+
// Add padding to compensate for scrollbar
|
|
117
|
+
if (scrollbarWidth > 0) {
|
|
118
|
+
const currentPadding = parseInt(window.getComputedStyle(document.body).paddingRight) || 0;
|
|
119
|
+
document.body.style.paddingRight = `${currentPadding + scrollbarWidth}px`;
|
|
120
|
+
}
|
|
121
|
+
document.body.style.overflow = 'hidden';
|
|
38
122
|
requestAnimationFrame(() => {
|
|
39
123
|
this.hostEl.classList.add('is-visible');
|
|
124
|
+
// Check overflow after the side sheet is visible
|
|
125
|
+
setTimeout(() => this.checkOverflow(), 50);
|
|
40
126
|
});
|
|
41
127
|
}
|
|
42
128
|
else {
|
|
43
129
|
this.hostEl.classList.remove('is-visible');
|
|
44
130
|
document.body.style.overflow = this.originalBodyOverflow;
|
|
131
|
+
document.body.style.paddingRight = this.originalBodyPaddingRight;
|
|
45
132
|
this.hostEl.addEventListener('transitionend', this.handleTransitionEnd, { once: true });
|
|
46
133
|
}
|
|
47
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Watcher for footer secondary buttons changes. Triggers overflow recalculation.
|
|
137
|
+
*/
|
|
138
|
+
handleSecondaryButtonsChange() {
|
|
139
|
+
// Recheck overflow when buttons change
|
|
140
|
+
setTimeout(() => this.checkOverflow(), 50);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Measures footer buttons in an offscreen container and sets `showOverflowButton`.
|
|
144
|
+
* Safely returns early if required refs are unavailable.
|
|
145
|
+
*/
|
|
146
|
+
checkOverflow() {
|
|
147
|
+
if (!this.footerRef || !this.measurementContainerRef) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (!this.footerSecondaryButtons || this.footerSecondaryButtons.length === 0) {
|
|
151
|
+
this.showOverflowButton = false;
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
// Get the footer container width (minus padding)
|
|
155
|
+
const footerWidth = this.footerRef.offsetWidth;
|
|
156
|
+
const footerStyle = window.getComputedStyle(this.footerRef);
|
|
157
|
+
const footerPaddingLeft = parseFloat(footerStyle.paddingLeft);
|
|
158
|
+
const footerPaddingRight = parseFloat(footerStyle.paddingRight);
|
|
159
|
+
const availableWidth = footerWidth - footerPaddingLeft - footerPaddingRight;
|
|
160
|
+
// Measure all buttons in the hidden measurement container
|
|
161
|
+
const measurementButtons = this.measurementContainerRef.querySelectorAll('udp-button');
|
|
162
|
+
let totalWidth = 0;
|
|
163
|
+
measurementButtons.forEach((button, index) => {
|
|
164
|
+
const buttonWidth = button && button instanceof HTMLElement ? button.offsetWidth : 0;
|
|
165
|
+
totalWidth += buttonWidth;
|
|
166
|
+
// Add gap spacing between buttons (except for the last one)
|
|
167
|
+
if (index < measurementButtons.length - 1) {
|
|
168
|
+
const containerStyle = window.getComputedStyle(this.measurementContainerRef);
|
|
169
|
+
const gap = parseFloat(containerStyle.gap) || 4; // Default gap from CSS
|
|
170
|
+
totalWidth += gap;
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
// Add a small buffer to prevent edge cases
|
|
174
|
+
const buffer = 10;
|
|
175
|
+
const isOverflowing = totalWidth + buffer > availableWidth;
|
|
176
|
+
this.showOverflowButton = isOverflowing;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Lifecycle: componentDidLoad. Sets up ResizeObserver and initial overflow check.
|
|
180
|
+
*
|
|
181
|
+
* @private
|
|
182
|
+
*/
|
|
183
|
+
componentDidLoad() {
|
|
184
|
+
if (Build.isBrowser) {
|
|
185
|
+
// Set up ResizeObserver to watch for footer size changes
|
|
186
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
187
|
+
this.checkOverflow();
|
|
188
|
+
});
|
|
189
|
+
// Initial check after a small delay to ensure DOM is ready
|
|
190
|
+
requestAnimationFrame(() => {
|
|
191
|
+
setTimeout(() => {
|
|
192
|
+
if (this.footerRef) {
|
|
193
|
+
this.resizeObserver.observe(this.footerRef);
|
|
194
|
+
}
|
|
195
|
+
this.checkOverflow();
|
|
196
|
+
}, 100);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Lifecycle: disconnectedCallback. Restores body styles and disconnects observers.
|
|
202
|
+
*
|
|
203
|
+
* @private
|
|
204
|
+
*/
|
|
48
205
|
disconnectedCallback() {
|
|
49
206
|
if (document.body.style.overflow === 'hidden') {
|
|
50
207
|
document.body.style.overflow = this.originalBodyOverflow;
|
|
208
|
+
document.body.style.paddingRight = this.originalBodyPaddingRight;
|
|
209
|
+
}
|
|
210
|
+
// Clean up ResizeObserver
|
|
211
|
+
if (this.resizeObserver) {
|
|
212
|
+
this.resizeObserver.disconnect();
|
|
51
213
|
}
|
|
52
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* Render the component UI.
|
|
217
|
+
*
|
|
218
|
+
* @returns JSX element tree
|
|
219
|
+
* @private
|
|
220
|
+
*/
|
|
53
221
|
render() {
|
|
222
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
54
223
|
const widthClass = typeof this.width === 'number' ? 'custom-width' : this.width;
|
|
55
224
|
const sideSheetStyle = typeof this.width === 'number' ? { maxWidth: `${this.width}px` } : {};
|
|
56
|
-
|
|
225
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
226
|
+
const headerStartIcon = Boolean(this.headerActionButtonIcon) ? (h("udp-icon", { iconName: this.headerActionButtonIcon, color: "inherit" })) : undefined;
|
|
227
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
228
|
+
const overflowIcon = h("udp-icon", { key: '3262baafbf833e25e0b4d1128b24fb503d1dd157', iconName: "overflowMenuVertical", color: "inherit" });
|
|
229
|
+
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',
|
|
230
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
231
|
+
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 :
|
|
232
|
+
_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,
|
|
233
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
234
|
+
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: {
|
|
235
|
+
footer: true,
|
|
236
|
+
}, 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",
|
|
237
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
238
|
+
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: () => {
|
|
239
|
+
item === null || item === void 0 ? void 0 : item.onClick();
|
|
240
|
+
this.handleCloseOverflowMenu();
|
|
241
|
+
}, disabled: item === null || item === void 0 ? void 0 : item.disabled })))))), h("div", { key: '2dfb53eb181826fce129e856a4427da9edaeb756', ref: el => (this.measurementContainerRef = el), style: {
|
|
242
|
+
position: 'absolute',
|
|
243
|
+
visibility: 'hidden',
|
|
244
|
+
pointerEvents: 'none',
|
|
245
|
+
display: 'flex',
|
|
246
|
+
gap: 'var(--spacing-02, 4px)',
|
|
247
|
+
}, "aria-hidden": "true" }, (_g = this.footerSecondaryButtons) === null || _g === void 0 ? void 0 :
|
|
248
|
+
_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)))))))));
|
|
57
249
|
}
|
|
58
250
|
static get is() { return "udp-side-sheet"; }
|
|
59
251
|
static get encapsulation() { return "shadow"; }
|
|
@@ -81,7 +273,7 @@ export class UdpSideSheet {
|
|
|
81
273
|
"optional": false,
|
|
82
274
|
"docs": {
|
|
83
275
|
"tags": [],
|
|
84
|
-
"text": ""
|
|
276
|
+
"text": "When true, the side sheet is open and visible"
|
|
85
277
|
},
|
|
86
278
|
"getter": false,
|
|
87
279
|
"setter": false,
|
|
@@ -101,7 +293,7 @@ export class UdpSideSheet {
|
|
|
101
293
|
"optional": false,
|
|
102
294
|
"docs": {
|
|
103
295
|
"tags": [],
|
|
104
|
-
"text": ""
|
|
296
|
+
"text": "Title text displayed in the header"
|
|
105
297
|
},
|
|
106
298
|
"getter": false,
|
|
107
299
|
"setter": false,
|
|
@@ -120,7 +312,7 @@ export class UdpSideSheet {
|
|
|
120
312
|
"optional": false,
|
|
121
313
|
"docs": {
|
|
122
314
|
"tags": [],
|
|
123
|
-
"text": ""
|
|
315
|
+
"text": "Position of the sheet on the screen"
|
|
124
316
|
},
|
|
125
317
|
"getter": false,
|
|
126
318
|
"setter": false,
|
|
@@ -140,7 +332,7 @@ export class UdpSideSheet {
|
|
|
140
332
|
"optional": false,
|
|
141
333
|
"docs": {
|
|
142
334
|
"tags": [],
|
|
143
|
-
"text": ""
|
|
335
|
+
"text": "Width preset or a numeric pixel width"
|
|
144
336
|
},
|
|
145
337
|
"getter": false,
|
|
146
338
|
"setter": false,
|
|
@@ -160,7 +352,7 @@ export class UdpSideSheet {
|
|
|
160
352
|
"optional": false,
|
|
161
353
|
"docs": {
|
|
162
354
|
"tags": [],
|
|
163
|
-
"text": ""
|
|
355
|
+
"text": "Controls whether default inner padding is applied"
|
|
164
356
|
},
|
|
165
357
|
"getter": false,
|
|
166
358
|
"setter": false,
|
|
@@ -180,7 +372,7 @@ export class UdpSideSheet {
|
|
|
180
372
|
"optional": false,
|
|
181
373
|
"docs": {
|
|
182
374
|
"tags": [],
|
|
183
|
-
"text": ""
|
|
375
|
+
"text": "When true, shows a top loader"
|
|
184
376
|
},
|
|
185
377
|
"getter": false,
|
|
186
378
|
"setter": false,
|
|
@@ -200,7 +392,7 @@ export class UdpSideSheet {
|
|
|
200
392
|
"optional": false,
|
|
201
393
|
"docs": {
|
|
202
394
|
"tags": [],
|
|
203
|
-
"text": ""
|
|
395
|
+
"text": "Label for the header primary action button"
|
|
204
396
|
},
|
|
205
397
|
"getter": false,
|
|
206
398
|
"setter": false,
|
|
@@ -219,7 +411,7 @@ export class UdpSideSheet {
|
|
|
219
411
|
"optional": false,
|
|
220
412
|
"docs": {
|
|
221
413
|
"tags": [],
|
|
222
|
-
"text": ""
|
|
414
|
+
"text": "Whether the header action button is disabled"
|
|
223
415
|
},
|
|
224
416
|
"getter": false,
|
|
225
417
|
"setter": false,
|
|
@@ -239,13 +431,36 @@ export class UdpSideSheet {
|
|
|
239
431
|
"optional": false,
|
|
240
432
|
"docs": {
|
|
241
433
|
"tags": [],
|
|
242
|
-
"text": ""
|
|
434
|
+
"text": "Icon name for the header action button"
|
|
243
435
|
},
|
|
244
436
|
"getter": false,
|
|
245
437
|
"setter": false,
|
|
246
438
|
"reflect": false,
|
|
247
439
|
"attribute": "header-action-button-icon"
|
|
248
440
|
},
|
|
441
|
+
"headerSecondaryButtons": {
|
|
442
|
+
"type": "unknown",
|
|
443
|
+
"mutable": false,
|
|
444
|
+
"complexType": {
|
|
445
|
+
"original": "SecondaryButton[]",
|
|
446
|
+
"resolved": "SecondaryButton[]",
|
|
447
|
+
"references": {
|
|
448
|
+
"SecondaryButton": {
|
|
449
|
+
"location": "import",
|
|
450
|
+
"path": "./types",
|
|
451
|
+
"id": "src/components/my-component/UI/drawers/udp-side-sheet/types.ts::SecondaryButton"
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
},
|
|
455
|
+
"required": false,
|
|
456
|
+
"optional": false,
|
|
457
|
+
"docs": {
|
|
458
|
+
"tags": [],
|
|
459
|
+
"text": "Additional secondary buttons to render in the header"
|
|
460
|
+
},
|
|
461
|
+
"getter": false,
|
|
462
|
+
"setter": false
|
|
463
|
+
},
|
|
249
464
|
"primaryButtonLabel": {
|
|
250
465
|
"type": "string",
|
|
251
466
|
"mutable": false,
|
|
@@ -258,7 +473,7 @@ export class UdpSideSheet {
|
|
|
258
473
|
"optional": false,
|
|
259
474
|
"docs": {
|
|
260
475
|
"tags": [],
|
|
261
|
-
"text": ""
|
|
476
|
+
"text": "Label for the primary footer action button"
|
|
262
477
|
},
|
|
263
478
|
"getter": false,
|
|
264
479
|
"setter": false,
|
|
@@ -277,7 +492,7 @@ export class UdpSideSheet {
|
|
|
277
492
|
"optional": false,
|
|
278
493
|
"docs": {
|
|
279
494
|
"tags": [],
|
|
280
|
-
"text": ""
|
|
495
|
+
"text": "Whether the primary footer button is disabled"
|
|
281
496
|
},
|
|
282
497
|
"getter": false,
|
|
283
498
|
"setter": false,
|
|
@@ -297,15 +512,47 @@ export class UdpSideSheet {
|
|
|
297
512
|
"optional": false,
|
|
298
513
|
"docs": {
|
|
299
514
|
"tags": [],
|
|
300
|
-
"text": ""
|
|
515
|
+
"text": "Icon name for the primary footer button"
|
|
301
516
|
},
|
|
302
517
|
"getter": false,
|
|
303
518
|
"setter": false,
|
|
304
519
|
"reflect": false,
|
|
305
520
|
"attribute": "primary-button-icon"
|
|
521
|
+
},
|
|
522
|
+
"footerSecondaryButtons": {
|
|
523
|
+
"type": "unknown",
|
|
524
|
+
"mutable": false,
|
|
525
|
+
"complexType": {
|
|
526
|
+
"original": "SecondaryButton[]",
|
|
527
|
+
"resolved": "SecondaryButton[]",
|
|
528
|
+
"references": {
|
|
529
|
+
"SecondaryButton": {
|
|
530
|
+
"location": "import",
|
|
531
|
+
"path": "./types",
|
|
532
|
+
"id": "src/components/my-component/UI/drawers/udp-side-sheet/types.ts::SecondaryButton"
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
"required": false,
|
|
537
|
+
"optional": true,
|
|
538
|
+
"docs": {
|
|
539
|
+
"tags": [],
|
|
540
|
+
"text": "Secondary buttons to render in the footer"
|
|
541
|
+
},
|
|
542
|
+
"getter": false,
|
|
543
|
+
"setter": false
|
|
306
544
|
}
|
|
307
545
|
};
|
|
308
546
|
}
|
|
547
|
+
static get states() {
|
|
548
|
+
return {
|
|
549
|
+
"showOverflowButton": {},
|
|
550
|
+
"openOverflowMenu": {},
|
|
551
|
+
"overflowMenuAnchor": {},
|
|
552
|
+
"visibleSecondaryButtons": {},
|
|
553
|
+
"overflowSecondaryButtons": {}
|
|
554
|
+
};
|
|
555
|
+
}
|
|
309
556
|
static get events() {
|
|
310
557
|
return [{
|
|
311
558
|
"method": "udpSideSheetClose",
|
|
@@ -315,7 +562,7 @@ export class UdpSideSheet {
|
|
|
315
562
|
"composed": true,
|
|
316
563
|
"docs": {
|
|
317
564
|
"tags": [],
|
|
318
|
-
"text": ""
|
|
565
|
+
"text": "Emitted when the sheet is closed"
|
|
319
566
|
},
|
|
320
567
|
"complexType": {
|
|
321
568
|
"original": "void",
|
|
@@ -330,7 +577,7 @@ export class UdpSideSheet {
|
|
|
330
577
|
"composed": true,
|
|
331
578
|
"docs": {
|
|
332
579
|
"tags": [],
|
|
333
|
-
"text": ""
|
|
580
|
+
"text": "Emitted when the primary footer button is clicked"
|
|
334
581
|
},
|
|
335
582
|
"complexType": {
|
|
336
583
|
"original": "void",
|
|
@@ -345,7 +592,7 @@ export class UdpSideSheet {
|
|
|
345
592
|
"composed": true,
|
|
346
593
|
"docs": {
|
|
347
594
|
"tags": [],
|
|
348
|
-
"text": ""
|
|
595
|
+
"text": "Emitted when the header action button is clicked"
|
|
349
596
|
},
|
|
350
597
|
"complexType": {
|
|
351
598
|
"original": "void",
|
|
@@ -359,6 +606,9 @@ export class UdpSideSheet {
|
|
|
359
606
|
return [{
|
|
360
607
|
"propName": "open",
|
|
361
608
|
"methodName": "handleOpenChange"
|
|
609
|
+
}, {
|
|
610
|
+
"propName": "footerSecondaryButtons",
|
|
611
|
+
"methodName": "handleSecondaryButtonsChange"
|
|
362
612
|
}];
|
|
363
613
|
}
|
|
364
614
|
}
|
package/dist/collection/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"udp-side-sheet.js","sourceRoot":"","sources":["../../../../../../src/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
|
|
1
|
+
{"version":3,"file":"udp-side-sheet.js","sourceRoot":"","sources":["../../../../../../src/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.tsx"],"names":[],"mappings":"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","sourcesContent":["/* 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"]}
|
|
@@ -7,7 +7,7 @@ export class UpdAlertBanner {
|
|
|
7
7
|
this.message = '';
|
|
8
8
|
}
|
|
9
9
|
render() {
|
|
10
|
-
return (h("div", { key: '
|
|
10
|
+
return (h("div", { key: '4551695bcaba3fde5445c7a34f1d67d0444af855', class: `alert-banner ${this.type}` }, h("unity-typography", { key: 'd763dea98c2b14a12753f54d5b99c89be23aaf49', variant: "data-display-three" }, " ", this.message, " ")));
|
|
11
11
|
}
|
|
12
12
|
static get is() { return "upd-alert-banner"; }
|
|
13
13
|
static get encapsulation() { return "shadow"; }
|
package/dist/collection/components/my-component/UI/feedback/udp-notification/udp-notification.js
CHANGED
|
@@ -13,11 +13,11 @@ export class UdpNotification {
|
|
|
13
13
|
}
|
|
14
14
|
render() {
|
|
15
15
|
const statusClass = `status-${this.status}`;
|
|
16
|
-
return (h("div", { key: '
|
|
16
|
+
return (h("div", { key: '555f2f94b04009382fac53a32d74f8f84f14a733', class: {
|
|
17
17
|
'udp-notification': true,
|
|
18
18
|
'visible': this.active,
|
|
19
19
|
[statusClass]: true // This will apply the correct class based on the status
|
|
20
|
-
} }, this.userCancel && (h("button", { key: '
|
|
20
|
+
} }, this.userCancel && (h("button", { key: 'a9e6b1a2faa49b97d3d39da732a0b3e35045228d', class: "close-button", onClick: () => this.active = false }, "\u00D7")), h("span", { key: 'ed21c8f3e5e3fa53d2a1d4a54835e0f4b63210c4', class: "message" }, " ", h("unity-typography", { key: '9283d1e980b03cd92e5721d7a41209ee0c109cdf', variant: 'body' }, " ", this.message, " "))));
|
|
21
21
|
}
|
|
22
22
|
static get is() { return "udp-notification"; }
|
|
23
23
|
static get encapsulation() { return "shadow"; }
|
|
@@ -250,7 +250,7 @@ export class UdpDynamicForm {
|
|
|
250
250
|
});
|
|
251
251
|
}
|
|
252
252
|
render() {
|
|
253
|
-
return h("div", { key: '
|
|
253
|
+
return h("div", { key: '3ad645e7b28adea7f62b2e9c6e6f99d8cbd4f389', class: "form-root" }, this.renderFormFields());
|
|
254
254
|
}
|
|
255
255
|
static get is() { return "udp-dynamic-form"; }
|
|
256
256
|
static get encapsulation() { return "shadow"; }
|
|
@@ -45,8 +45,8 @@ export class EditViewFormDialog {
|
|
|
45
45
|
this.fetchedCurrentView = false;
|
|
46
46
|
}
|
|
47
47
|
render() {
|
|
48
|
-
return (h("fluent-dialog", { key: '
|
|
49
|
-
h("div", { key: '
|
|
48
|
+
return (h("fluent-dialog", { key: '7d9f36f3e3f076bf8e9b9ea76678c3a65431922c', open: this.open, actionOne: () => { this.handleSubmit(); this.closeDialog(); this.resetFetchedCurrentView(); }, actionTwo: () => { this.closeDialog(); this.resetFetchedCurrentView(); }, handleClose: this.handleClose, labelOne: "Save Update", labelTwo: "Cancel", title: this.title, disableOne: !this.name }, h("form", { key: '582cce3a0ea5f9a4670b2c67f7c4096f3cf97884', class: "edit-form" }, h("text-field", { key: 'c8b700f8db69b68666a03c539f893d29fe507d72', label: "View Name", value: this.name, onInput: (event) => this.handleNameChange(event) }), this.fetchedCurrentView &&
|
|
49
|
+
h("div", { key: '6ebbde8f024c03916bc1100e964d440868749154', class: "toggle-options" }, h("div", { key: 'f699dfeecb0ddf085d9c3d5a8dfc42c3987ae53e' }, h("stencil-toggle", { key: '8c1e54b90e023140879bafa1377388f8a4a18432', label: "Private", checked: this.isPrivate === 1, onToggledChange: this.handlePrivateChange }), " "), h("div", { key: '562103cb25f1fa01d4e0749f8c0a3cd400c809f6' }, h("stencil-toggle", { key: 'aaafe2ead718dae3489df1dd24027fb3c8a8300d', label: "Default", checked: this.isDefault, onToggledChange: this.handleDefaultChange, style: { marginTop: '10px' } }))))));
|
|
50
50
|
}
|
|
51
51
|
static get is() { return "edit-view-form-dialog"; }
|
|
52
52
|
static get encapsulation() { return "shadow"; }
|
|
@@ -228,7 +228,7 @@ export class StencilForm {
|
|
|
228
228
|
debounce(submitFunction, 1000, { leading: true, trailing: false })();
|
|
229
229
|
}
|
|
230
230
|
render() {
|
|
231
|
-
return (h("form", { key: '
|
|
231
|
+
return (h("form", { key: 'd4f22ff5b96b35639d98dae8c1d3adfbab8f493f' }, h("slot", { key: '4c460485b67440935235d078c08c92f6736f1a1a' })));
|
|
232
232
|
}
|
|
233
233
|
static get is() { return "stencil-form"; }
|
|
234
234
|
static get encapsulation() { return "shadow"; }
|