@sellmate/design-system 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{component.table-qOFez3z3.js → component.table-DIxmbGBT.js} +4 -1
- package/dist/cjs/design-system.cjs.js +2 -2
- package/dist/cjs/{index-Cw-78mnC.js → index-BGwB03Tk.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/sd-action-modal.cjs.entry.js +1 -1
- package/dist/cjs/sd-badge.cjs.entry.js +1 -1
- package/dist/cjs/sd-barcode-input.cjs.entry.js +1 -1
- package/dist/cjs/{sd-button.config-DH08UNfl.js → sd-button.config-BSHkfgdC.js} +17 -12
- package/dist/cjs/sd-button_2.cjs.entry.js +2 -2
- package/dist/cjs/sd-calendar_2.cjs.entry.js +1 -1
- package/dist/cjs/sd-callout.cjs.entry.js +1 -1
- package/dist/cjs/sd-card.cjs.entry.js +1 -1
- package/dist/cjs/sd-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/sd-chip.cjs.entry.js +1 -1
- package/dist/cjs/sd-circle-progress.cjs.entry.js +2 -2
- package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +2 -2
- package/dist/cjs/sd-date-box.cjs.entry.js +1 -1
- package/dist/cjs/sd-date-picker_7.cjs.entry.js +11 -8
- package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +1 -1
- package/dist/cjs/sd-divider.cjs.entry.js +27 -0
- package/dist/cjs/sd-dropdown-button.cjs.entry.js +47 -22
- package/dist/cjs/sd-field_3.cjs.entry.js +5 -5
- package/dist/cjs/sd-form.cjs.entry.js +1 -1
- package/dist/cjs/sd-ghost-button.cjs.entry.js +1 -1
- package/dist/cjs/sd-guide.cjs.entry.js +2 -2
- package/dist/cjs/sd-key-value-table.cjs.entry.js +3 -3
- package/dist/cjs/sd-linear-progress.cjs.entry.js +3 -3
- package/dist/cjs/sd-loading-container.cjs.entry.js +3 -3
- package/dist/cjs/sd-modal-container.cjs.entry.js +1 -1
- package/dist/cjs/sd-pagination_4.cjs.entry.js +31 -51
- package/dist/cjs/sd-popover.cjs.entry.js +5 -6
- package/dist/cjs/sd-popup.cjs.entry.js +3 -3
- package/dist/cjs/sd-portal.cjs.entry.js +1 -1
- package/dist/cjs/sd-radio-button.cjs.entry.js +1 -1
- package/dist/cjs/sd-radio.cjs.entry.js +1 -1
- package/dist/cjs/sd-select-list-item_2.cjs.entry.js +7 -7
- package/dist/cjs/sd-select_3.cjs.entry.js +9 -9
- package/dist/cjs/sd-switch.cjs.entry.js +2 -2
- package/dist/cjs/sd-table.cjs.entry.js +15 -49
- package/dist/cjs/{sd-table.config-DqgNOdXO.js → sd-table.config-BjJW74Zx.js} +7 -3
- package/dist/cjs/sd-tabs.cjs.entry.js +2 -2
- package/dist/cjs/sd-tag.cjs.entry.js +1 -1
- package/dist/cjs/sd-td.cjs.entry.js +2 -2
- package/dist/cjs/sd-text-link.cjs.entry.js +1 -1
- package/dist/cjs/sd-toast-container.cjs.entry.js +2 -2
- package/dist/cjs/sd-toast.cjs.entry.js +3 -3
- package/dist/cjs/sd-toggle.cjs.entry.js +2 -2
- package/dist/cjs/{system-wrt-tcOq.js → system-CdAyz3ej.js} +3 -0
- package/dist/cjs/{tooltipArrow-BjSFKIUq.js → tooltipArrow-COD-SNZL.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/sd-divider/sd-divider.config.js +4 -0
- package/dist/collection/components/sd-divider/sd-divider.css +25 -0
- package/dist/collection/components/sd-divider/sd-divider.js +47 -0
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.config.js +3 -3
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.css +29 -10
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +74 -15
- package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +1 -1
- package/dist/collection/components/sd-input/sd-input.js +2 -2
- package/dist/collection/components/sd-linear-progress/sd-linear-progress.js +1 -1
- package/dist/collection/components/sd-loading-container/sd-loading-container.js +2 -2
- package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +1 -1
- package/dist/collection/components/sd-number-input/sd-number-input.js +75 -4
- package/dist/collection/components/sd-pagination/sd-pagination.js +3 -3
- package/dist/collection/components/sd-popover/sd-popover.js +3 -24
- package/dist/collection/components/sd-popup/sd-popup.js +1 -1
- package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +2 -2
- package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +4 -4
- package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +2 -2
- package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +2 -2
- package/dist/collection/components/sd-select/sd-select.js +4 -4
- package/dist/collection/components/sd-switch/sd-switch.js +1 -1
- package/dist/collection/components/sd-table/sd-table.config.js +4 -1
- package/dist/collection/components/sd-table/sd-table.css +1 -1
- package/dist/collection/components/sd-table/sd-table.js +17 -51
- package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +2 -2
- package/dist/collection/components/sd-table/sd-td/sd-td.js +1 -1
- package/dist/collection/components/sd-table/sd-thead/sd-thead.css +15 -5
- package/dist/collection/components/sd-table/sd-thead/sd-thead.js +6 -5
- package/dist/collection/components/sd-table/sd-tr/sd-tr.css +6 -7
- package/dist/collection/components/sd-table/sd-tr/sd-tr.js +20 -40
- package/dist/collection/components/sd-tabs/sd-tabs.js +1 -1
- package/dist/collection/components/sd-textarea/sd-textarea.js +1 -1
- package/dist/collection/components/sd-toast/sd-toast.js +2 -2
- package/dist/collection/components/sd-toast-container/sd-toast-container.js +1 -1
- package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
- package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
- package/dist/components/index.js +1 -1
- package/dist/components/{p-CJ-QHG0F.js → p-2aQ4cVXp.js} +1 -1
- package/dist/components/{p-fpzgqVv1.js → p-BCeq6-MU.js} +1 -1
- package/dist/components/{p-wOAxmZ1V.js → p-BDJJQALT.js} +1 -1
- package/dist/components/p-BE-21GLH.js +1 -0
- package/dist/components/{p-C54v30vB.js → p-BNUsawW7.js} +1 -1
- package/dist/components/{p-BZCvsLRf.js → p-BUW6I_d5.js} +1 -1
- package/dist/components/{p-FKKk7Bk8.js → p-BYRvYsiC.js} +1 -1
- package/dist/components/{p-IThoLpLs.js → p-BYU3wOaN.js} +1 -1
- package/dist/components/{p-Cvk-Luhs.js → p-BZRMoE3E.js} +1 -1
- package/dist/components/{p-DmaopssQ.js → p-B_2U9h3P.js} +1 -1
- package/dist/{design-system/p-C29HUShl.js → components/p-BasCjDiE.js} +1 -1
- package/dist/components/p-BqYASycS.js +1 -0
- package/dist/components/{p-VuxN5d2D.js → p-CAP-9lnL.js} +1 -1
- package/dist/components/{p-Co3H5873.js → p-CARYLqH9.js} +1 -1
- package/dist/components/{p-BZabVWBD.js → p-CJRGLvgC.js} +1 -1
- package/dist/components/{p-m_OtjUs1.js → p-CK6jFkqR.js} +1 -1
- package/dist/components/{p-DrrsZftV.js → p-CRq8zgt_.js} +1 -1
- package/dist/components/{p-BqrZA_Nl.js → p-CSbyXQa9.js} +1 -1
- package/dist/components/p-CvfW21oo.js +1 -0
- package/dist/components/{p-BGb86o0p.js → p-CwQTEZWO.js} +1 -1
- package/dist/components/{p-BSQsJHnV.js → p-Cye8r1MG.js} +1 -1
- package/dist/components/{p-J3eT660D.js → p-D4mjSR0u.js} +1 -1
- package/dist/components/{p-DQFHAKL_.js → p-D6GUzecR.js} +1 -1
- package/dist/components/p-DGyTYauz.js +1 -0
- package/dist/components/{p-BLhu2So8.js → p-DP0Dp12H.js} +1 -1
- package/dist/components/{p-BSfu4DO2.js → p-DQj-S8AC.js} +1 -1
- package/dist/components/{p-uHITnW_J.js → p-DSIM5Mkt.js} +1 -1
- package/dist/components/{p-DeK3og10.js → p-DZ_3ZYMC.js} +1 -1
- package/dist/components/{p-D7nYP2a4.js → p-DfKa36bs.js} +1 -1
- package/dist/components/p-DoREs-rv.js +1 -0
- package/dist/components/{p-DyZNk1VT.js → p-Dwko_Bx3.js} +1 -1
- package/dist/components/{p-AO2RGdjH.js → p-EcuI_UmK.js} +1 -1
- package/dist/components/p-_zllPZMm.js +1 -0
- package/dist/components/p-j2khhcHY.js +1 -0
- package/dist/components/{p-D5inekTL.js → p-lOVBaLB7.js} +1 -1
- package/dist/components/{p-CbXb6ylI.js → p-pTx5xpqU.js} +1 -1
- package/dist/components/p-pwNG5WaX.js +1 -0
- package/dist/components/{p-yH47DvUh.js → p-sRzhIrJR.js} +1 -1
- package/dist/components/{p-CgYjGJEh.js → p-uVZjhyvS.js} +1 -1
- package/dist/components/{p-B3sb3aIX.js → p-z564gmGG.js} +1 -1
- package/dist/components/sd-action-modal.js +1 -1
- package/dist/components/sd-badge.js +1 -1
- package/dist/components/sd-barcode-input.js +1 -1
- package/dist/components/sd-button.js +1 -1
- package/dist/components/sd-calendar.js +1 -1
- package/dist/components/sd-callout.js +1 -1
- package/dist/components/sd-card.js +1 -1
- package/dist/components/sd-checkbox.js +1 -1
- package/dist/components/sd-chip.js +1 -1
- package/dist/components/sd-circle-progress.js +1 -1
- package/dist/components/sd-confirm-modal.js +1 -1
- package/dist/components/sd-date-box.js +1 -1
- package/dist/components/sd-date-picker-trigger.js +1 -1
- package/dist/components/sd-date-picker.js +1 -1
- package/dist/components/sd-date-range-picker-calendar.js +1 -1
- package/dist/components/sd-date-range-picker.js +1 -1
- package/dist/components/sd-divider.d.ts +11 -0
- package/dist/components/sd-divider.js +1 -0
- package/dist/components/sd-dropdown-button.js +1 -1
- package/dist/components/sd-field.js +1 -1
- package/dist/components/sd-file-picker.js +1 -1
- package/dist/components/sd-floating-portal.js +1 -1
- package/dist/components/sd-form.js +1 -1
- package/dist/components/sd-ghost-button.js +1 -1
- package/dist/components/sd-guide.js +1 -1
- package/dist/components/sd-icon.js +1 -1
- package/dist/components/sd-input.js +1 -1
- package/dist/components/sd-key-value-table.js +1 -1
- package/dist/components/sd-linear-progress.js +1 -1
- package/dist/components/sd-loading-container.js +1 -1
- package/dist/components/sd-loading-modal.js +1 -1
- package/dist/components/sd-modal-container.js +1 -1
- package/dist/components/sd-number-input.js +1 -1
- package/dist/components/sd-pagination.js +1 -1
- package/dist/components/sd-popover.js +1 -1
- package/dist/components/sd-popup.js +1 -1
- package/dist/components/sd-portal.js +1 -1
- package/dist/components/sd-radio-button.js +1 -1
- package/dist/components/sd-radio-group.js +1 -1
- package/dist/components/sd-radio.js +1 -1
- package/dist/components/sd-select-list-item-search.js +1 -1
- package/dist/components/sd-select-list-item.js +1 -1
- package/dist/components/sd-select-listbox.js +1 -1
- package/dist/components/sd-select-trigger.js +1 -1
- package/dist/components/sd-select.js +1 -1
- package/dist/components/sd-switch.js +1 -1
- package/dist/components/sd-table.js +1 -1
- package/dist/components/sd-tabs.js +1 -1
- package/dist/components/sd-tag.js +1 -1
- package/dist/components/sd-tbody.js +1 -1
- package/dist/components/sd-td.js +1 -1
- package/dist/components/sd-text-link.js +1 -1
- package/dist/components/sd-textarea.js +1 -1
- package/dist/components/sd-thead.js +1 -1
- package/dist/components/sd-toast-container.js +1 -1
- package/dist/components/sd-toast.js +1 -1
- package/dist/components/sd-toggle.js +1 -1
- package/dist/components/sd-tooltip.js +1 -1
- package/dist/components/sd-tr.js +1 -1
- package/dist/design-system/design-system.css +1 -1
- package/dist/design-system/design-system.esm.js +1 -1
- package/dist/design-system/{p-819e28fe.entry.js → p-07b0d118.entry.js} +1 -1
- package/dist/design-system/{p-d39e515d.entry.js → p-0964c79a.entry.js} +1 -1
- package/dist/design-system/{p-eae21a79.entry.js → p-1219699a.entry.js} +1 -1
- package/dist/design-system/{p-b868d747.entry.js → p-1743651a.entry.js} +1 -1
- package/dist/design-system/{p-435ae69e.entry.js → p-17883b40.entry.js} +1 -1
- package/dist/design-system/p-18057222.entry.js +1 -0
- package/dist/design-system/{p-0894c492.entry.js → p-18d3ae55.entry.js} +1 -1
- package/dist/design-system/{p-3f4a281f.entry.js → p-1aafbc7b.entry.js} +1 -1
- package/dist/design-system/{p-4473c051.entry.js → p-20a2e0d2.entry.js} +1 -1
- package/dist/design-system/{p-399d416c.entry.js → p-25fad267.entry.js} +1 -1
- package/dist/design-system/{p-c3e4853c.entry.js → p-2c0a8333.entry.js} +1 -1
- package/dist/design-system/p-3a848c36.entry.js +1 -0
- package/dist/design-system/{p-b8e34533.entry.js → p-4b43648c.entry.js} +1 -1
- package/dist/design-system/{p-843d4b16.entry.js → p-4bd9f005.entry.js} +1 -1
- package/dist/design-system/{p-61f4238b.entry.js → p-4cf1c8ae.entry.js} +1 -1
- package/dist/design-system/{p-9681b0ba.entry.js → p-521e5d2e.entry.js} +1 -1
- package/dist/design-system/p-54086285.entry.js +1 -0
- package/dist/design-system/{p-aeccfb2b.entry.js → p-696764b0.entry.js} +1 -1
- package/dist/design-system/{p-795bae4c.entry.js → p-70f47e43.entry.js} +1 -1
- package/dist/design-system/{p-c7099e9e.entry.js → p-733aa107.entry.js} +1 -1
- package/dist/design-system/{p-352c68ae.entry.js → p-7444d475.entry.js} +1 -1
- package/dist/design-system/{p-03badf68.entry.js → p-840f592d.entry.js} +1 -1
- package/dist/design-system/{p-d3cc8538.entry.js → p-8d2815cf.entry.js} +1 -1
- package/dist/design-system/{p-9404ab06.entry.js → p-8fc49d2d.entry.js} +1 -1
- package/dist/design-system/{p-aac84d22.entry.js → p-95bbba4f.entry.js} +1 -1
- package/dist/design-system/p-969665c0.entry.js +1 -0
- package/dist/design-system/{p-fa670cc4.entry.js → p-97b405aa.entry.js} +1 -1
- package/dist/design-system/p-C7p6g_sM.js +1 -0
- package/dist/design-system/{p-DQFHAKL_.js → p-D6GUzecR.js} +1 -1
- package/dist/design-system/p-DGyTYauz.js +1 -0
- package/dist/design-system/p-DNWwGHho.js +2 -0
- package/dist/design-system/p-LIf7YMBN.js +1 -0
- package/dist/design-system/{p-1e530c87.entry.js → p-a5930cbd.entry.js} +1 -1
- package/dist/design-system/{p-2bdceecb.entry.js → p-a6c9baa5.entry.js} +1 -1
- package/dist/design-system/{p-4a91875c.entry.js → p-afdca5bb.entry.js} +1 -1
- package/dist/design-system/{p-00b2c850.entry.js → p-b08ca29b.entry.js} +1 -1
- package/dist/design-system/p-c5c4a66b.entry.js +1 -0
- package/dist/design-system/p-c73cadc7.entry.js +1 -0
- package/dist/design-system/{p-679bce6c.entry.js → p-d8292621.entry.js} +1 -1
- package/dist/design-system/{p-339cb954.entry.js → p-deec1ef0.entry.js} +1 -1
- package/dist/design-system/{p-d226bd61.entry.js → p-e6bd8ab1.entry.js} +1 -1
- package/dist/design-system/{p-e902a3f4.entry.js → p-e9079238.entry.js} +1 -1
- package/dist/design-system/{p-14e30f67.entry.js → p-ea17a361.entry.js} +1 -1
- package/dist/design-system/{p-a71d4947.entry.js → p-eef5f8d7.entry.js} +1 -1
- package/dist/design-system/{p-8ee990bd.entry.js → p-f97b75d3.entry.js} +1 -1
- package/dist/design-system/{p-06a6798d.entry.js → p-ff33d019.entry.js} +1 -1
- package/dist/design-system/p-j2khhcHY.js +1 -0
- package/dist/esm/{component.table-DQFHAKL_.js → component.table-D6GUzecR.js} +4 -1
- package/dist/esm/design-system.js +3 -3
- package/dist/esm/{index-0U6dRjlq.js → index-DNWwGHho.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/sd-action-modal.entry.js +1 -1
- package/dist/esm/sd-badge.entry.js +1 -1
- package/dist/esm/sd-barcode-input.entry.js +1 -1
- package/dist/esm/{sd-button.config-BDjErF_K.js → sd-button.config-C7p6g_sM.js} +17 -12
- package/dist/esm/sd-button_2.entry.js +2 -2
- package/dist/esm/sd-calendar_2.entry.js +1 -1
- package/dist/esm/sd-callout.entry.js +1 -1
- package/dist/esm/sd-card.entry.js +1 -1
- package/dist/esm/sd-checkbox.entry.js +1 -1
- package/dist/esm/sd-chip.entry.js +1 -1
- package/dist/esm/sd-circle-progress.entry.js +2 -2
- package/dist/esm/sd-confirm-modal_2.entry.js +2 -2
- package/dist/esm/sd-date-box.entry.js +1 -1
- package/dist/esm/sd-date-picker_7.entry.js +11 -8
- package/dist/esm/sd-date-range-picker-calendar.entry.js +1 -1
- package/dist/esm/sd-divider.entry.js +25 -0
- package/dist/esm/sd-dropdown-button.entry.js +47 -22
- package/dist/esm/sd-field_3.entry.js +5 -5
- package/dist/esm/sd-form.entry.js +1 -1
- package/dist/esm/sd-ghost-button.entry.js +1 -1
- package/dist/esm/sd-guide.entry.js +2 -2
- package/dist/esm/sd-key-value-table.entry.js +3 -3
- package/dist/esm/sd-linear-progress.entry.js +3 -3
- package/dist/esm/sd-loading-container.entry.js +3 -3
- package/dist/esm/sd-modal-container.entry.js +1 -1
- package/dist/esm/sd-pagination_4.entry.js +31 -51
- package/dist/esm/sd-popover.entry.js +5 -6
- package/dist/esm/sd-popup.entry.js +3 -3
- package/dist/esm/sd-portal.entry.js +1 -1
- package/dist/esm/sd-radio-button.entry.js +1 -1
- package/dist/esm/sd-radio.entry.js +1 -1
- package/dist/esm/sd-select-list-item_2.entry.js +7 -7
- package/dist/esm/sd-select_3.entry.js +9 -9
- package/dist/esm/sd-switch.entry.js +2 -2
- package/dist/esm/{sd-table.config-CFHtQ8LX.js → sd-table.config-D9meRqTx.js} +7 -4
- package/dist/esm/sd-table.entry.js +15 -49
- package/dist/esm/sd-tabs.entry.js +2 -2
- package/dist/esm/sd-tag.entry.js +1 -1
- package/dist/esm/sd-td.entry.js +2 -2
- package/dist/esm/sd-text-link.entry.js +1 -1
- package/dist/esm/sd-toast-container.entry.js +2 -2
- package/dist/esm/sd-toast.entry.js +3 -3
- package/dist/esm/sd-toggle.entry.js +2 -2
- package/dist/esm/{system-DGlmvjGc.js → system-j2khhcHY.js} +3 -0
- package/dist/esm/{tooltipArrow-O5LOsHae.js → tooltipArrow-Cj3AqWK0.js} +1 -1
- package/dist/types/components/sd-divider/sd-divider.config.d.ts +3 -0
- package/dist/types/components/sd-divider/sd-divider.d.ts +5 -0
- package/dist/types/components/sd-dropdown-button/sd-dropdown-button.d.ts +5 -0
- package/dist/types/components/sd-number-input/sd-number-input.d.ts +4 -0
- package/dist/types/components/sd-popover/sd-popover.d.ts +0 -1
- package/dist/types/components/sd-table/sd-table.config.d.ts +2 -0
- package/dist/types/components/sd-table/sd-table.d.ts +1 -6
- package/dist/types/components/sd-table/sd-tr/sd-tr.d.ts +1 -5
- package/dist/types/components.d.ts +80 -21
- package/hydrate/index.js +192 -170
- package/hydrate/index.mjs +192 -170
- package/package.json +1 -1
- package/dist/components/p-BjkROjjt.js +0 -1
- package/dist/components/p-DChOBMCc.js +0 -1
- package/dist/components/p-DGlmvjGc.js +0 -1
- package/dist/components/p-DUcbofDO.js +0 -1
- package/dist/components/p-DZbc1mgp.js +0 -1
- package/dist/components/p-DdLntfiw.js +0 -1
- package/dist/components/p-DhTcn6jX.js +0 -1
- package/dist/components/p-HK6Bwtz8.js +0 -1
- package/dist/components/p-iCuIUhaK.js +0 -1
- package/dist/design-system/p-0U6dRjlq.js +0 -2
- package/dist/design-system/p-3d61e68f.entry.js +0 -1
- package/dist/design-system/p-40bdbe5a.entry.js +0 -1
- package/dist/design-system/p-786c72e9.entry.js +0 -1
- package/dist/design-system/p-78de36f2.entry.js +0 -1
- package/dist/design-system/p-92f368a2.entry.js +0 -1
- package/dist/design-system/p-BDjErF_K.js +0 -1
- package/dist/design-system/p-DGlmvjGc.js +0 -1
- package/dist/design-system/p-DZbc1mgp.js +0 -1
|
@@ -47,7 +47,8 @@ export const TABLE_BORDER = {
|
|
|
47
47
|
};
|
|
48
48
|
export const TABLE_SEPARATOR = {
|
|
49
49
|
color: tableTokens.table.separator.color,
|
|
50
|
-
width: tableTokens.table.separator.
|
|
50
|
+
width: tableTokens.table.separator.width.default,
|
|
51
|
+
denseWidth: tableTokens.table.separator.width.dense,
|
|
51
52
|
};
|
|
52
53
|
export const TABLE_RADIUS = tableTokens.table.radius;
|
|
53
54
|
// ── Content Tokens ──
|
|
@@ -71,6 +72,8 @@ export const TABLE_KEY_VALUE = {
|
|
|
71
72
|
bodyPadding: tableTokens.table.keyValue.body.padding,
|
|
72
73
|
height: tableTokens.table.keyValue.height,
|
|
73
74
|
};
|
|
75
|
+
// ── Selectable Column ──
|
|
76
|
+
export const TABLE_SELECTABLE_COLUMN_WIDTH = 48;
|
|
74
77
|
// ── Header Icon Color Defaults ──
|
|
75
78
|
const ICON_DEFAULT_COLOR = {
|
|
76
79
|
pageEdit: systemTokens.color.darkblue.strong,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h, Host, readTask, forceUpdate, } from "@stencil/core";
|
|
2
2
|
import { nanoid } from "nanoid";
|
|
3
3
|
import { TABLE_ID_ATTR, } from "./constants";
|
|
4
|
-
import { TABLE_RADIUS, TABLE_BORDER, TABLE_BODY_TYPOGRAPHY, TABLE_BODY_LAYOUT, } from "./sd-table.config";
|
|
4
|
+
import { TABLE_RADIUS, TABLE_BORDER, TABLE_BODY_TYPOGRAPHY, TABLE_BODY_LAYOUT, TABLE_SELECTABLE_COLUMN_WIDTH, } from "./sd-table.config";
|
|
5
5
|
export class SdTable {
|
|
6
6
|
static DEFAULT_NO_DATA_LABEL = '데이터가 없습니다.';
|
|
7
7
|
el;
|
|
@@ -17,7 +17,7 @@ export class SdTable {
|
|
|
17
17
|
height;
|
|
18
18
|
stickyHeader = false;
|
|
19
19
|
stickyColumn = { left: 0, right: 0 };
|
|
20
|
-
|
|
20
|
+
useTop = false;
|
|
21
21
|
noDataLabel = SdTable.DEFAULT_NO_DATA_LABEL;
|
|
22
22
|
resolvedNoDataLabel = SdTable.DEFAULT_NO_DATA_LABEL;
|
|
23
23
|
isLoading = false;
|
|
@@ -77,8 +77,6 @@ export class SdTable {
|
|
|
77
77
|
// 키: `${rowKey}::${field}` → sd-td의 sdClass 문자열
|
|
78
78
|
// sd-tr가 td를 그릴 때 머지해서 셀-단위 커스텀 클래스를 적용한다.
|
|
79
79
|
cellClassRegistry = new Map();
|
|
80
|
-
// separator 직전 행의 시각적 인덱스 집합
|
|
81
|
-
separatorPrevIndices = new Set();
|
|
82
80
|
// rowKey 문자열 → rows 배열에서의 visual index.
|
|
83
81
|
// rowspan 위쪽 행 스캔에서 "내 위에 있느냐"를 판정하기 위한 시각적 순서 소스.
|
|
84
82
|
// rows prop이 있으면 채워지고, 없으면 비어 있어 Number(rowKey) fallback이 사용된다.
|
|
@@ -231,9 +229,6 @@ export class SdTable {
|
|
|
231
229
|
el.unregisterSpanSync = this.unregisterSpanSync.bind(this);
|
|
232
230
|
el.getSpanSync = this.getSpanSync.bind(this);
|
|
233
231
|
el.isCoveredSync = this.isCoveredSync.bind(this);
|
|
234
|
-
el.registerSeparatorSync = this.registerSeparatorSync.bind(this);
|
|
235
|
-
el.unregisterSeparatorSync = this.unregisterSeparatorSync.bind(this);
|
|
236
|
-
el.isVisualLastRowBeforeSeparatorSync = this.isVisualLastRowBeforeSeparatorSync.bind(this);
|
|
237
232
|
el.hasRowspanSync = this.hasRowspanSync.bind(this);
|
|
238
233
|
el.registerCellClassSync = this.registerCellClassSync.bind(this);
|
|
239
234
|
el.unregisterCellClassSync = this.unregisterCellClassSync.bind(this);
|
|
@@ -573,7 +568,7 @@ export class SdTable {
|
|
|
573
568
|
getStickyStyleSync(colIdx) {
|
|
574
569
|
const leftOffset = this.columnWidths
|
|
575
570
|
.slice(0, colIdx)
|
|
576
|
-
.reduce((a, b) => a + b, this.selectable ?
|
|
571
|
+
.reduce((a, b) => a + b, this.selectable ? TABLE_SELECTABLE_COLUMN_WIDTH : 0);
|
|
577
572
|
const rightOffset = this.columnWidths
|
|
578
573
|
.filter((_, i) => i >=
|
|
579
574
|
this.columns.filter(c => c.visible !== false).length -
|
|
@@ -723,36 +718,6 @@ export class SdTable {
|
|
|
723
718
|
}
|
|
724
719
|
return false;
|
|
725
720
|
}
|
|
726
|
-
// rowspan을 반영한 셀의 시각적 하단 행 인덱스를 반환한다.
|
|
727
|
-
// isVisualLastRowBeforeSeparatorSync 헬퍼.
|
|
728
|
-
resolveVisualBottom(rowKey, field) {
|
|
729
|
-
const myRowIdx = this.resolveRowIndex(rowKey);
|
|
730
|
-
if (myRowIdx == null)
|
|
731
|
-
return null;
|
|
732
|
-
const span = this.spanRegistry.get(this.spanKey(rowKey, field));
|
|
733
|
-
const rs = Math.max(1, span?.rowspan ?? 1);
|
|
734
|
-
return myRowIdx + rs - 1;
|
|
735
|
-
}
|
|
736
|
-
registerSeparatorSync(prevRowKey) {
|
|
737
|
-
const idx = this.resolveRowIndex(prevRowKey);
|
|
738
|
-
if (idx != null)
|
|
739
|
-
this.separatorPrevIndices.add(idx);
|
|
740
|
-
}
|
|
741
|
-
unregisterSeparatorSync(prevRowKey) {
|
|
742
|
-
const idx = this.resolveRowIndex(prevRowKey);
|
|
743
|
-
if (idx != null)
|
|
744
|
-
this.separatorPrevIndices.delete(idx);
|
|
745
|
-
}
|
|
746
|
-
// 셀의 시각적 하단이 separator 바로 앞 행인지 판정.
|
|
747
|
-
// 해당 셀에 border-bottom: none을 적용하기 위함.
|
|
748
|
-
isVisualLastRowBeforeSeparatorSync(rowKey, field) {
|
|
749
|
-
if (this.separatorPrevIndices.size === 0)
|
|
750
|
-
return false;
|
|
751
|
-
const visualBottom = this.resolveVisualBottom(rowKey, field);
|
|
752
|
-
if (visualBottom == null)
|
|
753
|
-
return false;
|
|
754
|
-
return this.separatorPrevIndices.has(visualBottom);
|
|
755
|
-
}
|
|
756
721
|
setRowCountSync(count) {
|
|
757
722
|
const safeCount = Math.max(0, Math.floor(this.toFiniteNumber(count, 0)));
|
|
758
723
|
if (safeCount !== this.rowCount) {
|
|
@@ -848,26 +813,27 @@ export class SdTable {
|
|
|
848
813
|
'--table-body-font-size': `${TABLE_BODY_TYPOGRAPHY.fontSize}px`,
|
|
849
814
|
'--table-body-line-height': `${TABLE_BODY_TYPOGRAPHY.lineHeight}px`,
|
|
850
815
|
'--table-body-text-decoration': TABLE_BODY_TYPOGRAPHY.textDecoration,
|
|
816
|
+
'--table-selectable-width': `${TABLE_SELECTABLE_COLUMN_WIDTH}px`,
|
|
851
817
|
};
|
|
852
|
-
return (h(Host, { key: '
|
|
818
|
+
return (h(Host, { key: '4596e04bd57aca00fa6378fd26ce33a06a795eaf', style: hostStyle }, h("div", { key: '11a20d327410b0be659cede32917164e036e796c', class: "sd-table__container", style: {
|
|
853
819
|
'--table-width': this.width,
|
|
854
820
|
'--table-height': effectiveTableHeight,
|
|
855
821
|
'--table-container-height': `calc(${effectiveTableHeight} - ${paginationHeight}px)`,
|
|
856
|
-
} }, h("div", { key: '
|
|
822
|
+
} }, h("div", { key: 'f4f3acf584dc4eacdae25b11aa2b62b73ffab949', class: {
|
|
857
823
|
'sd-table__wrapper': true,
|
|
858
|
-
'sd-table__wrapper--
|
|
859
|
-
} }, h("div", { key: '
|
|
824
|
+
'sd-table__wrapper--use-top': this.useTop,
|
|
825
|
+
} }, h("div", { key: 'c8ab618b9c990a22b8e9466a5bfb5f02f4de8b12', class: {
|
|
860
826
|
'sd-table__scroll-container': true,
|
|
861
827
|
'sd-table__scroll-container--loading': this.isLoading,
|
|
862
828
|
'sd-table__scroll-container--no-data': isNoData,
|
|
863
|
-
} }, this.isLoading && (h("div", { key: '
|
|
829
|
+
} }, this.isLoading && (h("div", { key: 'a696933a70799ba282fc743281d0af27fd691a2e', class: "sd-table__loading", style: { top: `${this.loadingScrollTop}px` } }, h("sd-circle-progress", { key: 'cba6ac47367ef6499bf338b9b757ee74fdd7e6c1', indeterminate: true }))), isNoData && (h(h.Fragment, null, h("div", { key: '6e22156bf5b0fb9814d9bf9cad57506758c6284b', class: "sd-table__no-data-header-overlay" }), h("div", { key: 'b72f9fabcc8acb8e700ad55acc4d7aff08355a1c', class: "sd-table__no-data" }, h("div", { key: '43f271a8803121362f16e8153748328658f073ec', class: "sd-table__no-data-content", ref: el => {
|
|
864
830
|
this.noDataContentEl = el;
|
|
865
831
|
if (el)
|
|
866
832
|
this.syncNoDataContentObserver();
|
|
867
|
-
} }, h("slot", { key: '
|
|
833
|
+
} }, h("slot", { key: '4b8533115bbc81962b80c9c2533fe4b44a87193c', name: "no-data" }, h("span", { key: 'd94c4f7cf9eca7901b99434f712480a7b20c869a' }, this.resolvedNoDataLabel)))))), h("table", { key: 'a9a353aca09124ed8a82fcd2f8a0a7de09b234f5', class: this.tableClasses }, this.autoThead ? (h("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange }, h("sd-thead", { rows: this.rows ?? [] }))) : (h("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange })), this.autoTbody ? (h("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }, h("sd-tbody", { rows: this.rows ?? [] }, this.renderAutoRows()))) : (h("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }))))), this.pagination &&
|
|
868
834
|
this.pagination.rowsPerPage > 0 &&
|
|
869
835
|
this.rowCount > 0 &&
|
|
870
|
-
!this.useVirtualScroll && (h("div", { key: '
|
|
836
|
+
!this.useVirtualScroll && (h("div", { key: '8afeb9398c3d7540a54b9a3660fb9685ae1cddca', class: "sd-table__pagination" }, h("sd-pagination", { key: 'e2cbb3f7414f65b81ab2d33eaec5d9f28bed6cc8', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onSdPageChange: (e) => this.changePage(e.detail) }), this.useRowsPerPageSelect && (h("sd-select", { key: 'ce723544dbc7e4cc0d77ced3b685b8575cf67e6f', value: this.useInternalPagination
|
|
871
837
|
? this.innerRowsPerPage
|
|
872
838
|
: this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", emitValue: true, onSdUpdate: e => {
|
|
873
839
|
if (!this.isRowsPerPageValue(e.detail))
|
|
@@ -1126,12 +1092,12 @@ export class SdTable {
|
|
|
1126
1092
|
"setter": false,
|
|
1127
1093
|
"defaultValue": "{ left: 0, right: 0 }"
|
|
1128
1094
|
},
|
|
1129
|
-
"
|
|
1130
|
-
"type": "
|
|
1095
|
+
"useTop": {
|
|
1096
|
+
"type": "boolean",
|
|
1131
1097
|
"mutable": false,
|
|
1132
1098
|
"complexType": {
|
|
1133
|
-
"original": "
|
|
1134
|
-
"resolved": "
|
|
1099
|
+
"original": "boolean",
|
|
1100
|
+
"resolved": "boolean",
|
|
1135
1101
|
"references": {}
|
|
1136
1102
|
},
|
|
1137
1103
|
"required": false,
|
|
@@ -1143,8 +1109,8 @@ export class SdTable {
|
|
|
1143
1109
|
"getter": false,
|
|
1144
1110
|
"setter": false,
|
|
1145
1111
|
"reflect": false,
|
|
1146
|
-
"attribute": "
|
|
1147
|
-
"defaultValue": "
|
|
1112
|
+
"attribute": "use-top",
|
|
1113
|
+
"defaultValue": "false"
|
|
1148
1114
|
},
|
|
1149
1115
|
"noDataLabel": {
|
|
1150
1116
|
"type": "string",
|
|
@@ -45,9 +45,9 @@ export class SdTbody {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
render() {
|
|
48
|
-
return (h(Host, { key: '
|
|
48
|
+
return (h(Host, { key: 'cee6094ac768af309c39500cb337d8516de6aabe', slot: `${this.tableId}-body` }, h("tbody", { key: '50d46c6b102900b18a96c1e345afb4185e59e0ae', class: { tbody: true } }, [
|
|
49
49
|
this.topSpacerHeight > 0 && (h("tr", { key: "spacer-top", class: "tbody__spacer", style: { height: `${this.topSpacerHeight}px`, display: 'block' } })),
|
|
50
|
-
h("slot", { key: '
|
|
50
|
+
h("slot", { key: 'd4f8057c143b2f91146831fac2b4ba1162d36aeb' }),
|
|
51
51
|
this.bottomSpacerHeight > 0 && (h("tr", { key: "spacer-bottom", class: "tbody__spacer", style: { height: `${this.bottomSpacerHeight}px`, display: 'block' } })),
|
|
52
52
|
])));
|
|
53
53
|
}
|
|
@@ -150,7 +150,7 @@ export class SdTd {
|
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
render() {
|
|
153
|
-
return (h(Host, { key: '
|
|
153
|
+
return (h(Host, { key: '1d7123e1f35cfb513a1fa89b4d60f8dde7715a2f', class: { [`align-${this.align}`]: Boolean(this.align) } }, h("slot", { key: 'f7b9266106a6df93e2101ca9a324035960281a6f' })));
|
|
154
154
|
}
|
|
155
155
|
static get is() { return "sd-td"; }
|
|
156
156
|
static get originalStyleUrls() {
|
|
@@ -42,11 +42,10 @@ sd-thead * {
|
|
|
42
42
|
}
|
|
43
43
|
.th--selected {
|
|
44
44
|
position: relative;
|
|
45
|
-
width:
|
|
46
|
-
max-width:
|
|
47
|
-
min-width:
|
|
48
|
-
|
|
49
|
-
text-align: left;
|
|
45
|
+
width: var(--table-selectable-width, 48px) !important;
|
|
46
|
+
max-width: var(--table-selectable-width, 48px) !important;
|
|
47
|
+
min-width: var(--table-selectable-width, 48px) !important;
|
|
48
|
+
text-align: center;
|
|
50
49
|
}
|
|
51
50
|
.th--selected sd-checkbox label {
|
|
52
51
|
position: relative;
|
|
@@ -133,6 +132,17 @@ sd-thead * {
|
|
|
133
132
|
word-break: keep-all;
|
|
134
133
|
}
|
|
135
134
|
|
|
135
|
+
.th__bar {
|
|
136
|
+
position: absolute;
|
|
137
|
+
top: 50%;
|
|
138
|
+
right: 0;
|
|
139
|
+
transform: translateY(-50%);
|
|
140
|
+
width: var(--table-border-width, 1px);
|
|
141
|
+
height: var(--table-header-resizer-height, 16px);
|
|
142
|
+
z-index: 3;
|
|
143
|
+
background-color: var(--table-header-resizer-color, #CCCCCC);
|
|
144
|
+
}
|
|
145
|
+
|
|
136
146
|
.th__resizer {
|
|
137
147
|
position: absolute;
|
|
138
148
|
top: 50%;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { h, Host, } from "@stencil/core";
|
|
2
2
|
import { TABLE_ID_ATTR, } from "../constants";
|
|
3
|
-
import { resolveTableIconColor, resolveSortIconName, TABLE_HEADER_LAYOUT, TABLE_HEADER_TYPOGRAPHY, TABLE_HEADER_COLORS, TABLE_HEADER_RESIZING_BAR, TABLE_BORDER, } from "../sd-table.config";
|
|
3
|
+
import { resolveTableIconColor, resolveSortIconName, TABLE_HEADER_LAYOUT, TABLE_HEADER_TYPOGRAPHY, TABLE_HEADER_COLORS, TABLE_HEADER_RESIZING_BAR, TABLE_BORDER, TABLE_SELECTABLE_COLUMN_WIDTH, } from "../sd-table.config";
|
|
4
4
|
export class SdThead {
|
|
5
5
|
el;
|
|
6
6
|
columns;
|
|
@@ -96,7 +96,8 @@ export class SdThead {
|
|
|
96
96
|
if (this.tableEl?.getStickyStyleSync) {
|
|
97
97
|
return this.tableEl.getStickyStyleSync(colIdx);
|
|
98
98
|
}
|
|
99
|
-
const leftOffset = this.columnWidths.slice(0, colIdx).reduce((a, b) => a + b, 0) +
|
|
99
|
+
const leftOffset = this.columnWidths.slice(0, colIdx).reduce((a, b) => a + b, 0) +
|
|
100
|
+
(this._selectable ? TABLE_SELECTABLE_COLUMN_WIDTH : 0);
|
|
100
101
|
const rightOffset = this.columnWidths
|
|
101
102
|
.filter((_, i) => i >= this.visibleColumns.length - (this._stickyColumn.right || 0) && i > colIdx)
|
|
102
103
|
.reduce((a, b) => a + b, 0);
|
|
@@ -157,16 +158,16 @@ export class SdThead {
|
|
|
157
158
|
'--table-border-color': TABLE_BORDER.color,
|
|
158
159
|
'--table-border-width': `${TABLE_BORDER.width}px`,
|
|
159
160
|
};
|
|
160
|
-
return (h(Host, { key: '
|
|
161
|
+
return (h(Host, { key: '2b949f43561a2cd36b82de324d3d8c0d8a1d8431', slot: `${this.tableId}-head`, style: headStyle }, h("thead", { key: '45918bfb1dc44bb0f45a0f1646bf2276b1ca74ec', class: {
|
|
161
162
|
'thead': true,
|
|
162
163
|
'thead--sticky': this._stickyHeader,
|
|
163
|
-
} }, h("tr", { key: '
|
|
164
|
+
} }, h("tr", { key: '3802f86a730041ca405071b243a99c28e04558d2', class: "tr" }, this._selectable && (h("th", { key: 'd60e1323fca90516f38cedfa6fc8bf17840fad5d', class: {
|
|
164
165
|
'th': true,
|
|
165
166
|
'th--selected': true,
|
|
166
167
|
'sticky-left': true,
|
|
167
168
|
'sticky-left-edge': stickyLeftCount === 0,
|
|
168
169
|
'is-scrolled-left': stickyLeftCount === 0 && this._scrolledLeft,
|
|
169
|
-
}, style: { '--sticky-left-offset': '0px' } }, h("sd-checkbox", { key: '
|
|
170
|
+
}, style: { '--sticky-left-offset': '0px' } }, h("sd-checkbox", { key: '0c0b61405a8624cfc1d803f8ae8905d74d6c10f1', value: this.getIsAllChecked(), disabled: safeRows.length === 0, onSdUpdate: (e) => this.handleSelectAll(e.detail) }), h("div", { key: 'b808a627e740a9c3a9f6f03e32cf90e598fd506f', class: "th__bar" }))), stickyLeftCols.map((col, idx) => (h("th", { key: col.name, class: {
|
|
170
171
|
'th': true,
|
|
171
172
|
[`${col.thClass}`]: Boolean(col.thClass),
|
|
172
173
|
'sticky-left': true,
|
|
@@ -41,11 +41,10 @@ sd-tr * {
|
|
|
41
41
|
}
|
|
42
42
|
.td--selected {
|
|
43
43
|
position: relative;
|
|
44
|
-
width:
|
|
45
|
-
max-width:
|
|
46
|
-
min-width:
|
|
47
|
-
|
|
48
|
-
text-align: left;
|
|
44
|
+
width: var(--table-selectable-width, 48px) !important;
|
|
45
|
+
max-width: var(--table-selectable-width, 48px) !important;
|
|
46
|
+
min-width: var(--table-selectable-width, 48px) !important;
|
|
47
|
+
text-align: center;
|
|
49
48
|
}
|
|
50
49
|
.td--selected sd-checkbox label {
|
|
51
50
|
position: relative;
|
|
@@ -133,8 +132,8 @@ sd-tr * {
|
|
|
133
132
|
border-bottom: none;
|
|
134
133
|
}
|
|
135
134
|
|
|
136
|
-
.
|
|
137
|
-
|
|
135
|
+
.tr--separator--dense .td--separator {
|
|
136
|
+
height: var(--table-separator-dense-width, 4px);
|
|
138
137
|
}
|
|
139
138
|
|
|
140
139
|
.td--divider-left {
|
|
@@ -8,7 +8,7 @@ export class SdTr {
|
|
|
8
8
|
stickyColumn;
|
|
9
9
|
rowKey = '';
|
|
10
10
|
row = {};
|
|
11
|
-
separator;
|
|
11
|
+
separator = null;
|
|
12
12
|
tableId = '';
|
|
13
13
|
columnWidths = [];
|
|
14
14
|
isVisible = true;
|
|
@@ -20,8 +20,8 @@ export class SdTr {
|
|
|
20
20
|
_scrolledRight = false;
|
|
21
21
|
_dense = false;
|
|
22
22
|
tableEl = null;
|
|
23
|
-
_prevRowKey = null;
|
|
24
23
|
componentWillLoad() {
|
|
24
|
+
this.row = this.row ?? {};
|
|
25
25
|
this.syncTableContext();
|
|
26
26
|
this.columnWidths = this.columnWidths ?? [];
|
|
27
27
|
this.resolveConfig();
|
|
@@ -30,20 +30,6 @@ export class SdTr {
|
|
|
30
30
|
}
|
|
31
31
|
componentDidLoad() {
|
|
32
32
|
this.syncTableContext();
|
|
33
|
-
if (this.separator) {
|
|
34
|
-
const prev = this.el.previousElementSibling;
|
|
35
|
-
if (prev?.tagName?.toLowerCase() === 'sd-tr') {
|
|
36
|
-
const prevRowKey = prev.rowKey;
|
|
37
|
-
this._prevRowKey = prevRowKey;
|
|
38
|
-
this.tableEl?.registerSeparatorSync?.(prevRowKey);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
disconnectedCallback() {
|
|
43
|
-
if (this._prevRowKey !== null) {
|
|
44
|
-
this.tableEl?.unregisterSeparatorSync?.(this._prevRowKey);
|
|
45
|
-
this._prevRowKey = null;
|
|
46
|
-
}
|
|
47
33
|
}
|
|
48
34
|
syncTableContext() {
|
|
49
35
|
// sd-table이 shadow:true이므로 fallback content로 렌더되면 closest가 경계를 못 넘는다.
|
|
@@ -185,17 +171,6 @@ export class SdTr {
|
|
|
185
171
|
.filter(Boolean)
|
|
186
172
|
.map(c => [c, true]));
|
|
187
173
|
}
|
|
188
|
-
isVisualLastRowBeforeSeparator(col) {
|
|
189
|
-
if (!this.tableEl?.isVisualLastRowBeforeSeparatorSync)
|
|
190
|
-
return false;
|
|
191
|
-
const fieldName = typeof col.field === 'string' ? col.field : col.name;
|
|
192
|
-
return this.tableEl.isVisualLastRowBeforeSeparatorSync(this.rowKey, fieldName);
|
|
193
|
-
}
|
|
194
|
-
isVisualLastRowBeforeSeparatorForSelfRow() {
|
|
195
|
-
if (!this.tableEl?.isVisualLastRowBeforeSeparatorSync)
|
|
196
|
-
return false;
|
|
197
|
-
return this.tableEl.isVisualLastRowBeforeSeparatorSync(this.rowKey, '');
|
|
198
|
-
}
|
|
199
174
|
render() {
|
|
200
175
|
const stickyLeftCount = this._stickyColumn.left || 0;
|
|
201
176
|
const stickyRightCount = this._stickyColumn.right || 0;
|
|
@@ -221,15 +196,16 @@ export class SdTr {
|
|
|
221
196
|
'--table-border-width': `${TABLE_BORDER.width}px`,
|
|
222
197
|
'--table-separator-color': TABLE_SEPARATOR.color,
|
|
223
198
|
'--table-separator-width': `${TABLE_SEPARATOR.width}px`,
|
|
199
|
+
'--table-separator-dense-width': `${TABLE_SEPARATOR.denseWidth}px`,
|
|
224
200
|
};
|
|
225
|
-
if (this.separator) {
|
|
201
|
+
if (this.separator != null) {
|
|
226
202
|
const totalCols = this.visibleColumns.length + (this._selectable ? 1 : 0);
|
|
227
|
-
|
|
203
|
+
const isDense = this.separator === 4;
|
|
204
|
+
return (h(Host, { style: rowStyle }, h("tr", { class: { 'tr': true, 'tr--separator': true, 'tr--separator--dense': isDense } }, h("td", { colSpan: totalCols, class: "td td--separator" }))));
|
|
228
205
|
}
|
|
229
206
|
return (h(Host, { style: rowStyle }, h("tr", { class: { 'tr': true, 'tr--no-hover': hasRowspan } }, this._selectable && (h("td", { class: {
|
|
230
207
|
'td': true,
|
|
231
208
|
'td--selected': true,
|
|
232
|
-
'td--before-separator': this.isVisualLastRowBeforeSeparatorForSelfRow(),
|
|
233
209
|
'sticky-left': true,
|
|
234
210
|
'sticky-left-edge': stickyLeftCount === 0,
|
|
235
211
|
'is-scrolled-left': stickyLeftCount === 0 && this._scrolledLeft,
|
|
@@ -242,7 +218,6 @@ export class SdTr {
|
|
|
242
218
|
return (h("td", { key: col.name, rowSpan: span?.rowspan, colSpan: span?.colspan, class: {
|
|
243
219
|
'td': true,
|
|
244
220
|
[`td--${col.align || 'left'}`]: true,
|
|
245
|
-
'td--before-separator': this.isVisualLastRowBeforeSeparator(col),
|
|
246
221
|
'sticky-left': true,
|
|
247
222
|
'sticky-left-edge': idx === stickyLeftCount - 1,
|
|
248
223
|
'is-scrolled-left': idx === stickyLeftCount - 1 && this._scrolledLeft,
|
|
@@ -257,12 +232,14 @@ export class SdTr {
|
|
|
257
232
|
const span = this.getSpanFor(col);
|
|
258
233
|
const sdCellClass = this.getCellClassFor(col);
|
|
259
234
|
return (h("td", { key: col.name, rowSpan: span?.rowspan, colSpan: span?.colspan, class: {
|
|
260
|
-
|
|
235
|
+
td: true,
|
|
261
236
|
[`td--${col.align || 'left'}`]: true,
|
|
262
|
-
'td--before-separator': this.isVisualLastRowBeforeSeparator(col),
|
|
263
237
|
[`${col.tdClass}`]: Boolean(col.tdClass),
|
|
264
238
|
...this.expandCellClass(sdCellClass),
|
|
265
|
-
}, style: {
|
|
239
|
+
}, style: {
|
|
240
|
+
...this.getStickyStyle(actualColIdx),
|
|
241
|
+
...this.getFramePaddingStyle(fieldName),
|
|
242
|
+
} }, h("slot", { name: `${this.tableId}-${fieldName}-${this.rowKey}` }, h("span", null, this.getCellValue(col)))));
|
|
266
243
|
}), stickyRightCols.map((col, relativeIdx) => {
|
|
267
244
|
const actualColIdx = this.visibleColumns.length - stickyRightCount + relativeIdx;
|
|
268
245
|
if (this.isCovered(actualColIdx))
|
|
@@ -273,13 +250,15 @@ export class SdTr {
|
|
|
273
250
|
return (h("td", { key: col.name, rowSpan: span?.rowspan, colSpan: span?.colspan, class: {
|
|
274
251
|
'td': true,
|
|
275
252
|
[`td--${col.align || 'left'}`]: true,
|
|
276
|
-
'td--before-separator': this.isVisualLastRowBeforeSeparator(col),
|
|
277
253
|
'sticky-right': true,
|
|
278
254
|
'sticky-right-edge': relativeIdx === 0,
|
|
279
255
|
'is-scrolled-right': relativeIdx === 0 && this._scrolledRight,
|
|
280
256
|
[`${col.tdClass}`]: Boolean(col.tdClass),
|
|
281
257
|
...this.expandCellClass(sdCellClass),
|
|
282
|
-
}, style: {
|
|
258
|
+
}, style: {
|
|
259
|
+
...this.getStickyStyle(actualColIdx),
|
|
260
|
+
...this.getFramePaddingStyle(fieldName),
|
|
261
|
+
} }, h("slot", { name: `${this.tableId}-${fieldName}-${this.rowKey}` }, h("span", null, this.getCellValue(col)))));
|
|
283
262
|
}))));
|
|
284
263
|
}
|
|
285
264
|
static get is() { return "sd-tr"; }
|
|
@@ -408,11 +387,11 @@ export class SdTr {
|
|
|
408
387
|
"defaultValue": "{}"
|
|
409
388
|
},
|
|
410
389
|
"separator": {
|
|
411
|
-
"type": "
|
|
390
|
+
"type": "any",
|
|
412
391
|
"mutable": false,
|
|
413
392
|
"complexType": {
|
|
414
|
-
"original": "
|
|
415
|
-
"resolved": "
|
|
393
|
+
"original": "'4' | '6' | 4 | 6 | null",
|
|
394
|
+
"resolved": "\"4\" | \"6\" | 4 | 6 | null | undefined",
|
|
416
395
|
"references": {}
|
|
417
396
|
},
|
|
418
397
|
"required": false,
|
|
@@ -424,7 +403,8 @@ export class SdTr {
|
|
|
424
403
|
"getter": false,
|
|
425
404
|
"setter": false,
|
|
426
405
|
"reflect": false,
|
|
427
|
-
"attribute": "separator"
|
|
406
|
+
"attribute": "separator",
|
|
407
|
+
"defaultValue": "null"
|
|
428
408
|
}
|
|
429
409
|
};
|
|
430
410
|
}
|
|
@@ -67,7 +67,7 @@ export class SdTabs {
|
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
render() {
|
|
70
|
-
return (h("div", { key: '
|
|
70
|
+
return (h("div", { key: '92384577bf4ce85de90ae05a32e44715e595fe16', class: this.getContainerClasses(), style: this.buildCssVars() }, this.tabs.map((tab, index) => {
|
|
71
71
|
const badgeName = this.getBadgeName(tab);
|
|
72
72
|
return (h("div", { key: `tab-${index}`, role: "tab", tabindex: 0, "aria-selected": tab.value === this.value ? 'true' : 'false', class: this.getTabClasses(tab), "aria-label": tab.label || 'tab', onClick: () => this.handleTabClick(tab), onKeyDown: e => {
|
|
73
73
|
if (e.key === 'Enter' || e.key === ' ') {
|
|
@@ -105,7 +105,7 @@ export class SdTextarea {
|
|
|
105
105
|
'--sd-system-size-field-sm-height': 'auto',
|
|
106
106
|
'--sd-system-radius-field-sm': `${TEXTAREA_TOKENS.radius}px`,
|
|
107
107
|
};
|
|
108
|
-
return (h("sd-field", { key: '
|
|
108
|
+
return (h("sd-field", { key: '1f1a6ed592df92b4aa0aacfbc1ba8926b93b7066', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, readonly: this.readonly, focused: this.focused, hovered: this.hovered, status: this.status, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("div", { key: '63b4847968e5a1ceb309b7d0950da33927e25244', class: "sd-textarea__content" }, h("textarea", { key: '89d81a7792c3b5a4a1bcaa0f7bd73e0b3a0bd192', name: this.name, ref: el => (this.nativeEl = el), class: `sd-textarea__native ${this.textareaClass}`, value: this.internalValue || '', placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readOnly: this.readonly, autofocus: this.autoFocus, maxLength: this.maxLength, rows: this.rows, spellcheck: this.spellcheck, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.textareaStyle }))));
|
|
109
109
|
}
|
|
110
110
|
static get is() { return "sd-textarea"; }
|
|
111
111
|
static get originalStyleUrls() {
|
|
@@ -17,12 +17,12 @@ export class SdToast {
|
|
|
17
17
|
const linkColor = typeConfig.linkColor ?? typeConfig.content;
|
|
18
18
|
const useDefaultCloseIntent = ['default', 'caution', 'info'].includes(this.type);
|
|
19
19
|
const buttonName = TOAST_BUTTON_NAME_BY_TYPE[this.type] ?? TOAST_BUTTON_NAME_BY_TYPE.default;
|
|
20
|
-
return (h("div", { key: '
|
|
20
|
+
return (h("div", { key: '735fa3f949ee4c7d0178f999c02e90c829c133b4', style: {
|
|
21
21
|
'--sd-toast-bg': typeConfig.bg,
|
|
22
22
|
'--sd-toast-text': typeConfig.content,
|
|
23
23
|
'--sd-toast-icon': iconColor,
|
|
24
24
|
'--sd-toast-link': linkColor,
|
|
25
|
-
} }, h("div", { key: '
|
|
25
|
+
} }, h("div", { key: '4e483d858c3268bde838ddc5c5c9cb5065855326', class: "sd-toast", role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.icon && (h("div", { key: '007eded85c508bdd2da05b1c9d489ff2d03a4df9', class: "sd-toast__icon" }, h("sd-icon", { key: '099d5556f4b0a11f5162cb76a6166a2d662d9590', name: this.icon, size: iconSize, color: iconColor }))), h("div", { key: '3825916248bc2385fe87c8aeb6d741b59738246f', class: "sd-toast__content" }, h("span", { key: 'fba817baf33179296f50d3fe4147cc99c38fbb83', class: "sd-toast__message" }, this.message)), this.link && (h("a", { key: '39667765a9a72c761f0b464f78c7652e60e6dd16', href: this.link, class: "sd-toast__link", target: "_blank", rel: "noopener noreferrer" }, this.linkLabel || this.link)), this.buttonLabel && (h("sd-button", { key: '3da2f9a5daf53de4400bfec79654b5795c3b6af4', class: "sd-toast__button", name: buttonName, label: this.buttonLabel, onSdClick: (event) => this.buttonClick.emit(event.detail) })), this.useClose && (h("sd-ghost-button", { key: '2578d35dc11e06178c6902cb358bcdb8ccabbf36', class: "sd-toast__close", icon: "close", intent: useDefaultCloseIntent ? 'default' : 'inverse', ariaLabel: "close", size: "xs", onClick: () => this.close.emit() })))));
|
|
26
26
|
}
|
|
27
27
|
static get is() { return "sd-toast"; }
|
|
28
28
|
static get originalStyleUrls() {
|
|
@@ -216,7 +216,7 @@ export class SdToastContainer {
|
|
|
216
216
|
const activeToasts = toasts.filter(t => t.state !== 'exiting').reverse();
|
|
217
217
|
const indexMap = new Map();
|
|
218
218
|
activeToasts.forEach((t, i) => indexMap.set(t.id, i));
|
|
219
|
-
return (h("div", { key: '
|
|
219
|
+
return (h("div", { key: '1de55d255b75842f52e3f0a147a69493ed1a7de5', class: "sd-toast-container", style: this.getContainerStyles(), onMouseEnter: () => {
|
|
220
220
|
this.expanded = true;
|
|
221
221
|
this.pauseTimers();
|
|
222
222
|
}, onMouseLeave: () => {
|
|
@@ -45,7 +45,7 @@ export class SdToggle {
|
|
|
45
45
|
'--sd-toggle-content-select': TOGGLE_COLORS.content.select,
|
|
46
46
|
'--sd-toggle-content-disabled': TOGGLE_COLORS.content.disabled,
|
|
47
47
|
};
|
|
48
|
-
return (h("label", { key: '
|
|
48
|
+
return (h("label", { key: 'f1b1b68270d523f7f3e40c8145f35e93df269d73', class: this.toggleClasses, style: cssVars, "aria-label": this.label || 'toggle' }, this.label, h("input", { key: '7e07c190916e19ffe8744f6b491e92e6bf8efd36', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
|
|
49
49
|
}
|
|
50
50
|
static get is() { return "sd-toggle"; }
|
|
51
51
|
static get originalStyleUrls() {
|
|
@@ -84,14 +84,14 @@ export class SdTooltip {
|
|
|
84
84
|
const hasLabel = this.label !== undefined && this.label !== '';
|
|
85
85
|
const divTrigger = trigger === 'hover' ? hoverTrigger : hasLabel ? {} : { onClick: toggleTooltip };
|
|
86
86
|
const buttonClickTrigger = trigger === 'click' && hasLabel ? { onSdClick: toggleTooltip } : {};
|
|
87
|
-
return (h(Fragment, { key: '
|
|
87
|
+
return (h(Fragment, { key: '0ffbc5e61b4b5ab9bf1fda1c064de63c1467bb37' }, h("div", { key: 'c74bff7fde9c1f139435c2b37f69e7ee7492ec91', class: `sd-tooltip-trigger ${this.sdClass !== undefined && this.sdClass !== '' ? this.sdClass : ''}`, ...divTrigger }, hasLabel ? (h("sd-button", { ref: el => (this.buttonEl = el), name: this.name ?? 'primary_sm', label: this.label, icon: icon, rightIcon: this.rightIcon, ariaLabel: this.ariaLabel, disabled: this.disabled, type: this.type ?? 'button', class: "sd-tooltip", ...buttonClickTrigger })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: icon, size: this.iconSize ?? 12, color: color, class: "sd-tooltip" }))), this.showTooltip && (h("sd-floating-portal", { key: '3a83a7d7a33fbdd720a52149b2a156ecc72c087b', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: placement, offset: this.tooltipOffset }, h("div", { key: 'abb63e4db76edae3df1d16d756e20a61284db87f', ref: el => (this.menuEl = el), class: {
|
|
88
88
|
'sd-floating-menu': true,
|
|
89
89
|
[`sd-floating-menu--${tooltipType}`]: true,
|
|
90
90
|
[`sd-floating-menu--${placement}`]: true,
|
|
91
91
|
}, style: {
|
|
92
92
|
'--sd-floating-bg': typeConfig.bg,
|
|
93
93
|
'--sd-floating-content': typeConfig.content,
|
|
94
|
-
}, onMouseEnter: () => this.show(), onMouseLeave: () => this.startHideTimer() }, h("i", { key: '
|
|
94
|
+
}, onMouseEnter: () => this.show(), onMouseLeave: () => this.startHideTimer() }, h("i", { key: 'c29052cc7ed0e514ed27a7f576585d8865728cd4', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${placement}` }, h(TooltipArrow, { key: '9602237020591571cd76d3afa9e1c6383f7f421f' })), h("div", { key: '29091435fa3008eaf352b831eb4345ed9d6a5d86', class: "sd-floating-menu__content", innerHTML: this.slotContentHTML }))))));
|
|
95
95
|
}
|
|
96
96
|
static get is() { return "sd-tooltip"; }
|
|
97
97
|
static get originalStyleUrls() {
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-
|
|
1
|
+
export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-pwNG5WaX.js";import{c as t}from"./p-DRVnqiWc.js";let n=null;function e(t,n){void 0!==n&&(void 0!==n.position&&t.setAttribute("position",n.position),null!=n.maxVisible&&t.setAttribute("max-visible",n.maxVisible+""),null!=n.defaultDuration&&t.setAttribute("default-duration",n.defaultDuration+""),null!=n.zIndex&&t.setAttribute("z-index",n.zIndex+""))}function o(t){return n&&document.body.contains(n)?(e(n,t),n):(n=document.createElement("sd-toast-container"),e(n,t),document.body.appendChild(n),n)}function i(t){return"function"==typeof t.create?Promise.resolve():new Promise((n=>{const e=()=>{"function"==typeof t.create?n():requestAnimationFrame(e)};requestAnimationFrame(e)}))}const c={async create(t,n,e){const{globalOptions:s,...r}=e??{},c=o(s);return await i(c),c.create({message:t,type:n,...r})},async dismiss(t){if(null!=n)return await i(n),n.dismiss(t)},async dismissAll(){if(null!=n)return await i(n),n.dismissAll()},configure(t){o(t)}},u="sd-modal-container";let d=null;const l={ok:"confirm",cancel:"cancel",close:"close"};class m{modalId;okFn;cancelFn;closeFn;clickFn;dismissedFn;containerRef;pendingActions=[];dismissRequested=!1;constructor(t,n){this.modalId=t,this.containerRef=n}onOk(t){return this.okFn=t,this}onCancel(t){return this.cancelFn=t,this}onClose(t){return this.closeFn=t,this}onClick(t){return this.clickFn=t,this}onDismissed(t){return this.dismissedFn=t,this}update(t){return this.runOrQueue((()=>{this.containerRef?.update(this.modalId,t)})),this}ok(){return this.dismiss("ok")}cancel(){return this.dismiss("cancel")}close(){return this.dismiss("close")}dismiss(t="close"){if(this.dismissRequested)return this;this.dismissRequested=!0;const n=l[t];return this.runOrQueue((()=>{this.containerRef?.dismissById(this.modalId,n)})),this}_triggerOk(){this.okFn?.()}_triggerCancel(){this.cancelFn?.()}_triggerClose(){this.closeFn?.()}_triggerClick(){this.clickFn?.()}_triggerDismissed(){this.dismissedFn?.()}_setId(t){this.modalId=t;const n=[...this.pendingActions];this.pendingActions=[],n.forEach((t=>t()))}_setContainer(t){this.containerRef=t}runOrQueue(t){""===this.modalId||null==this.containerRef?this.pendingActions.push(t):t()}}function f(){if("undefined"==typeof window||"undefined"==typeof document||"undefined"==typeof customElements)throw Error("[sdModal] Browser APIs are unavailable. Use `sdModal` only on the client.")}function h(){if(f(),function(){if(!customElements.get(u))throw Error("[sdModal] `sd-modal-container` is not registered. Call `defineCustomElements(window)` before using `sdModal`.")}(),d&&d.isConnected)return d;const t=document.createElement(u);return t.setAttribute("auto-remove",""),document.body.appendChild(t),d=t,t}async function w(t){if(await customElements.whenDefined(u),"function"==typeof t.open)return Promise.resolve();throw Error("[sdModal] `sd-modal-container` is registered but not ready to open dialogs.")}function p(){return new m("")}function y(t,n){const{component:e,persistent:s}=n,o=h(),i={persistent:s};t._setContainer(o),w(o).then((async()=>{const n=await o.createCustom(e,i,t);t._setId(n)}))}const E={confirm(t){const n=h(),e=new m("",n);return w(n).then((async()=>{const s=await n.open(t,e);e._setId(s)})),e},loading(t={}){const n=h(),e=new m("",n);return w(n).then((async()=>{const s=await n.openLoading(t,e);e._setId(s)})),e},create(t){const n=p();return y(n,t),n},configure(n){f(),t(n)}},C="sd-loading-container";let k=null;async function A(t){const n=(function(){if("undefined"==typeof window||"undefined"==typeof document||"undefined"==typeof customElements)throw Error("[sdLoading] Browser APIs are unavailable. Use `sdLoading` only on the client.")}(),function(){if(!customElements.get(C))throw Error("[sdLoading] `sd-loading-container` is not registered. Call `defineCustomElements(window)` before using `sdLoading`.")}(),k&&document.body.contains(k)||(k=document.createElement(C),document.body.appendChild(k)),k);await customElements.whenDefined(C),t(n)}const P={show(t={}){A((n=>{n.show?.(t)}))},hide(){k&&A((t=>{t.hide?.()}))}};export{y as _attachSdModalWithRef,p as _createSdModalRef,P as sdLoading,E as sdModal,c as sdToast}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as t,H as s,c as i,h as e,t as o}from"./p-
|
|
1
|
+
import{p as t,H as s,c as i,h as e,t as o}from"./p-pwNG5WaX.js";const n=t(class extends s{constructor(t){super(),!1!==t&&this.__registerHost(),this.close=i(this,"sdClose",3)}get hostEl(){return this}to="body";parentRef=null;offset=[0,4];viewportPadding=0;zIndex=998;open=!1;close;container;wrapper;rafId;isInsideClick=!1;closeTransitionTimer;handleObservedScroll=()=>this.updatePosition();resizeObserver;mutationObserver;scrollParents=[];isObserved=!1;handleOpenChange(){this.syncPortalState()}componentDidLoad(){this.container=this.resolveContainer(),this.syncPortalState()}componentDidRender(){this.syncPortalState()}disconnectedCallback(){if(this.closeTransitionTimer&&clearTimeout(this.closeTransitionTimer),this.unobserveParent(),this.wrapper?.parentNode)try{this.wrapper.parentNode.removeChild(this.wrapper)}catch{}}resolveContainer(){const t="string"==typeof this.to?document.querySelector(this.to):this.to;return t instanceof s?t:document.body}createWrapper(){this.wrapper=document.createElement("div"),Object.assign(this.wrapper.style,{position:"absolute",top:"0",left:"0",zIndex:(this.zIndex??998).toString(),opacity:"0",transition:"opacity 0.15s ease-out",boxSizing:"border-box",visibility:"hidden"}),this.container.appendChild(this.wrapper)}ensureWrapper(){this.wrapper||(this.container||=this.resolveContainer(),this.createWrapper(),this.moveSlotContent())}syncPortalState(){if(!this.open)return this.wrapper&&(this.wrapper.style.transition="opacity 0.15s ease-out",this.wrapper.style.opacity="0",this.wrapper.style.pointerEvents="none",this.closeTransitionTimer&&clearTimeout(this.closeTransitionTimer),this.closeTransitionTimer=setTimeout((()=>{this.wrapper&&!this.open&&(this.wrapper.style.display="none")}),150)),void this.unobserveParent();this.closeTransitionTimer&&clearTimeout(this.closeTransitionTimer),this.ensureWrapper(),this.wrapper&&(this.wrapper.style.display="block",this.wrapper.style.transition="opacity 0.25s ease-out",this.wrapper.style.opacity="0",this.wrapper.style.pointerEvents="",this.observeParent(),this.updatePosition())}moveSlotContent(){this.wrapper&&Array.from(this.hostEl.childNodes).filter((t=>t.nodeType!==Node.COMMENT_NODE)).forEach((t=>this.wrapper.appendChild(t)))}updatePosition(){void 0!==this.rafId&&cancelAnimationFrame(this.rafId),this.rafId=requestAnimationFrame((()=>{if(!this.parentRef||!this.wrapper)return;const t=this.parentRef.getBoundingClientRect(),s=window.innerWidth,i=window.innerHeight,e=this.offset??[0,4],o=Math.max(0,this.viewportPadding??0),n=Math.max(s-2*o,0),h=Math.max(i-2*o,0);this.wrapper.style.maxWidth=`${n}px`,this.wrapper.style.maxHeight=`${h}px`;const r=this.wrapper.getBoundingClientRect(),a=i-t.bottom-e[1]-o;let d=t.bottom+window.scrollY+e[1],l=t.left+window.scrollX+e[0];a<r.height&&t.top-e[1]-o>a&&(d=t.top+window.scrollY-r.height-e[1]);const c=window.scrollY+o,p=window.scrollY+i-o-r.height;d=p<c?c:Math.min(Math.max(d,c),p),t.left+r.width+e[0]>s-o&&(l=t.right+window.scrollX-r.width-e[0]);const u=window.scrollX+o,w=window.scrollX+s-o-r.width;l=w<u?u:Math.min(Math.max(l,u),w),this.wrapper.style.top=`${d}px`,this.wrapper.style.left=`${l}px`,this.wrapper.style.visibility="visible",this.wrapper.style.opacity="1"}))}observeParent(){this.parentRef&&!this.isObserved&&(this.observeScrollParents(this.parentRef),"undefined"!=typeof ResizeObserver&&(this.resizeObserver=new ResizeObserver((()=>this.updatePosition())),this.resizeObserver.observe(this.parentRef)),"undefined"!=typeof MutationObserver&&(this.mutationObserver=new MutationObserver((()=>this.updatePosition())),this.mutationObserver.observe(document.body,{childList:!0,subtree:!0})),this.isObserved=!0)}unobserveParent(){this.isObserved&&(this.unobserveScrollParents(),this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.mutationObserver?.disconnect(),this.mutationObserver=void 0,this.isObserved=!1)}observeScrollParents(t){const s=this.getScrollParents(t);s.forEach((t=>{t.addEventListener("scroll",this.handleObservedScroll,{passive:!0})})),this.scrollParents=s}unobserveScrollParents(){this.scrollParents.forEach((t=>{t.removeEventListener("scroll",this.handleObservedScroll)})),this.scrollParents=[]}getScrollParents(t){const s=[];let i=t.parentElement;for(;i;){const{overflow:t,overflowX:e,overflowY:o}=getComputedStyle(i);[t,e,o].some((t=>/(auto|scroll|overlay)/.test(t)))&&s.push(i),i=i.parentElement}return s}handleMouseDown(t){this.isInsideClick=!(!this.wrapper||!this.wrapper.contains(t.target))}handleWindowClick(t){this.isInsideClick?this.isInsideClick=!1:this.wrapper?.contains(t.target)||this.close.emit()}render(){return e("slot",{key:"a227fa8a0639de7fd3a014762998692151284f87"})}static get watchers(){return{open:[{handleOpenChange:0}]}}},[772,"sd-portal",{to:[1],parentRef:[16],offset:[16],viewportPadding:[2,"viewport-padding"],zIndex:[2,"z-index"],open:[4]},[[9,"scroll","updatePosition"],[9,"resize","updatePosition"],[9,"mousedown","handleMouseDown"],[8,"click","handleWindowClick"]],{open:[{handleOpenChange:0}]}]);function h(){"undefined"!=typeof customElements&&["sd-portal"].forEach((t=>{"sd-portal"===t&&(customElements.get(o(t))||customElements.define(o(t),n))}))}export{n as S,h as d}
|