@sellmate/design-system 0.0.52 → 0.0.54
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/design-system.cjs.js +5 -3
- package/dist/cjs/design-system.cjs.js.map +1 -1
- package/dist/cjs/{index-Bxead0A0.js → index-B7tkxTye.js} +11 -5
- package/dist/cjs/index-B7tkxTye.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -0
- package/dist/cjs/loader.cjs.js +4 -2
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/sd-badge.cjs.entry.js +4 -4
- package/dist/cjs/{sd-button_15.cjs.entry.js → sd-button_23.cjs.entry.js} +1199 -94
- package/dist/cjs/sd-card.cjs.entry.js +4 -4
- package/dist/cjs/sd-date-box.cjs.entry.js +3 -3
- package/dist/cjs/sd-date-picker.cjs.entry.js +4 -4
- package/dist/cjs/sd-date-range-picker.cjs.entry.js +5 -5
- package/dist/cjs/sd-modal-card.cjs.entry.js +3 -3
- package/dist/cjs/sd-popover.cjs.entry.js +6 -6
- package/dist/cjs/sd-progress.cjs.entry.js +5 -5
- package/dist/cjs/sd-radio-button-group.cjs.entry.js +71 -0
- package/dist/cjs/sd-select-multiple.cjs.entry.js +8 -5
- package/dist/cjs/sd-table.cjs.entry.js +6 -6
- package/dist/cjs/sd-tbody_3.cjs.entry.js +10 -10
- package/dist/cjs/sd-td.cjs.entry.js +5 -5
- package/dist/cjs/{tooltipArrow-C7cIAuTo.js → tooltipArrow-8I9A3AOE.js} +3 -3
- package/dist/cjs/{tooltipArrow-C7cIAuTo.js.map → tooltipArrow-8I9A3AOE.js.map} +1 -1
- package/dist/collection/collection-manifest.json +8 -2
- package/dist/collection/components/sd-badge/sd-badge.js +1 -1
- package/dist/collection/components/sd-card/sd-card.js +1 -1
- package/dist/collection/components/sd-date-picker/sd-date-picker.js +1 -1
- package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +2 -2
- package/dist/collection/components/sd-file-picker/sd-file-picker.css +95 -0
- package/dist/collection/components/sd-file-picker/sd-file-picker.js +299 -0
- package/dist/collection/components/sd-file-picker/sd-file-picker.js.map +1 -0
- package/dist/collection/components/sd-guide/sd-guide.js +3 -3
- package/dist/collection/components/sd-icon/sd-icon.css +1 -4
- package/dist/collection/components/sd-icon/sd-icon.js +1 -1
- package/dist/collection/components/sd-input/sd-input.css +1 -4
- package/dist/collection/components/sd-input/sd-input.js +2 -2
- package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.js +1 -1
- package/dist/collection/components/sd-number-input/sd-number-input.css +128 -0
- package/dist/collection/components/sd-number-input/sd-number-input.js +744 -0
- package/dist/collection/components/sd-number-input/sd-number-input.js.map +1 -0
- package/dist/collection/components/sd-pagination/sd-pagination.js +2 -2
- package/dist/collection/components/sd-popover/sd-popover.js +2 -2
- package/dist/collection/components/sd-portal/sd-portal.js +1 -1
- package/dist/collection/components/sd-progress/sd-progress.js +2 -2
- package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.css +71 -0
- package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.js +214 -0
- package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.js.map +1 -0
- package/dist/collection/components/sd-radio-group/sd-radio-group.js +1 -1
- package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
- package/dist/collection/components/sd-select/sd-select.js +28 -4
- package/dist/collection/components/sd-select/sd-select.js.map +1 -1
- package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +26 -2
- package/dist/collection/components/sd-select-multiple/sd-select-multiple.js.map +1 -1
- package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.css +5 -0
- package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js +92 -43
- package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js.map +1 -1
- package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
- package/dist/collection/components/sd-table/sd-table.js +3 -3
- package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +1 -1
- package/dist/collection/components/sd-table/sd-td/sd-td.js +2 -2
- package/dist/collection/components/sd-table/sd-th/sd-th.js +1 -1
- package/dist/collection/components/sd-table/sd-tr/sd-tr.js +1 -1
- package/dist/collection/components/sd-table-backup/sd-table-backup.js +4 -4
- package/dist/collection/components/sd-tabs/sd-tabs.css +83 -0
- package/dist/collection/components/sd-tabs/sd-tabs.js +180 -0
- package/dist/collection/components/sd-tabs/sd-tabs.js.map +1 -0
- package/dist/collection/components/sd-tag/sd-tag.js +1 -1
- package/dist/collection/components/sd-toast-message/sd-toast-message.css +66 -0
- package/dist/collection/components/sd-toast-message/sd-toast-message.js +248 -0
- package/dist/collection/components/sd-toast-message/sd-toast-message.js.map +1 -0
- package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
- package/dist/collection/components/sd-toggle-button/sd-toggle-button.css +46 -0
- package/dist/collection/components/sd-toggle-button/sd-toggle-button.js +136 -0
- package/dist/collection/components/sd-toggle-button/sd-toggle-button.js.map +1 -0
- package/dist/collection/components/sd-tooltip/sd-tooltip.js +4 -4
- package/dist/collection/components/sd-tooltip-portal/sd-tooltip-portal.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/{p-DiehM5Y0.js → p-B05GJor3.js} +9 -9
- package/dist/components/p-B05GJor3.js.map +1 -0
- package/dist/components/{p-BpNH68jy.js → p-B3H_uLbl.js} +3 -3
- package/dist/components/{p-BpNH68jy.js.map → p-B3H_uLbl.js.map} +1 -1
- package/dist/components/{p-Dgxczhd0.js → p-BBNolp5g.js} +6 -6
- package/dist/components/{p-Dgxczhd0.js.map → p-BBNolp5g.js.map} +1 -1
- package/dist/components/{p-gnOKrd57.js → p-BDkKpeVz.js} +3 -3
- package/dist/components/{p-gnOKrd57.js.map → p-BDkKpeVz.js.map} +1 -1
- package/dist/components/p-BH3t01Im.js +109 -0
- package/dist/{design-system/sd-select-option-group.entry.esm.js.map → components/p-BH3t01Im.js.map} +1 -1
- package/dist/components/{p-S7M--xNH.js → p-BqxmCDlz.js} +18 -18
- package/dist/components/p-BqxmCDlz.js.map +1 -0
- package/dist/components/{p-DY6t0qQj.js → p-BwSVYr5L.js} +7 -7
- package/dist/components/p-BwSVYr5L.js.map +1 -0
- package/dist/components/{p-9kN1E6Ra.js → p-C5T02a4h.js} +27 -23
- package/dist/components/p-C5T02a4h.js.map +1 -0
- package/dist/components/{p-CkKxyn_K.js → p-C7kMNSz9.js} +9 -9
- package/dist/components/p-C7kMNSz9.js.map +1 -0
- package/dist/components/{p-BSUHSOXX.js → p-CEDtmtIo.js} +8 -8
- package/dist/components/p-CEDtmtIo.js.map +1 -0
- package/dist/components/p-CLMeZVRV.js +34 -0
- package/dist/components/p-CLMeZVRV.js.map +1 -0
- package/dist/components/p-CLNPwi8e.js +81 -0
- package/dist/components/p-CLNPwi8e.js.map +1 -0
- package/dist/components/{p-TFWJruz2.js → p-CQBrru3e.js} +11 -5
- package/dist/components/p-CQBrru3e.js.map +1 -0
- package/dist/components/{p-BsyfatBe.js → p-CV5tKC24.js} +8 -8
- package/dist/components/p-CV5tKC24.js.map +1 -0
- package/dist/components/{p-CJ0qTKU7.js → p-Cx3euWvk.js} +6 -6
- package/dist/components/{p-CJ0qTKU7.js.map → p-Cx3euWvk.js.map} +1 -1
- package/dist/components/{p-C6tAa8Q4.js → p-DY9yCaP9.js} +11 -11
- package/dist/components/p-DY9yCaP9.js.map +1 -0
- package/dist/components/{p-C171iavd.js → p-DdeknsBE.js} +8 -8
- package/dist/components/p-DdeknsBE.js.map +1 -0
- package/dist/components/{p-DyGUXuvD.js → p-GHGGjwP3.js} +12 -12
- package/dist/components/p-GHGGjwP3.js.map +1 -0
- package/dist/components/{p-1SxxSEqq.js → p-XAhTfI7Q.js} +11 -11
- package/dist/components/p-XAhTfI7Q.js.map +1 -0
- package/dist/components/p-at_j60O8.js +34 -0
- package/dist/components/p-at_j60O8.js.map +1 -0
- package/dist/components/sd-badge.js +6 -6
- package/dist/components/sd-badge.js.map +1 -1
- package/dist/components/sd-button.js +1 -1
- package/dist/components/sd-card.js +6 -6
- package/dist/components/sd-card.js.map +1 -1
- package/dist/components/sd-checkbox.js +1 -1
- package/dist/components/sd-date-box.js +1 -1
- package/dist/components/sd-date-picker.js +14 -14
- package/dist/components/sd-date-picker.js.map +1 -1
- package/dist/components/sd-date-range-picker.js +15 -15
- package/dist/components/sd-date-range-picker.js.map +1 -1
- package/dist/components/sd-file-picker.d.ts +11 -0
- package/dist/components/sd-file-picker.js +159 -0
- package/dist/components/sd-file-picker.js.map +1 -0
- package/dist/components/sd-guide.js +14 -14
- package/dist/components/sd-guide.js.map +1 -1
- package/dist/components/sd-icon.js +1 -1
- package/dist/components/sd-input.js +1 -1
- package/dist/components/sd-loading-spinner.js +1 -1
- package/dist/components/sd-modal-card.js +9 -9
- package/dist/components/sd-modal-card.js.map +1 -1
- package/dist/components/sd-number-input.d.ts +11 -0
- package/dist/components/sd-number-input.js +335 -0
- package/dist/components/sd-number-input.js.map +1 -0
- package/dist/components/sd-pagination.js +1 -1
- package/dist/components/sd-popover.js +14 -14
- package/dist/components/sd-popover.js.map +1 -1
- package/dist/components/sd-portal.js +1 -1
- package/dist/components/sd-progress.js +7 -7
- package/dist/components/sd-progress.js.map +1 -1
- package/dist/components/sd-radio-button-group.d.ts +11 -0
- package/dist/components/sd-radio-button-group.js +99 -0
- package/dist/components/sd-radio-button-group.js.map +1 -0
- package/dist/components/sd-radio-group.js +6 -6
- package/dist/components/sd-radio-group.js.map +1 -1
- package/dist/components/sd-select-multiple-group.js +88 -59
- package/dist/components/sd-select-multiple-group.js.map +1 -1
- package/dist/components/sd-select-multiple.js +23 -19
- package/dist/components/sd-select-multiple.js.map +1 -1
- package/dist/components/sd-select-option-group.js +1 -1
- package/dist/components/sd-select-option.js +1 -1
- package/dist/components/sd-select.js +1 -1
- package/dist/components/sd-table-backup.js +31 -31
- package/dist/components/sd-table-backup.js.map +1 -1
- package/dist/components/sd-table.js +34 -34
- package/dist/components/sd-table.js.map +1 -1
- package/dist/components/sd-tabs.d.ts +11 -0
- package/dist/components/sd-tabs.js +101 -0
- package/dist/components/sd-tabs.js.map +1 -0
- package/dist/components/sd-tag.js +1 -76
- package/dist/components/sd-tag.js.map +1 -1
- package/dist/components/sd-tbody.js +1 -1
- package/dist/components/sd-td.js +7 -7
- package/dist/components/sd-td.js.map +1 -1
- package/dist/components/sd-th.js +1 -1
- package/dist/components/sd-toast-message.d.ts +11 -0
- package/dist/components/sd-toast-message.js +101 -0
- package/dist/components/sd-toast-message.js.map +1 -0
- package/dist/components/sd-toggle-button.d.ts +11 -0
- package/dist/components/sd-toggle-button.js +74 -0
- package/dist/components/sd-toggle-button.js.map +1 -0
- package/dist/components/sd-toggle.js +6 -6
- package/dist/components/sd-toggle.js.map +1 -1
- package/dist/components/sd-tooltip-portal.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.esm.js +1 -1
- package/dist/design-system/design-system.esm.js.map +1 -1
- package/dist/design-system/p-1fbc8e14.entry.js +2 -0
- package/dist/design-system/p-1fbc8e14.entry.js.map +1 -0
- package/dist/design-system/p-26266f8c.entry.js +2 -0
- package/dist/design-system/p-26266f8c.entry.js.map +1 -0
- package/dist/design-system/p-2df41cc3.entry.js +2 -0
- package/dist/design-system/p-2df41cc3.entry.js.map +1 -0
- package/dist/design-system/p-3cc7957d.entry.js +2 -0
- package/dist/design-system/p-3cc7957d.entry.js.map +1 -0
- package/dist/design-system/p-6b3c33c3.entry.js +2 -0
- package/dist/design-system/p-6b3c33c3.entry.js.map +1 -0
- package/dist/design-system/p-6ce950da.entry.js +2 -0
- package/dist/design-system/p-6ce950da.entry.js.map +1 -0
- package/dist/design-system/{p-ClyGLKUd.js → p-7X2nzJWz.js} +2 -2
- package/dist/design-system/p-7X2nzJWz.js.map +1 -0
- package/dist/design-system/{p-DXZjHQmQ.js → p-CdbtuKYR.js} +2 -2
- package/dist/design-system/{p-DXZjHQmQ.js.map → p-CdbtuKYR.js.map} +1 -1
- package/dist/design-system/p-a18c202d.entry.js +2 -0
- package/dist/design-system/p-a18c202d.entry.js.map +1 -0
- package/dist/design-system/p-b0668ce9.entry.js +2 -0
- package/dist/design-system/p-b0668ce9.entry.js.map +1 -0
- package/dist/design-system/p-be9c40a3.entry.js +2 -0
- package/dist/design-system/p-be9c40a3.entry.js.map +1 -0
- package/dist/design-system/p-db603dcb.entry.js +2 -0
- package/dist/design-system/p-db603dcb.entry.js.map +1 -0
- package/dist/design-system/p-ddb5a2f4.entry.js +2 -0
- package/dist/design-system/p-ddb5a2f4.entry.js.map +1 -0
- package/dist/design-system/p-e31182ad.entry.js +2 -0
- package/dist/design-system/p-e31182ad.entry.js.map +1 -0
- package/dist/design-system/p-f9e04bf9.entry.js +2 -0
- package/dist/design-system/p-f9e04bf9.entry.js.map +1 -0
- package/dist/design-system/p-fe8721b5.entry.js +2 -0
- package/dist/design-system/p-fe8721b5.entry.js.map +1 -0
- package/dist/esm/design-system.js +6 -4
- package/dist/esm/design-system.js.map +1 -1
- package/dist/esm/{index-ClyGLKUd.js → index-7X2nzJWz.js} +11 -5
- package/dist/esm/index-7X2nzJWz.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/loader.js +5 -3
- package/dist/esm/sd-badge.entry.js +4 -4
- package/dist/esm/sd-badge.entry.js.map +1 -1
- package/dist/esm/{sd-button_15.entry.js → sd-button_23.entry.js} +1192 -95
- package/dist/esm/sd-card.entry.js +4 -4
- package/dist/esm/sd-card.entry.js.map +1 -1
- package/dist/esm/sd-date-box.entry.js +3 -3
- package/dist/esm/sd-date-box.entry.js.map +1 -1
- package/dist/esm/sd-date-picker.entry.js +4 -4
- package/dist/esm/sd-date-picker.entry.js.map +1 -1
- package/dist/esm/sd-date-range-picker.entry.js +5 -5
- package/dist/esm/sd-date-range-picker.entry.js.map +1 -1
- package/dist/esm/sd-modal-card.entry.js +3 -3
- package/dist/esm/sd-modal-card.entry.js.map +1 -1
- package/dist/esm/sd-popover.entry.js +6 -6
- package/dist/esm/sd-popover.entry.js.map +1 -1
- package/dist/esm/sd-progress.entry.js +5 -5
- package/dist/esm/sd-progress.entry.js.map +1 -1
- package/dist/esm/sd-radio-button-group.entry.js +69 -0
- package/dist/esm/sd-radio-button-group.entry.js.map +1 -0
- package/dist/esm/sd-select-multiple.entry.js +8 -5
- package/dist/esm/sd-select-multiple.entry.js.map +1 -1
- package/dist/esm/sd-table.entry.js +6 -6
- package/dist/esm/sd-table.entry.js.map +1 -1
- package/dist/esm/sd-tbody_3.entry.js +10 -10
- package/dist/esm/sd-td.entry.js +5 -5
- package/dist/esm/sd-td.entry.js.map +1 -1
- package/dist/esm/{tooltipArrow-BwO7_hdW.js → tooltipArrow-DFRZWz6D.js} +3 -3
- package/dist/esm/{tooltipArrow-BwO7_hdW.js.map → tooltipArrow-DFRZWz6D.js.map} +1 -1
- package/dist/types/components/sd-file-picker/sd-file-picker.d.ts +29 -0
- package/dist/types/components/sd-number-input/sd-number-input.d.ts +58 -0
- package/dist/types/components/sd-radio-button-group/sd-radio-button-group.d.ts +24 -0
- package/dist/types/components/sd-select/sd-select.d.ts +1 -0
- package/dist/types/components/sd-select-multiple/sd-select-multiple.d.ts +1 -0
- package/dist/types/components/sd-select-multiple-group/sd-select-multiple-group.d.ts +2 -0
- package/dist/types/components/sd-tabs/sd-tabs.d.ts +22 -0
- package/dist/types/components/sd-toast-message/sd-toast-message.d.ts +19 -0
- package/dist/types/components/sd-toggle-button/sd-toggle-button.d.ts +14 -0
- package/dist/types/components.d.ts +456 -8
- package/dist/types/stencil-public-runtime.d.ts +43 -0
- package/hydrate/index.d.ts +12 -0
- package/hydrate/index.js +2637 -1823
- package/hydrate/index.mjs +2636 -1824
- package/package.json +2 -2
- package/dist/cjs/index-Bxead0A0.js.map +0 -1
- package/dist/cjs/sd-badge.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-radio-group.sd-select.sd-select-option.sd-table-backup.sd-toggle.sd-tooltip.sd-tooltip-portal.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-card.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-date-box.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-date-picker.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-date-range-picker.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-modal-card.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-popover.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-progress.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-select-multiple-group.cjs.entry.js +0 -406
- package/dist/cjs/sd-select-multiple-group.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-select-multiple.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-select-option-group.cjs.entry.js +0 -69
- package/dist/cjs/sd-select-option-group.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-table.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-tag.cjs.entry.js +0 -57
- package/dist/cjs/sd-tag.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-tbody.sd-th.sd-tr.entry.cjs.js.map +0 -1
- package/dist/cjs/sd-td.entry.cjs.js.map +0 -1
- package/dist/components/p-1SxxSEqq.js.map +0 -1
- package/dist/components/p-9kN1E6Ra.js.map +0 -1
- package/dist/components/p-BSUHSOXX.js.map +0 -1
- package/dist/components/p-BsyfatBe.js.map +0 -1
- package/dist/components/p-C171iavd.js.map +0 -1
- package/dist/components/p-C6tAa8Q4.js.map +0 -1
- package/dist/components/p-C9fSCxHc.js +0 -109
- package/dist/components/p-C9fSCxHc.js.map +0 -1
- package/dist/components/p-CkKxyn_K.js.map +0 -1
- package/dist/components/p-D8f0ASS6.js +0 -34
- package/dist/components/p-D8f0ASS6.js.map +0 -1
- package/dist/components/p-DY6t0qQj.js.map +0 -1
- package/dist/components/p-DiehM5Y0.js.map +0 -1
- package/dist/components/p-DyGUXuvD.js.map +0 -1
- package/dist/components/p-S7M--xNH.js.map +0 -1
- package/dist/components/p-TFWJruz2.js.map +0 -1
- package/dist/components/p-wQDv-v0B.js +0 -34
- package/dist/components/p-wQDv-v0B.js.map +0 -1
- package/dist/design-system/p-1ad40ed0.entry.js +0 -2
- package/dist/design-system/p-1ad40ed0.entry.js.map +0 -1
- package/dist/design-system/p-1b6aec43.entry.js +0 -2
- package/dist/design-system/p-1b6aec43.entry.js.map +0 -1
- package/dist/design-system/p-1e175d35.entry.js +0 -2
- package/dist/design-system/p-1e175d35.entry.js.map +0 -1
- package/dist/design-system/p-1efccd9d.entry.js +0 -2
- package/dist/design-system/p-1efccd9d.entry.js.map +0 -1
- package/dist/design-system/p-3d78a7c7.entry.js +0 -2
- package/dist/design-system/p-3d78a7c7.entry.js.map +0 -1
- package/dist/design-system/p-4828e65b.entry.js +0 -2
- package/dist/design-system/p-4828e65b.entry.js.map +0 -1
- package/dist/design-system/p-4e7bc094.entry.js +0 -2
- package/dist/design-system/p-4e7bc094.entry.js.map +0 -1
- package/dist/design-system/p-6d81e6f8.entry.js +0 -2
- package/dist/design-system/p-6d81e6f8.entry.js.map +0 -1
- package/dist/design-system/p-717a736c.entry.js +0 -2
- package/dist/design-system/p-717a736c.entry.js.map +0 -1
- package/dist/design-system/p-74f12ea0.entry.js +0 -2
- package/dist/design-system/p-74f12ea0.entry.js.map +0 -1
- package/dist/design-system/p-7d14540d.entry.js +0 -2
- package/dist/design-system/p-7d14540d.entry.js.map +0 -1
- package/dist/design-system/p-8d6d225d.entry.js +0 -2
- package/dist/design-system/p-8d6d225d.entry.js.map +0 -1
- package/dist/design-system/p-ClyGLKUd.js.map +0 -1
- package/dist/design-system/p-b892a722.entry.js +0 -2
- package/dist/design-system/p-b892a722.entry.js.map +0 -1
- package/dist/design-system/p-bc905ded.entry.js +0 -2
- package/dist/design-system/p-bc905ded.entry.js.map +0 -1
- package/dist/design-system/p-c7e8a2c0.entry.js +0 -2
- package/dist/design-system/p-c7e8a2c0.entry.js.map +0 -1
- package/dist/design-system/p-c9b70553.entry.js +0 -2
- package/dist/design-system/p-c9b70553.entry.js.map +0 -1
- package/dist/design-system/sd-badge.entry.esm.js.map +0 -1
- package/dist/design-system/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-radio-group.sd-select.sd-select-option.sd-table-backup.sd-toggle.sd-tooltip.sd-tooltip-portal.entry.esm.js.map +0 -1
- package/dist/design-system/sd-card.entry.esm.js.map +0 -1
- package/dist/design-system/sd-date-box.entry.esm.js.map +0 -1
- package/dist/design-system/sd-date-picker.entry.esm.js.map +0 -1
- package/dist/design-system/sd-date-range-picker.entry.esm.js.map +0 -1
- package/dist/design-system/sd-modal-card.entry.esm.js.map +0 -1
- package/dist/design-system/sd-popover.entry.esm.js.map +0 -1
- package/dist/design-system/sd-progress.entry.esm.js.map +0 -1
- package/dist/design-system/sd-select-multiple-group.entry.esm.js.map +0 -1
- package/dist/design-system/sd-select-multiple.entry.esm.js.map +0 -1
- package/dist/design-system/sd-table.entry.esm.js.map +0 -1
- package/dist/design-system/sd-tag.entry.esm.js.map +0 -1
- package/dist/design-system/sd-tbody.sd-th.sd-tr.entry.esm.js.map +0 -1
- package/dist/design-system/sd-td.entry.esm.js.map +0 -1
- package/dist/esm/index-ClyGLKUd.js.map +0 -1
- package/dist/esm/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-radio-group.sd-select.sd-select-option.sd-table-backup.sd-toggle.sd-tooltip.sd-tooltip-portal.entry.js.map +0 -1
- package/dist/esm/sd-select-multiple-group.entry.js +0 -404
- package/dist/esm/sd-select-multiple-group.entry.js.map +0 -1
- package/dist/esm/sd-select-option-group.entry.js +0 -67
- package/dist/esm/sd-select-option-group.entry.js.map +0 -1
- package/dist/esm/sd-tag.entry.js +0 -55
- package/dist/esm/sd-tag.entry.js.map +0 -1
- package/dist/esm/sd-tbody.sd-th.sd-tr.entry.js.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-B7tkxTye.js');
|
|
4
4
|
var resolveColor = require('./resolveColor-DxvExwgo.js');
|
|
5
5
|
var selectKeyboardNavigation = require('./select-keyboard-navigation-6fO_V4En.js');
|
|
6
|
-
var tooltipArrow = require('./tooltipArrow-
|
|
6
|
+
var tooltipArrow = require('./tooltipArrow-8I9A3AOE.js');
|
|
7
7
|
|
|
8
|
-
const sdButtonCss =
|
|
8
|
+
const sdButtonCss = () => `sd-button{display:inline-block;width:fit-content;height:fit-content}.sd-button{text-decoration:none;cursor:pointer;border-radius:4px;transition:all 0.2s ease-in-out;position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}.sd-button--xs{padding:0 8px;font-size:12px;font-weight:500;line-height:20px;min-height:24px}.sd-button--sm{padding:0 12px;font-size:12px;font-weight:500;line-height:20px;min-height:28px}.sd-button--md{padding:0 20px;font-size:16px;font-weight:500;line-height:26px;min-height:34px}.sd-button--lg{padding:0 28px;font-size:18px;font-weight:500;line-height:30px;min-height:62px}.sd-button--primary{background-color:var(--button-color);color:white;transition:filter 0.2s ease}.sd-button--primary::before{content:"";position:absolute;inset:0;background:#000000;opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--primary:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.25}.sd-button--outline{background:white;border:1px solid var(--button-color);color:var(--button-color)}.sd-button--outline::before{content:"";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--outline:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--outline .sd-button__content{position:relative;z-index:1}.sd-button--ghost{background-color:transparent;color:var(--button-color);border-color:transparent}.sd-button--ghost::before{content:"";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--ghost:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--ghost .sd-button__content{position:relative;z-index:1}.sd-button--disabled{border:1px solid #cccccc;background:#e1e1e1;color:#888888;cursor:not-allowed !important}.sd-button--icon-only{padding:0;width:fit-content;height:fit-content;aspect-ratio:1/1}.sd-button--no-hover:hover::before{opacity:0 !important}.sd-button .sd-button__content{display:inline-flex;align-items:center;justify-content:center;gap:4px;z-index:1;font-weight:500}`;
|
|
9
9
|
|
|
10
10
|
const ICON_SIZES = {
|
|
11
11
|
xs: 12,
|
|
@@ -63,9 +63,9 @@ const SdButton = class {
|
|
|
63
63
|
return (index.h(index.Host, { key: 'b30c8006e2f187fb971bcd47f8ce4a91d1dc47a6', style: { '--button-color': resolvedColor } }, index.h("button", { key: 'f494c93fc0b9d55537b468f5c6458569df962633', class: `${buttonClasses} ${this.class}`, type: this.type, disabled: this.disabled, onClick: this.handleClick }, index.h("div", { key: '7d64a6526baeac8569cccc60d9befacef3e3777d', class: "sd-button__content" }, this.icon && (index.h("sd-icon", { key: '9439e9456783aa5b057d383252a6b0c45a44b588', class: "sd-button__icon sd-button__icon--left", name: this.icon, size: this.iconSize ? this.iconSize : ICON_SIZES[this.size], color: this.iconColor ? this.iconColor : this.variant === 'primary' ? '#fff' : resolvedColor })), this.label && index.h("div", { key: '324371a6f8864c444cda39e7b349b4c9ec19b7f6', class: "sd-button__label" }, this.label), this.iconRight && (index.h("sd-icon", { key: '733790ceda6e1822c71911b17e66f527936b15a2', class: "sd-button__icon sd-button__icon--right", name: this.iconRight, size: ICON_SIZES[this.size], color: this.variant === 'primary' ? '#fff' : resolvedColor }))))));
|
|
64
64
|
}
|
|
65
65
|
};
|
|
66
|
-
SdButton.style = sdButtonCss;
|
|
66
|
+
SdButton.style = sdButtonCss();
|
|
67
67
|
|
|
68
|
-
const sdCheckboxCss =
|
|
68
|
+
const sdCheckboxCss = () => `sd-checkbox{display:inline-block;height:20px;line-height:0}sd-checkbox .sd-checkbox{cursor:pointer;display:inline-flex;align-items:center;gap:8px;height:20px;max-height:20px}sd-checkbox .sd-checkbox>input{display:none}sd-checkbox .sd-checkbox:hover.sd-checkbox--checked .sd-checkbox__bg,sd-checkbox .sd-checkbox:hover.sd-checkbox--indeterminate .sd-checkbox__bg{border-color:#005cc9;background:#005cc9}sd-checkbox .sd-checkbox:hover.sd-checkbox--unchecked .sd-checkbox__bg{border:1px solid #0075ff;background:#d9eaff}sd-checkbox .sd-checkbox:hover.sd-checkbox--disabled .sd-checkbox__bg{border:1px solid transparent;background:#eeeeee}sd-checkbox .sd-checkbox__bg{width:16px;height:16px;border-radius:2px;border:1px solid #888888;box-sizing:border-box;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;line-height:0}sd-checkbox .sd-checkbox__label{font-size:12px;color:#333333;line-height:20px}sd-checkbox .sd-checkbox--checked.sd-checkbox--disabled .sd-checkbox__bg,sd-checkbox .sd-checkbox--indeterminate.sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}sd-checkbox .sd-checkbox--checked .sd-checkbox__bg,sd-checkbox .sd-checkbox--indeterminate .sd-checkbox__bg{border:1px solid #0075ff;background:#0075ff}sd-checkbox .sd-checkbox--unchecked .sd-checkbox__bg{background:white}sd-checkbox .sd-checkbox--disabled{cursor:not-allowed}sd-checkbox .sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}`;
|
|
69
69
|
|
|
70
70
|
const SdCheckbox = class {
|
|
71
71
|
constructor(hostRef) {
|
|
@@ -145,9 +145,124 @@ const SdCheckbox = class {
|
|
|
145
145
|
"checked": ["watchValueHandler"]
|
|
146
146
|
}; }
|
|
147
147
|
};
|
|
148
|
-
SdCheckbox.style = sdCheckboxCss;
|
|
148
|
+
SdCheckbox.style = sdCheckboxCss();
|
|
149
149
|
|
|
150
|
-
const
|
|
150
|
+
const sdFilePickerCss = () => `.sd-file-picker{display:inline-flex;align-items:center;max-width:var(--picker-width, 100%);height:28px;gap:8px;padding:4px 8px;border:1px solid #aaaaaa;border-radius:4px;background-color:#ffffff;cursor:pointer;user-select:none;position:relative;vertical-align:middle}.sd-file-picker__text{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;font-size:12px;line-height:20px;color:#aaaaaa}.sd-file-picker__text--active{color:#222222}.sd-file-picker__text--placeholder{color:#aaaaaa}.sd-file-picker__icon{flex-shrink:0}.sd-file-picker__clear-icon{flex-shrink:0;cursor:pointer;transition:opacity 0.2s ease}.sd-file-picker__clear-icon:hover{opacity:0.7}.sd-file-picker__input{display:none}.sd-file-picker__tooltip{position:absolute;top:calc(100% - 4px);left:50%;transform:translate(-50%);z-index:1000;white-space:nowrap;padding:8px 12px;background:rgba(0, 0, 0, 0.8);color:white;font-size:12px;line-height:18px;border-radius:4px;pointer-events:none}.sd-file-picker:hover:not(.sd-file-picker--inline):not(.sd-file-picker--disabled){background-color:#f6f6f6}.sd-file-picker--active:not(.sd-file-picker--inline):not(.sd-file-picker--disabled){background-color:#ffffff}.sd-file-picker--active:not(.sd-file-picker--inline):not(.sd-file-picker--disabled) .sd-file-picker__text{color:#222222}.sd-file-picker--disabled:not(.sd-file-picker--inline){background-color:#eeeeee;border-color:#cccccc}.sd-file-picker--disabled:not(.sd-file-picker--inline) .sd-file-picker__text{color:#888888}.sd-file-picker--inline{border:none;background-color:transparent;padding:0;height:auto}.sd-file-picker--inline .sd-file-picker__text{color:#aaaaaa}.sd-file-picker--inline:hover:not(.sd-file-picker--disabled) .sd-file-picker__text{color:#737373}.sd-file-picker--inline.sd-file-picker--active:not(.sd-file-picker--disabled) .sd-file-picker__text--active{color:#222222}.sd-file-picker--inline.sd-file-picker--disabled .sd-file-picker__text{color:#cccccc}`;
|
|
151
|
+
|
|
152
|
+
const SdFilePicker = class {
|
|
153
|
+
constructor(hostRef) {
|
|
154
|
+
index.registerInstance(this, hostRef);
|
|
155
|
+
this.sdChange = index.createEvent(this, "sdChange");
|
|
156
|
+
}
|
|
157
|
+
get el() { return index.getElement(this); }
|
|
158
|
+
value = null;
|
|
159
|
+
placeholder = 'Click to upload';
|
|
160
|
+
disabled = false;
|
|
161
|
+
inline = false;
|
|
162
|
+
multiple = false;
|
|
163
|
+
accept;
|
|
164
|
+
width;
|
|
165
|
+
internalValue = null;
|
|
166
|
+
hovered = false;
|
|
167
|
+
showTooltip = false;
|
|
168
|
+
fileInputRef;
|
|
169
|
+
fileNamesRef;
|
|
170
|
+
sdChange;
|
|
171
|
+
valueChanged(newValue) {
|
|
172
|
+
this.internalValue = newValue;
|
|
173
|
+
}
|
|
174
|
+
componentDidLoad() {
|
|
175
|
+
this.checkOverflow();
|
|
176
|
+
}
|
|
177
|
+
componentDidUpdate() {
|
|
178
|
+
this.checkOverflow();
|
|
179
|
+
}
|
|
180
|
+
handleFileChange = (event) => {
|
|
181
|
+
const input = event.target;
|
|
182
|
+
const files = input.files;
|
|
183
|
+
if (!files || files.length === 0) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
const fileArray = Array.from(files);
|
|
187
|
+
if (this.multiple) {
|
|
188
|
+
this.internalValue = fileArray;
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
this.internalValue = fileArray[0];
|
|
192
|
+
}
|
|
193
|
+
this.value = this.internalValue;
|
|
194
|
+
this.sdChange?.emit(this.value);
|
|
195
|
+
};
|
|
196
|
+
handleClear = (event) => {
|
|
197
|
+
event.stopPropagation();
|
|
198
|
+
const clearedValue = this.multiple ? [] : null;
|
|
199
|
+
this.value = clearedValue;
|
|
200
|
+
this.internalValue = clearedValue;
|
|
201
|
+
this.sdChange?.emit(clearedValue);
|
|
202
|
+
if (this.fileInputRef) {
|
|
203
|
+
this.fileInputRef.value = '';
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
handleClick = () => {
|
|
207
|
+
if (this.disabled)
|
|
208
|
+
return;
|
|
209
|
+
this.fileInputRef?.click();
|
|
210
|
+
};
|
|
211
|
+
getStatusClass() {
|
|
212
|
+
if (this.disabled)
|
|
213
|
+
return 'sd-file-picker--disabled';
|
|
214
|
+
if (this.hasFiles())
|
|
215
|
+
return 'sd-file-picker--active';
|
|
216
|
+
return '';
|
|
217
|
+
}
|
|
218
|
+
hasFiles() {
|
|
219
|
+
if (!this.internalValue)
|
|
220
|
+
return false;
|
|
221
|
+
if (Array.isArray(this.internalValue)) {
|
|
222
|
+
return this.internalValue.length > 0;
|
|
223
|
+
}
|
|
224
|
+
return true;
|
|
225
|
+
}
|
|
226
|
+
getDisplayText() {
|
|
227
|
+
if (!this.hasFiles())
|
|
228
|
+
return this.placeholder;
|
|
229
|
+
if (Array.isArray(this.internalValue)) {
|
|
230
|
+
return this.internalValue.map(f => f.name).join(', ');
|
|
231
|
+
}
|
|
232
|
+
return this.internalValue?.name || this.placeholder;
|
|
233
|
+
}
|
|
234
|
+
checkOverflow() {
|
|
235
|
+
if (!this.fileNamesRef)
|
|
236
|
+
return;
|
|
237
|
+
const isOverflowing = this.fileNamesRef.scrollWidth > this.fileNamesRef.clientWidth;
|
|
238
|
+
this.showTooltip = isOverflowing;
|
|
239
|
+
}
|
|
240
|
+
getIconColor() {
|
|
241
|
+
if (this.disabled) {
|
|
242
|
+
return this.inline ? 'grey_45' : 'grey_55';
|
|
243
|
+
}
|
|
244
|
+
return 'grey_70';
|
|
245
|
+
}
|
|
246
|
+
render() {
|
|
247
|
+
const hasFiles = this.hasFiles();
|
|
248
|
+
const displayText = this.getDisplayText();
|
|
249
|
+
return (index.h("div", { key: 'bfa4054517dcf1ef728a2354927bc40c177274ce', class: {
|
|
250
|
+
'sd-file-picker': true,
|
|
251
|
+
[this.getStatusClass()]: true,
|
|
252
|
+
'sd-file-picker--inline': this.inline,
|
|
253
|
+
}, onClick: this.handleClick, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false) }, index.h("input", { key: 'b2f2e730b30c58641615d1216633ee20a67ee6c1', ref: el => (this.fileInputRef = el), type: "file", class: "sd-file-picker__input", disabled: this.disabled, multiple: this.multiple, accept: this.accept, onInput: this.handleFileChange }), index.h("sd-icon", { key: '08b4bbcc3bb757a7a8e3dee3a416b202c7e86f66', name: "attachFile", size: 16, color: this.getIconColor(), class: "sd-file-picker__icon" }), index.h("div", { key: 'cba9e6fb17a6a9c5de479e0ccdc6a3de7c23a615', ref: el => (this.fileNamesRef = el), class: {
|
|
254
|
+
'sd-file-picker__text': true,
|
|
255
|
+
'sd-file-picker__text--placeholder': !hasFiles,
|
|
256
|
+
'sd-file-picker__text--active': hasFiles,
|
|
257
|
+
} }, displayText), !this.disabled && hasFiles && (index.h("sd-icon", { key: 'eb3c02cb001168d82eac1a3e2855e1cfcc6b960e', name: "close", size: 12, color: "#888888", class: "sd-file-picker__clear-icon", onClick: this.handleClear })), this.showTooltip && hasFiles && this.hovered && (index.h("div", { key: '8f09fe54f7f77453eac07f60942401d83955fc0b', class: "sd-file-picker__tooltip" }, displayText))));
|
|
258
|
+
}
|
|
259
|
+
static get watchers() { return {
|
|
260
|
+
"value": ["valueChanged"]
|
|
261
|
+
}; }
|
|
262
|
+
};
|
|
263
|
+
SdFilePicker.style = sdFilePickerCss();
|
|
264
|
+
|
|
265
|
+
const sdGuideCss = () => `@charset "UTF-8";sd-button{display:inline-block;width:fit-content;height:fit-content}.sd-button{text-decoration:none;cursor:pointer;border-radius:4px;transition:all 0.2s ease-in-out;position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}.sd-button--xs{padding:0 8px;font-size:12px;font-weight:500;line-height:20px;min-height:24px}.sd-button--sm{padding:0 12px;font-size:12px;font-weight:500;line-height:20px;min-height:28px}.sd-button--md{padding:0 20px;font-size:16px;font-weight:500;line-height:26px;min-height:34px}.sd-button--lg{padding:0 28px;font-size:18px;font-weight:500;line-height:30px;min-height:62px}.sd-button--primary{background-color:var(--button-color);color:white;transition:filter 0.2s ease}.sd-button--primary::before{content:"";position:absolute;inset:0;background:#000000;opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--primary:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.25}.sd-button--outline{background:white;border:1px solid var(--button-color);color:var(--button-color)}.sd-button--outline::before{content:"";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--outline:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--outline .sd-button__content{position:relative;z-index:1}.sd-button--ghost{background-color:transparent;color:var(--button-color);border-color:transparent}.sd-button--ghost::before{content:"";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--ghost:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--ghost .sd-button__content{position:relative;z-index:1}.sd-button--disabled{border:1px solid #cccccc;background:#e1e1e1;color:#888888;cursor:not-allowed !important}.sd-button--icon-only{padding:0;width:fit-content;height:fit-content;aspect-ratio:1/1}.sd-button--no-hover:hover::before{opacity:0 !important}.sd-button .sd-button__content{display:inline-flex;align-items:center;justify-content:center;gap:4px;z-index:1;font-weight:500}sd-guide{display:inline-block;height:fit-content}sd-guide .sd-guide{display:inline-block}sd-guide .sd-guide .sd-button{padding:0 16px 0 12px;border-radius:16px;color:#333333 !important;display:flex;align-items:center;transition:none}sd-guide .sd-guide .sd-button .sd-button__content{color:#333333 !important}sd-guide .sd-guide .sd-button .sd-button__content .sd-button__label{color:#333333 !important;margin-left:4px}sd-guide .sd-guide--active .sd-button{border:1px solid #12b553}sd-guide .sd-guide--active .sd-button .sd-button__content .sd-button__label{color:white !important}.sd-guide__popup{position:relative;padding:20px 32px;border-radius:8px;box-shadow:4px 4px 24px 4px rgba(0, 0, 0, 0.1);background:white}.sd-guide__popup>.sd-guide__popup__close{position:absolute;top:12px;right:12px}.sd-guide__popup__header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.sd-guide__popup__header .sd-guide__popup__title{margin-top:0;font-size:16px;font-weight:700;line-height:26px;color:#333333}.sd-guide__popup__list{width:100%;padding:0;margin:0}.sd-guide__popup__list__item{display:flex;width:100%;align-items:start;list-style:none;color:#333333;font-size:12px;font-weight:400}.sd-guide__popup__list__item p{width:100%;padding:0;margin:0;word-wrap:break-word;word-break:break-word;white-space:normal;overflow-wrap:break-word;min-width:0}.sd-guide__popup__list__item::before{display:block;content:"-";width:6px;color:#333333;font-size:12px;font-weight:400;margin-left:10px;margin-right:12px;flex-shrink:0}.sd-guide__popup__list__item--depth-2::before{content:"•"}.sd-guide__popup__list__item--depth-2{padding-left:26px}`;
|
|
151
266
|
|
|
152
267
|
const GUIDE_LABEL = {
|
|
153
268
|
help: '활용 TIP',
|
|
@@ -200,11 +315,11 @@ const SdGuide = class {
|
|
|
200
315
|
};
|
|
201
316
|
render() {
|
|
202
317
|
const { name: iconName, size: iconSize, color: iconColor } = GUIDE_ICON[this.type];
|
|
203
|
-
return (index.h(index.Host, { key: '
|
|
318
|
+
return (index.h(index.Host, { key: 'c15218a6d9dbef0147701e31f798a3e6fa8e7679', style: {
|
|
204
319
|
'--sd-guide-color': GUIDE_ICON[this.type].color,
|
|
205
|
-
} }, index.h("sd-button", { key: '
|
|
320
|
+
} }, index.h("sd-button", { key: '773093b74b917d9e15a8e8c280aaa7564832abe1', ref: el => (this.guideRef = el), class: this.guideClass, variant: this.popupShow ? 'primary' : 'outline', label: this.label || GUIDE_LABEL[this.type], size: "sm", color: this.popupShow ? GUIDE_ICON[this.type].color : 'grey_45', icon: iconName, iconColor: this.popupShow ? 'white' : iconColor, iconSize: iconSize, noHover: this.popupShow, onSdClick: this.handleClickGuide }), this.type === 'help' && this.popupShow && (index.h("sd-portal", { key: '64cfb5c8b425b0d48a9f9954b203c9b3883fb1f3', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, index.h("div", { key: 'f748907b385a77490ad79f8f811ad7fc4eaee8bb', class: "sd-guide__popup", style: { width: this.popupWidth ? this.popupWidth + 'px' : '426px' } }, index.h("sd-button", { key: '8b154c2d239fc7038cb939f826417e5b68043a85', class: "sd-guide__popup__close", icon: "close", color: resolveColor.colors.grey_65, size: "md", variant: "ghost", noHover: true,
|
|
206
321
|
// buttonStyle={{ padding: '0px', minHeight: '0px' }}
|
|
207
|
-
onSdClick: this.closeDropdown }), index.h("div", { key: '
|
|
322
|
+
onSdClick: this.closeDropdown }), index.h("div", { key: 'eaa2160d01bbe8172fc176117b8e506e469c5dde', class: "sd-guide__popup__header" }, index.h("sd-icon", { key: '54436229beee740efc607c3c2dd7be4c390e3285', name: "helpOutline", size: 24, color: resolveColor.colors.green_65 }), index.h("h3", { key: 'e848c736bb5d49221feb194ecd43e904d51c82f8', class: "sd-guide__popup__title" }, this.popupTitle || GUIDE_LABEL[this.type])), index.h("ul", { key: '57536a93be487239c30d7338f48c87ab57fbb3d0', class: "sd-guide__popup__list" }, this.renderListItem(this.message)))))));
|
|
208
323
|
}
|
|
209
324
|
// 현재 2depth까지만 스타일 적용
|
|
210
325
|
renderListItem(message, depth = 0) {
|
|
@@ -223,7 +338,7 @@ const SdGuide = class {
|
|
|
223
338
|
return (index.h("li", { class: `sd-guide__popup__list__item sd-guide__popup__list__item--depth-${depth}` }, index.h("p", { innerHTML: listContent })));
|
|
224
339
|
};
|
|
225
340
|
};
|
|
226
|
-
SdGuide.style = sdGuideCss;
|
|
341
|
+
SdGuide.style = sdGuideCss();
|
|
227
342
|
|
|
228
343
|
const Add8 = (props) => (index.h("svg", { width: "8", height: "8", viewBox: "0 0 8 8", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, index.h("path", { d: "M3.99969 0.633484C4.16537 0.633484 4.29948 0.767622 4.2995 0.933289V3.69989H7.06708C7.23245 3.70014 7.36672 3.8343 7.36688 3.99969C7.36688 4.16523 7.23255 4.29925 7.06708 4.2995H4.2995V7.06708C4.29925 7.23255 4.16523 7.36688 3.99969 7.36688C3.8343 7.36672 3.70014 7.23245 3.69989 7.06708V4.2995H0.933289C0.767622 4.29948 0.633484 4.16537 0.633484 3.99969C0.633648 3.83416 0.767724 3.69991 0.933289 3.69989H3.69989V0.933289C3.69991 0.767724 3.83416 0.633648 3.99969 0.633484Z", fill: "currentColor" })));
|
|
229
344
|
|
|
@@ -2205,7 +2320,7 @@ const Icons = {
|
|
|
2205
2320
|
...Youtube,
|
|
2206
2321
|
};
|
|
2207
2322
|
|
|
2208
|
-
const sdIconCss =
|
|
2323
|
+
const sdIconCss = () => `sd-icon{display:inline-block;line-height:0}sd-icon .sd-icon--rotate-90{transform:rotate(90deg)}sd-icon .sd-icon--rotate-180{transform:rotate(180deg)}sd-icon .sd-icon--rotate-270{transform:rotate(270deg)}`;
|
|
2209
2324
|
|
|
2210
2325
|
const SdIcon = class {
|
|
2211
2326
|
constructor(hostRef) {
|
|
@@ -2234,12 +2349,12 @@ const SdIcon = class {
|
|
|
2234
2349
|
}
|
|
2235
2350
|
render() {
|
|
2236
2351
|
const IconComponent = Icons[this.name]?.[this.size];
|
|
2237
|
-
return (index.h("i", { key: '
|
|
2352
|
+
return (index.h("i", { key: 'f3ff9d0b1134a67b6f8897ede7b4cd449589d618', class: this.getIconClasses(), style: this.iconStyle }, index.h(IconComponent, { key: '0acd90f22d7f2e3e875b690d41dbb4a297b42d7f', color: this.resolvedColor })));
|
|
2238
2353
|
}
|
|
2239
2354
|
};
|
|
2240
|
-
SdIcon.style = sdIconCss;
|
|
2355
|
+
SdIcon.style = sdIconCss();
|
|
2241
2356
|
|
|
2242
|
-
const sdInputCss =
|
|
2357
|
+
const sdInputCss = () => `sd-icon{display:inline-block;line-height:0}sd-icon .sd-icon--rotate-90{transform:rotate(90deg)}sd-icon .sd-icon--rotate-180{transform:rotate(180deg)}sd-icon .sd-icon--rotate-270{transform:rotate(270deg)}.sd-input{display:flex;width:var(--input-width, 100%);align-items:center;height:28px;padding:4px 8px;border:1px solid #aaaaaa;border-radius:4px;color:#333333;font-size:12px;line-height:20px;background:white}.sd-input--hovered,.sd-input--focused{border-color:#0075ff;box-shadow:0 0 4px 0 rgba(0, 113, 255, 0.4)}.sd-input.sd-input--error{border-color:#fb4444}.sd-input.sd-input--pass{border-color:#2bce6c}.sd-input.sd-input--barcode:not(.sd-input--disabled){background-color:#fafaa1}.sd-input.sd-input--disabled{background-color:#eeeeee !important;border-color:#cccccc !important;cursor:not-allowed !important;box-shadow:none !important}.sd-input.sd-input--disabled .sd-input__native_element{color:#888888 !important}.sd-input .sd-input__native_element{display:block;width:100%;height:20px;line-height:20px;border:none;outline:none;background:transparent;font-size:inherit;color:#333333;margin-left:4px;margin-right:4px;padding-block:0;padding-inline:0}.sd-input .sd-input__native_element::placeholder{font-size:12px;height:20px;line-height:20px;color:#aaaaaa}.sd-input .sd-input__clear-icon{cursor:pointer;margin-left:8px}`;
|
|
2243
2358
|
|
|
2244
2359
|
const SdInput = class {
|
|
2245
2360
|
constructor(hostRef) {
|
|
@@ -2339,11 +2454,11 @@ const SdInput = class {
|
|
|
2339
2454
|
'--input-width': typeof this.width === 'number' ? `${this.width}px` : this.width,
|
|
2340
2455
|
}
|
|
2341
2456
|
: {};
|
|
2342
|
-
return (index.h(index.Host, { key: '
|
|
2457
|
+
return (index.h(index.Host, { key: '265fb05d7c005cd843443475d74c2e8127e4ae2d', style: inputWidth }, this.label && index.h("div", { key: '2ce6d2611927ec3e491122b8a17b94a2b39edcd5', class: "sd-input__label" }, this.label), index.h("label", { key: '6731592e7d55098daf4aa8b8177233897daf2900', class: {
|
|
2343
2458
|
'sd-input': true,
|
|
2344
2459
|
[this.getInputStatus()]: true,
|
|
2345
2460
|
'sd-input--barcode': !!this.barcode,
|
|
2346
|
-
}, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, index.h("slot", { key: '
|
|
2461
|
+
}, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, index.h("slot", { key: 'e07590e1ee2540183c18aceb8dae0ff39d5adca4', name: "prefix" }), index.h("input", { key: '76b8bbba1030cbef5b57e3303b6cd300858c4fee', ref: el => (this.nativeEl = el), class: `sd-input__native_element ${this.inputClass}`, type: "text", value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onChange: this.handleChange, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event) }), index.h("slot", { key: 'e10dc614a0283bc63bb3e44bd627f7279728dae6', name: "suffix" }), this.clearable && this.internalValue && (index.h("sd-icon", { key: '3324d72d1353231209aa9c284425c921bbb1e17b', name: "close", color: "#888", class: "sd-input__clear-icon", onClick: () => {
|
|
2347
2462
|
this.internalValue = '';
|
|
2348
2463
|
this.sdChange?.emit(this.internalValue);
|
|
2349
2464
|
this.sdInput?.emit(this.internalValue);
|
|
@@ -2354,21 +2469,300 @@ const SdInput = class {
|
|
|
2354
2469
|
"internalValue": ["internalValueChanged"]
|
|
2355
2470
|
}; }
|
|
2356
2471
|
};
|
|
2357
|
-
SdInput.style = sdInputCss;
|
|
2472
|
+
SdInput.style = sdInputCss();
|
|
2358
2473
|
|
|
2359
|
-
const sdLoadingSpinnerCss =
|
|
2474
|
+
const sdLoadingSpinnerCss = () => `sd-loading-spinner{display:block}sd-loading-spinner .sd-loading-spinner{animation:sd-loading-spin 2s linear infinite;transform-origin:center center}sd-loading-spinner .sd-loading-spinner .path{animation:sd-loading-spin-path 1.5s ease-in-out infinite}@keyframes sd-loading-spin{0%{transform:rotate3d(0, 0, 1, 0deg)}25%{transform:rotate3d(0, 0, 1, 90deg)}50%{transform:rotate3d(0, 0, 1, 180deg)}75%{transform:rotate3d(0, 0, 1, 270deg)}100%{transform:rotate3d(0, 0, 1, 359deg)}}@keyframes sd-loading-spin-path{0%{stroke-dasharray:1, 200;stroke-dashoffset:0}50%{stroke-dasharray:89, 200;stroke-dashoffset:-35px}100%{stroke-dasharray:89, 200;stroke-dashoffset:-124px}}`;
|
|
2360
2475
|
|
|
2361
2476
|
const SdLoadingSpinner = class {
|
|
2362
2477
|
constructor(hostRef) {
|
|
2363
2478
|
index.registerInstance(this, hostRef);
|
|
2364
2479
|
}
|
|
2365
2480
|
render() {
|
|
2366
|
-
return (index.h(index.Host, { key: '
|
|
2481
|
+
return (index.h(index.Host, { key: 'f8c61aa1c1f500da0aa9deac8d031306427bddb4' }, index.h("svg", { key: '66b9d93ed53b1539f4ba51cf7ca0350728ed343c', class: "sd-loading-spinner text-positive", width: "72px", height: "72px", viewBox: "25 25 50 50" }, index.h("circle", { key: '3e6e687a243ec457065e14ac44bb56706c89bb10', class: "path", cx: "50", cy: "50", r: "20", fill: "none", stroke: "currentColor", "stroke-width": "5", "stroke-miterlimit": "10" }))));
|
|
2482
|
+
}
|
|
2483
|
+
};
|
|
2484
|
+
SdLoadingSpinner.style = sdLoadingSpinnerCss();
|
|
2485
|
+
|
|
2486
|
+
const sdNumberInputCss = () => `sd-icon{display:inline-block;line-height:0}sd-icon .sd-icon--rotate-90{transform:rotate(90deg)}sd-icon .sd-icon--rotate-180{transform:rotate(180deg)}sd-icon .sd-icon--rotate-270{transform:rotate(270deg)}.sd-number-input{box-sizing:border-box;display:flex;width:var(--input-width, 100%);align-items:center;height:28px;padding:4px 8px;border:1px solid #aaaaaa;border-radius:4px;color:#333333;font-size:12px;line-height:20px;background:white;position:relative}.sd-number-input--hovered{border-color:#0075ff;box-shadow:0 0 4px 0 rgba(0, 113, 255, 0.4)}.sd-number-input.sd-number-input--error{border-color:#fb4444}.sd-number-input.sd-number-input--pass{border-color:#2bce6c}.sd-number-input.sd-number-input--disabled{background-color:#eeeeee !important;border-color:#cccccc !important;cursor:not-allowed !important;box-shadow:none !important}.sd-number-input.sd-number-input--disabled .sd-number-input__input{color:#888888 !important}.sd-number-input .sd-number-input__input{display:block;width:100%;height:20px;line-height:20px;border:none;outline:none;background:transparent;font-size:inherit;color:#333333;margin-left:4px;margin-right:4px;padding-block:0;padding-inline:0;text-align:right}.sd-number-input .sd-number-input__input::placeholder{font-size:12px;height:20px;line-height:20px;color:#aaaaaa}.sd-number-input .sd-number-input__clear-icon{cursor:pointer;margin-left:8px}.sd-number-input .sd-number-input__buttons{padding:4px;display:flex;justify-content:space-between;align-items:center;position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 0.2s ease}.sd-number-input .sd-number-input__button{width:20px;height:20px;border:none;border-radius:2px;background-color:#eff6ff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin:0;transition:background-color 0.2s ease}.sd-number-input .sd-number-input__button:hover:not(:disabled){background-color:#e6f1ff}.sd-number-input .sd-number-input__button:disabled{background-color:#eeeeee;cursor:not-allowed}.sd-number-input .sd-number-input__button--decrement{border-bottom-left-radius:0;border-bottom-right-radius:0}.sd-number-input .sd-number-input__button--increment{border-top-left-radius:0;border-top-right-radius:0}.sd-number-input .sd-number-input__label{margin-bottom:8px;font-weight:500;color:#333333}sd-number-input:focus-within .sd-number-input__buttons{opacity:1;pointer-events:auto}sd-number-input:focus-within .sd-number-input{border-color:#0075ff;box-shadow:0 0 4px 0 rgba(0, 113, 255, 0.4)}`;
|
|
2487
|
+
|
|
2488
|
+
const SdNumberInput = class {
|
|
2489
|
+
constructor(hostRef) {
|
|
2490
|
+
index.registerInstance(this, hostRef);
|
|
2491
|
+
this.sdIncrement = index.createEvent(this, "sdIncrement");
|
|
2492
|
+
this.sdDecrement = index.createEvent(this, "sdDecrement");
|
|
2493
|
+
this.sdInput = index.createEvent(this, "sdInput");
|
|
2494
|
+
this.sdChange = index.createEvent(this, "sdChange");
|
|
2495
|
+
this.sdFocus = index.createEvent(this, "sdFocus");
|
|
2496
|
+
this.sdBlur = index.createEvent(this, "sdBlur");
|
|
2497
|
+
}
|
|
2498
|
+
get el() { return index.getElement(this); }
|
|
2499
|
+
min = Number.NEGATIVE_INFINITY;
|
|
2500
|
+
max = Number.POSITIVE_INFINITY;
|
|
2501
|
+
step = 1;
|
|
2502
|
+
useButton = false;
|
|
2503
|
+
useDecimal = false;
|
|
2504
|
+
value = null;
|
|
2505
|
+
label;
|
|
2506
|
+
placeholder = '입력해 주세요.';
|
|
2507
|
+
disabled = false;
|
|
2508
|
+
width;
|
|
2509
|
+
rules;
|
|
2510
|
+
autoFocus = false;
|
|
2511
|
+
status;
|
|
2512
|
+
inputClass = '';
|
|
2513
|
+
readonly = false;
|
|
2514
|
+
inputStyle = {};
|
|
2515
|
+
internalValue = null;
|
|
2516
|
+
displayValue = '';
|
|
2517
|
+
hovered = false;
|
|
2518
|
+
error = false;
|
|
2519
|
+
nativeEl = undefined;
|
|
2520
|
+
sdIncrement;
|
|
2521
|
+
sdDecrement;
|
|
2522
|
+
sdInput;
|
|
2523
|
+
sdChange;
|
|
2524
|
+
sdFocus;
|
|
2525
|
+
sdBlur;
|
|
2526
|
+
formatWithCommas(value) {
|
|
2527
|
+
if (value === null || value === undefined)
|
|
2528
|
+
return '';
|
|
2529
|
+
const isNegative = value < 0;
|
|
2530
|
+
const absValue = Math.abs(value);
|
|
2531
|
+
const [intPart, decPart] = absValue.toString().split('.');
|
|
2532
|
+
const formatted = (+intPart).toLocaleString();
|
|
2533
|
+
const result = isNegative ? '-' + formatted : formatted;
|
|
2534
|
+
return decPart ? result + '.' + decPart : String(result);
|
|
2535
|
+
}
|
|
2536
|
+
parseInput(input) {
|
|
2537
|
+
if (!input || input.trim() === '')
|
|
2538
|
+
return null;
|
|
2539
|
+
const cleaned = input.replace(/,/g, '').trim();
|
|
2540
|
+
// -로 시작을 할 수 있을 수 있고, 소수점 0.n | .n
|
|
2541
|
+
if (!/^-?(\d+\.?\d*|\d*\.\d+)$/.test(cleaned)) {
|
|
2542
|
+
return null;
|
|
2543
|
+
}
|
|
2544
|
+
const parsed = parseFloat(cleaned);
|
|
2545
|
+
if (isNaN(parsed))
|
|
2546
|
+
return null;
|
|
2547
|
+
// 소수점 사용 하지 않는데 . 이 있는 경우
|
|
2548
|
+
if (!this.useDecimal && cleaned.includes('.')) {
|
|
2549
|
+
return null;
|
|
2550
|
+
}
|
|
2551
|
+
return parsed;
|
|
2552
|
+
}
|
|
2553
|
+
clampMinMax(value) {
|
|
2554
|
+
return Math.min(Math.max(value, this.min), this.max);
|
|
2555
|
+
}
|
|
2556
|
+
updateDisplay() {
|
|
2557
|
+
this.displayValue = this.formatWithCommas(this.internalValue);
|
|
2558
|
+
}
|
|
2559
|
+
isIncrementDisabled() {
|
|
2560
|
+
if (this.disabled || this.readonly)
|
|
2561
|
+
return true;
|
|
2562
|
+
if (this.internalValue !== null) {
|
|
2563
|
+
return this.internalValue >= this.max;
|
|
2564
|
+
}
|
|
2565
|
+
return false;
|
|
2566
|
+
}
|
|
2567
|
+
isDecrementDisabled() {
|
|
2568
|
+
if (this.disabled || this.readonly)
|
|
2569
|
+
return true;
|
|
2570
|
+
if (this.internalValue !== null) {
|
|
2571
|
+
return this.internalValue <= this.min;
|
|
2572
|
+
}
|
|
2573
|
+
return false;
|
|
2574
|
+
}
|
|
2575
|
+
valueChanged(newValue) {
|
|
2576
|
+
if (newValue === null || newValue === '') {
|
|
2577
|
+
this.internalValue = null;
|
|
2578
|
+
}
|
|
2579
|
+
else {
|
|
2580
|
+
const parsed = typeof newValue === 'string' ? this.parseInput(newValue) : newValue;
|
|
2581
|
+
if (parsed !== null) {
|
|
2582
|
+
this.internalValue = this.clampMinMax(parsed);
|
|
2583
|
+
}
|
|
2584
|
+
}
|
|
2585
|
+
this.updateDisplay();
|
|
2586
|
+
}
|
|
2587
|
+
internalValueChanged(newValue) {
|
|
2588
|
+
this.updateDisplay();
|
|
2589
|
+
if (newValue !== this.value) {
|
|
2590
|
+
this.value = newValue;
|
|
2591
|
+
this.sdInput?.emit(newValue);
|
|
2592
|
+
}
|
|
2593
|
+
if (!this.rules || this.rules.length === 0)
|
|
2594
|
+
return;
|
|
2595
|
+
this.error = false;
|
|
2596
|
+
for (const rule of this.rules) {
|
|
2597
|
+
const result = rule(newValue);
|
|
2598
|
+
if (result !== true) {
|
|
2599
|
+
this.error = true;
|
|
2600
|
+
break;
|
|
2601
|
+
}
|
|
2602
|
+
}
|
|
2603
|
+
}
|
|
2604
|
+
componentWillLoad() {
|
|
2605
|
+
if (this.value !== null && this.value !== undefined) {
|
|
2606
|
+
const parsed = typeof this.value === 'string' ? this.parseInput(this.value) : this.value;
|
|
2607
|
+
if (parsed !== null) {
|
|
2608
|
+
this.internalValue = this.clampMinMax(parsed);
|
|
2609
|
+
}
|
|
2610
|
+
}
|
|
2611
|
+
this.updateDisplay();
|
|
2612
|
+
}
|
|
2613
|
+
handleInput = (event) => {
|
|
2614
|
+
const target = event.target;
|
|
2615
|
+
const inputValue = target.value;
|
|
2616
|
+
if (inputValue === '') {
|
|
2617
|
+
this.internalValue = null;
|
|
2618
|
+
this.displayValue = '';
|
|
2619
|
+
return;
|
|
2620
|
+
}
|
|
2621
|
+
const commasRemoved = inputValue.replace(/,/g, '');
|
|
2622
|
+
// 만약에 소수점 (.) 이 여러개 일 경우
|
|
2623
|
+
const decimalCount = (commasRemoved.match(/\./g) || []).length;
|
|
2624
|
+
if (decimalCount > 1) {
|
|
2625
|
+
target.value = this.displayValue;
|
|
2626
|
+
return;
|
|
2627
|
+
}
|
|
2628
|
+
// 가능: "-", ".", "-." (단순 기호만 있는 경우)
|
|
2629
|
+
if (commasRemoved === '-' || commasRemoved === '.' || commasRemoved === '-.') {
|
|
2630
|
+
target.value = commasRemoved;
|
|
2631
|
+
return;
|
|
2632
|
+
}
|
|
2633
|
+
// 숫자 뒤에 . 이 있는 경우 (예: "1000.") -> 콤마 포맷 적용 + . 유지
|
|
2634
|
+
if (commasRemoved.endsWith('.') && decimalCount === 1) {
|
|
2635
|
+
const numberPart = commasRemoved.slice(0, -1);
|
|
2636
|
+
const parsed = this.parseInput(numberPart);
|
|
2637
|
+
if (parsed !== null) {
|
|
2638
|
+
const formatted = this.formatWithCommas(parsed);
|
|
2639
|
+
target.value = formatted + '.';
|
|
2640
|
+
return;
|
|
2641
|
+
}
|
|
2642
|
+
}
|
|
2643
|
+
const parsed = this.parseInput(commasRemoved);
|
|
2644
|
+
if (parsed !== null) {
|
|
2645
|
+
if (parsed < this.min) {
|
|
2646
|
+
target.value = this.displayValue;
|
|
2647
|
+
return;
|
|
2648
|
+
}
|
|
2649
|
+
if (parsed > this.max) {
|
|
2650
|
+
target.value = this.displayValue;
|
|
2651
|
+
return;
|
|
2652
|
+
}
|
|
2653
|
+
this.internalValue = parsed;
|
|
2654
|
+
this.displayValue = this.formatWithCommas(parsed);
|
|
2655
|
+
target.value = this.displayValue;
|
|
2656
|
+
}
|
|
2657
|
+
else {
|
|
2658
|
+
target.value = this.displayValue;
|
|
2659
|
+
}
|
|
2660
|
+
};
|
|
2661
|
+
handleChange = (event) => {
|
|
2662
|
+
const target = event.target;
|
|
2663
|
+
const inputValue = target.value;
|
|
2664
|
+
if (inputValue === '') {
|
|
2665
|
+
this.internalValue = null;
|
|
2666
|
+
}
|
|
2667
|
+
else {
|
|
2668
|
+
const parsed = this.parseInput(inputValue);
|
|
2669
|
+
if (parsed !== null) {
|
|
2670
|
+
this.internalValue = this.clampMinMax(parsed);
|
|
2671
|
+
}
|
|
2672
|
+
}
|
|
2673
|
+
this.sdChange?.emit(this.internalValue);
|
|
2674
|
+
};
|
|
2675
|
+
handleFocus = (event) => {
|
|
2676
|
+
this.sdFocus?.emit(event);
|
|
2677
|
+
};
|
|
2678
|
+
handleBlur = (event) => {
|
|
2679
|
+
this.updateDisplay();
|
|
2680
|
+
if (this.nativeEl) {
|
|
2681
|
+
this.nativeEl.value = this.displayValue;
|
|
2682
|
+
}
|
|
2683
|
+
this.sdBlur?.emit(event);
|
|
2684
|
+
};
|
|
2685
|
+
handleKeyDown = (event) => {
|
|
2686
|
+
if (event.key === 'ArrowUp') {
|
|
2687
|
+
event.preventDefault();
|
|
2688
|
+
this.handleIncrement();
|
|
2689
|
+
}
|
|
2690
|
+
else if (event.key === 'ArrowDown') {
|
|
2691
|
+
event.preventDefault();
|
|
2692
|
+
this.handleDecrement();
|
|
2693
|
+
}
|
|
2694
|
+
};
|
|
2695
|
+
handleIncrement = () => {
|
|
2696
|
+
if (this.isIncrementDisabled())
|
|
2697
|
+
return;
|
|
2698
|
+
const currentVal = this.internalValue ?? (this.min ?? 0);
|
|
2699
|
+
let nextVal = currentVal + this.step;
|
|
2700
|
+
if (nextVal > this.max) {
|
|
2701
|
+
nextVal = this.max;
|
|
2702
|
+
}
|
|
2703
|
+
if (nextVal === currentVal)
|
|
2704
|
+
return;
|
|
2705
|
+
this.sdIncrement?.emit({ currentVal: nextVal, prevVal: currentVal });
|
|
2706
|
+
this.internalValue = nextVal;
|
|
2707
|
+
this.sdChange?.emit(nextVal);
|
|
2708
|
+
};
|
|
2709
|
+
handleDecrement = () => {
|
|
2710
|
+
if (this.isDecrementDisabled())
|
|
2711
|
+
return;
|
|
2712
|
+
const currentVal = this.internalValue ?? (this.min ?? 0);
|
|
2713
|
+
let nextVal = currentVal - this.step;
|
|
2714
|
+
if (nextVal < this.min) {
|
|
2715
|
+
nextVal = this.min;
|
|
2716
|
+
}
|
|
2717
|
+
if (nextVal === currentVal)
|
|
2718
|
+
return;
|
|
2719
|
+
this.sdDecrement?.emit({ currentVal: nextVal, prevVal: currentVal });
|
|
2720
|
+
this.internalValue = nextVal;
|
|
2721
|
+
this.sdChange?.emit(nextVal);
|
|
2722
|
+
};
|
|
2723
|
+
async getNativeElement() {
|
|
2724
|
+
return this.nativeEl || null;
|
|
2725
|
+
}
|
|
2726
|
+
getInputStatus() {
|
|
2727
|
+
if (this.disabled)
|
|
2728
|
+
return 'sd-number-input--disabled';
|
|
2729
|
+
if (this.hovered)
|
|
2730
|
+
return 'sd-number-input--hovered';
|
|
2731
|
+
if (this.status)
|
|
2732
|
+
return `sd-number-input--${this.status}`;
|
|
2733
|
+
if (this.error)
|
|
2734
|
+
return 'sd-number-input--error';
|
|
2735
|
+
return '';
|
|
2736
|
+
}
|
|
2737
|
+
render() {
|
|
2738
|
+
const inputWidth = this.width
|
|
2739
|
+
? {
|
|
2740
|
+
'--input-width': typeof this.width === 'number' ? `${this.width}px` : this.width,
|
|
2741
|
+
}
|
|
2742
|
+
: {};
|
|
2743
|
+
const inputStyles = {
|
|
2744
|
+
textAlign: this.useButton ? 'center' : 'right',
|
|
2745
|
+
};
|
|
2746
|
+
return (index.h(index.Host, { key: '353b3f99bf5933d6f445a78c9cecd93fcbdd3a9c', style: inputWidth, onFocus: this.handleFocus, onBlur: this.handleBlur }, this.useButton ? 'use buttons' : 'dont use buttons', this.label && index.h("div", { key: '95d9687fa5634fb53f6a2120d2125cf92e12ccdd', class: "sd-number-input__label" }, this.label), index.h("label", { key: '05ba4deb72261325788b25842c27d7a177fda58a', class: {
|
|
2747
|
+
'sd-number-input': true,
|
|
2748
|
+
[this.getInputStatus()]: true,
|
|
2749
|
+
'sd-number-input--with-buttons': this.useButton,
|
|
2750
|
+
}, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, index.h("input", { key: 'e4c415d40c20f5e915765f4f7d68cd123517acc1', ref: el => (this.nativeEl = el), class: `sd-number-input__input ${this.inputClass}`, type: "text", inputMode: "numeric", value: this.displayValue, placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onChange: this.handleChange, onKeyDown: this.handleKeyDown, style: inputStyles }), this.useButton && (index.h("div", { key: '1b960a710170212032a8cd7c1c6ad002a3275d69', class: "sd-number-input__buttons" }, index.h("button", { key: 'c9a80bbdf96e4e191c2d43f581eba9c77f465464', type: "button", class: {
|
|
2751
|
+
'sd-number-input__button': true,
|
|
2752
|
+
'sd-number-input__button--decrement': true,
|
|
2753
|
+
}, disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, index.h("sd-icon", { key: 'c4791c052f390013e7dfdf78ef42d987e9609da1', name: "minus", size: 12, color: this.isDecrementDisabled() ? '#CCCCCC' : '#2D8DFF' })), index.h("button", { key: '769fb6ebcde814f1f8667eaadd35f97139869bf3', type: "button", class: {
|
|
2754
|
+
'sd-number-input__button': true,
|
|
2755
|
+
'sd-number-input__button--increment': true,
|
|
2756
|
+
}, disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, index.h("sd-icon", { key: '6a4d263152daaf8f4a565f6659f6bfa6c0acc814', name: "add", size: 12, color: this.isIncrementDisabled() ? '#CCCCCC' : '#2D8DFF' })))))));
|
|
2367
2757
|
}
|
|
2758
|
+
static get watchers() { return {
|
|
2759
|
+
"value": ["valueChanged"],
|
|
2760
|
+
"internalValue": ["internalValueChanged"]
|
|
2761
|
+
}; }
|
|
2368
2762
|
};
|
|
2369
|
-
|
|
2763
|
+
SdNumberInput.style = sdNumberInputCss();
|
|
2370
2764
|
|
|
2371
|
-
const sdPaginationCss =
|
|
2765
|
+
const sdPaginationCss = () => `.sd-pagination{display:flex;flex-flow:row nowrap;align-items:center;justify-content:center;gap:8px;color:#555555;width:100%;font-size:12px}.sd-pagination .prepend-btns{display:flex;flex-flow:row nowrap;align-items:center;gap:8px;width:60px}.sd-pagination .prepend-btns button{width:26px;height:26px;border:0;background:none}.sd-pagination .prepend-btns button:hover{border:1px solid #006ac1;border-radius:14px}.sd-pagination .append-btns{display:flex;flex-flow:row nowrap;align-items:center;gap:8px;width:60px}.sd-pagination .append-btns button{width:26px;height:26px;border:0;background:none}.sd-pagination .append-btns button:hover{border:1px solid #006ac1;border-radius:14px}.sd-pagination .pagination-btn{display:flex;align-items:center;justify-content:center;border-radius:14px;outline:none;border:none;cursor:pointer;height:26px;color:#555555;width:var(--pagination-btn-width, 26px)}.sd-pagination .pagination-btn--selected{background-color:#006ac1;color:white}.sd-pagination .pagination-btn:hover{border:1px solid #006ac1}.sd-pagination--simple .pagination-info{line-height:26px;display:flex;flex-flow:row nowrap;align-items:center;gap:8px}.sd-pagination--simple .pagination-info .current-page,.sd-pagination--simple .pagination-info .last-page{padding:0 2px}`;
|
|
2372
2766
|
|
|
2373
2767
|
const BUTTON_WIDTH = {
|
|
2374
2768
|
1: 26,
|
|
@@ -2442,15 +2836,15 @@ const SdPagination = class {
|
|
|
2442
2836
|
}
|
|
2443
2837
|
}
|
|
2444
2838
|
render() {
|
|
2445
|
-
return (index.h("div", { key: '
|
|
2839
|
+
return (index.h("div", { key: 'b027af83594c0408615d4c34b861c5c31112f298', class: this.paginationClasses }, index.h("div", { key: '959c79e58c7745606d719c66e8090ef23f7db554', class: "prepend-btns" }, this.renderPrevButtons()), this.simple ? (index.h("div", { class: "pagination-info" }, index.h("span", { class: "current-page" }, this.currentPage), index.h("span", null, "/"), index.h("span", { class: "last-page" }, this.lastPage))) : (this.pageNumbers.map(n => (index.h("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
|
|
2446
2840
|
'pagination-btn': true,
|
|
2447
2841
|
'pagination-btn--selected': this.currentPage === n,
|
|
2448
2842
|
}, disabled: this.currentPage === n, style: {
|
|
2449
2843
|
'--pagination-btn-width': `${this.buttonWidth}px`,
|
|
2450
|
-
}, onClick: () => this.handlePageChange(n) }, n)))), index.h("div", { key: '
|
|
2844
|
+
}, onClick: () => this.handlePageChange(n) }, n)))), index.h("div", { key: '64f13226aa9249395ac7aa7d11ea5cc946f5477a', class: "append-btns" }, this.renderNextButtons())));
|
|
2451
2845
|
}
|
|
2452
2846
|
};
|
|
2453
|
-
SdPagination.style = sdPaginationCss;
|
|
2847
|
+
SdPagination.style = sdPaginationCss();
|
|
2454
2848
|
|
|
2455
2849
|
const SdPortal = class {
|
|
2456
2850
|
constructor(hostRef) {
|
|
@@ -2570,11 +2964,11 @@ const SdPortal = class {
|
|
|
2570
2964
|
this.sdClose.emit();
|
|
2571
2965
|
}
|
|
2572
2966
|
render() {
|
|
2573
|
-
return index.h("slot", { key: '
|
|
2967
|
+
return index.h("slot", { key: 'd93a68ecf1a281765225bf204cd479bb4b7bfdbf' });
|
|
2574
2968
|
}
|
|
2575
2969
|
};
|
|
2576
2970
|
|
|
2577
|
-
const sdRadioGroupCss =
|
|
2971
|
+
const sdRadioGroupCss = () => `sd-radio-group{display:inline-block}sd-radio-group .sd-radio-group{display:flex}sd-radio-group .sd-radio-group--vertical{flex-direction:column;gap:8px}sd-radio-group .sd-radio-group--horizontal{flex-direction:row;align-items:center;gap:20px}sd-radio-group .sd-radio-group__option{width:fit-content;display:flex;align-items:center;gap:8px;font-weight:400;font-size:12px;line-height:20px;cursor:pointer}sd-radio-group .sd-radio-group__option:has(input:disabled){cursor:default}sd-radio-group .sd-radio-group__option input{position:relative;appearance:none;margin:0;width:16px;height:16px;border:1px solid #888888;border-radius:50%;cursor:pointer;accent-color:#0075ff;background-color:white}sd-radio-group .sd-radio-group__option input:checked{border-color:#0075ff;background-color:white}sd-radio-group .sd-radio-group__option input:checked::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:10px;height:10px;border-radius:50%;background-color:#0075ff}sd-radio-group .sd-radio-group__option input:disabled{cursor:default;border-color:#cccccc;background-color:#eeeeee}sd-radio-group .sd-radio-group__option input:disabled:checked::before{background-color:#cccccc}sd-radio-group .sd-radio-group__option input:not(:disabled):hover{border-color:#0075ff;background-color:#d9eaff}sd-radio-group .sd-radio-group__label{font-size:12px;color:#333333;line-height:20px;user-select:none}sd-radio-group .sd-radio-group__option--disabled .sd-radio-group__label{color:#888888}`;
|
|
2578
2972
|
|
|
2579
2973
|
const SdRadioGroup = class {
|
|
2580
2974
|
constructor(hostRef) {
|
|
@@ -2627,7 +3021,7 @@ const SdRadioGroup = class {
|
|
|
2627
3021
|
}
|
|
2628
3022
|
render() {
|
|
2629
3023
|
const groupName = this.name || `sd-radio-group-${Math.random().toString(36).substring(2, 11)}`;
|
|
2630
|
-
return (index.h("div", { key: '
|
|
3024
|
+
return (index.h("div", { key: '41a5801484b12c0688d34d7225b07ce4ac8073fa', class: this.getGroupClasses(), role: "radiogroup", "aria-disabled": this.disabled.toString() }, this.radioOptions.map((option, index$1) => {
|
|
2631
3025
|
const isSelected = this.isOptionSelected(option);
|
|
2632
3026
|
const isDisabled = this.isOptionDisabled(option);
|
|
2633
3027
|
return (index.h("label", { key: `radio-${index$1}`, class: this.getRadioClasses(option), role: "radio", "aria-checked": isSelected.toString(), "aria-disabled": isDisabled.toString(), "aria-label": option.label || 'radio option' }, index.h("input", { type: "radio", name: groupName, value: option.value.toString(), checked: isSelected, disabled: isDisabled, onInput: () => this.handleRadioChange(option.value, option.disabled) }), option.label && index.h("span", { class: "sd-radio-group__label" }, option.label)));
|
|
@@ -2637,9 +3031,9 @@ const SdRadioGroup = class {
|
|
|
2637
3031
|
"value": ["valueChanged"]
|
|
2638
3032
|
}; }
|
|
2639
3033
|
};
|
|
2640
|
-
SdRadioGroup.style = sdRadioGroupCss;
|
|
3034
|
+
SdRadioGroup.style = sdRadioGroupCss();
|
|
2641
3035
|
|
|
2642
|
-
const sdSelectCss =
|
|
3036
|
+
const sdSelectCss = () => `.sd-select__dropdown{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-select__dropdown::-webkit-scrollbar{opacity:0;background:#e5e5e5}.sd-select__dropdown::-webkit-scrollbar:horizontal{height:8px}.sd-select__dropdown::-webkit-scrollbar:vertical{width:8px}.sd-select__dropdown::-webkit-scrollbar-thumb{height:80px;background-color:#cccccc;border-radius:4px}.sd-select__dropdown::-webkit-scrollbar-track{background-color:transparent}.sd-select{display:flex;width:var(--select-width, 200px);height:28px;position:relative;color:#333333;cursor:pointer;user-select:none;border:1px solid #aaaaaa;border-radius:4px;background-color:white}.sd-select:hover:not(.sd-select--disabled){background:#f6f6f6}.sd-select.sd-select--disabled{cursor:not-allowed;background-color:#eeeeee;border-color:#cccccc}.sd-select.sd-select--disabled .sd-select__label{border-right:1px solid #cccccc}.sd-select.sd-select--disabled .sd-select__trigger{color:#888888}.sd-select.sd-select--disabled .sd-select__trigger:focus,.sd-select.sd-select--disabled .sd-select__trigger:focus-visible,.sd-select.sd-select--disabled .sd-select__trigger:focus-within{outline:none !important}.sd-select__label{font-size:12px;line-height:20px;font-weight:500;color:#333333;padding:4px 12px;border-right:1px solid #cccccc;border-radius:4px 0 0 4px;background-color:#f6f6f6;display:inline-block;white-space:nowrap}.sd-select__container{position:relative;width:100%;display:flex}.sd-select__container .sd-select__trigger{padding:4px 20px 4px 12px;display:flex;width:100%;align-items:center}.sd-select__container .sd-select__trigger .sd-select__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400;text-align:left}.sd-select__container .sd-select__trigger .sd-select__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}.sd-select__container .sd-select__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease}.sd-select__container .sd-select__arrow--open{transform:rotate(180deg)}.sd-select__dropdown{width:var(--select-dropdown-width, 200px);max-height:var(--select-dropdown-height, 260px);padding-bottom:2px;background-color:white;box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);border-radius:4px;overflow-y:auto;color:#333333;display:flex;flex-direction:column}.sd-select__dropdown .sd-select__search-container{position:sticky;top:0;display:flex;width:100%;background-color:white;align-items:center;padding:4px 8px}.sd-select__dropdown .sd-select__search-container--scrolled{box-shadow:2px 2px 8px 2px rgba(0, 0, 0, 0.2)}.sd-select__dropdown .sd-select__option-placeholder{padding:4px 12px;font-size:12px;line-height:20px;text-align:left}`;
|
|
2643
3037
|
|
|
2644
3038
|
const SdSelect = class extends selectKeyboardNavigation.BaseDropdownEvent {
|
|
2645
3039
|
constructor(hostRef) {
|
|
@@ -2675,6 +3069,9 @@ const SdSelect = class extends selectKeyboardNavigation.BaseDropdownEvent {
|
|
|
2675
3069
|
searchRef;
|
|
2676
3070
|
optionRef;
|
|
2677
3071
|
dropdownRef;
|
|
3072
|
+
async open() {
|
|
3073
|
+
this.isOpen = true;
|
|
3074
|
+
}
|
|
2678
3075
|
valueChanged() {
|
|
2679
3076
|
const selectedOption = this.getSelectedOption();
|
|
2680
3077
|
this.sdChange?.emit({ value: selectedOption?.value || null, option: selectedOption || null });
|
|
@@ -2690,7 +3087,7 @@ const SdSelect = class extends selectKeyboardNavigation.BaseDropdownEvent {
|
|
|
2690
3087
|
if (this.searchable) {
|
|
2691
3088
|
const searchInput = await this.getNativeInputElement();
|
|
2692
3089
|
if (this.itemIndex === -1) {
|
|
2693
|
-
searchInput?.focus();
|
|
3090
|
+
searchInput?.focus({ preventScroll: true });
|
|
2694
3091
|
return;
|
|
2695
3092
|
}
|
|
2696
3093
|
else if (searchInput?.matches(':focus')) {
|
|
@@ -2735,7 +3132,7 @@ const SdSelect = class extends selectKeyboardNavigation.BaseDropdownEvent {
|
|
|
2735
3132
|
const currentItem = optionElements?.[this.itemIndex];
|
|
2736
3133
|
if (this.searchable) {
|
|
2737
3134
|
const searchInput = await this.getNativeInputElement();
|
|
2738
|
-
searchInput?.focus();
|
|
3135
|
+
searchInput?.focus({ preventScroll: true });
|
|
2739
3136
|
}
|
|
2740
3137
|
if (!currentItem)
|
|
2741
3138
|
return;
|
|
@@ -2843,11 +3240,11 @@ const SdSelect = class extends selectKeyboardNavigation.BaseDropdownEvent {
|
|
|
2843
3240
|
'--select-width': this.width || '200px',
|
|
2844
3241
|
'--select-dropdown-height': this.dropdownHeight || '260px',
|
|
2845
3242
|
};
|
|
2846
|
-
return (index.h(index.Host, { key: '
|
|
3243
|
+
return (index.h(index.Host, { key: 'ba065b311487ea934dc46736fd633d4d1a13f2e4', style: style }, index.h("div", { key: '904d988d274e7827d5c969ba45643648ba0a61b3', class: {
|
|
2847
3244
|
'sd-select': true,
|
|
2848
3245
|
'sd-select--open': this.isOpen,
|
|
2849
3246
|
'sd-select--disabled': this.disabled,
|
|
2850
|
-
}, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), index.h("div", { key: '
|
|
3247
|
+
}, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), index.h("div", { key: '66fe35a68fa18cf97b4db110572f86faefa59207', class: "sd-select__container" }, this.renderTrigger(), this.renderDropdown()))));
|
|
2851
3248
|
}
|
|
2852
3249
|
renderLabel(label) {
|
|
2853
3250
|
if (!label)
|
|
@@ -2885,62 +3282,551 @@ const SdSelect = class extends selectKeyboardNavigation.BaseDropdownEvent {
|
|
|
2885
3282
|
"isOpen": ["isOpenChanged"]
|
|
2886
3283
|
}; }
|
|
2887
3284
|
};
|
|
2888
|
-
SdSelect.style = sdSelectCss;
|
|
3285
|
+
SdSelect.style = sdSelectCss();
|
|
2889
3286
|
|
|
2890
|
-
const
|
|
3287
|
+
const sdSelectMultipleGroupCss = () => `.sd-select-multiple-group__dropdown{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-select-multiple-group__dropdown::-webkit-scrollbar{opacity:0;background:#e5e5e5}.sd-select-multiple-group__dropdown::-webkit-scrollbar:horizontal{height:8px}.sd-select-multiple-group__dropdown::-webkit-scrollbar:vertical{width:8px}.sd-select-multiple-group__dropdown::-webkit-scrollbar-thumb{height:80px;background-color:#cccccc;border-radius:4px}.sd-select-multiple-group__dropdown::-webkit-scrollbar-track{background-color:transparent}sd-select-multiple-group{display:inline-block;height:fit-content}sd-select-multiple-group .sd-select-multiple-group{display:flex;flex-wrap:nowrap;width:var(--select-width, 200px);cursor:pointer;user-select:none;border:1px solid #aaaaaa;border-radius:4px;background-color:white;color:#333333}sd-select-multiple-group .sd-select-multiple-group:hover:not(.sd-select-multiple-group--disabled){background:#f6f6f6}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled{cursor:not-allowed;background-color:#eeeeee;border-color:#cccccc}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__label{border-right:1px solid #cccccc}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger{color:#888888}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus,sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus-visible,sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus-within{outline:none !important}sd-select-multiple-group .sd-select-multiple-group__label{font-size:12px;font-weight:500;color:#333333;padding:4px 12px;border-right:1px solid #cccccc;border-radius:4px 0 0 4px;background-color:#f6f6f6}sd-select-multiple-group .sd-select-multiple-group__container{position:relative;width:100%;display:flex}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger{padding:4px 20px 4px 12px;display:flex;width:100%;align-items:center}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger .sd-select-multiple-group__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger .sd-select-multiple-group__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__arrow--open{transform:rotate(180deg)}.sd-select-multiple-group__dropdown{width:var(--select-width, 200px);max-height:var(--select-dropdown-height, 260px);padding-bottom:2px;background-color:white;box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);border-radius:4px;overflow-y:auto;color:#333333;opacity:0.5;transition:opacity 0.15s ease-in}.sd-select-multiple-group__dropdown--ready{opacity:1}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container{position:sticky;top:0;display:flex;width:100%;background-color:white;align-items:center;padding:4px 8px}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container sd-input{width:100%}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container--scrolled{box-shadow:2px 2px 8px 2px rgba(0, 0, 0, 0.2)}.sd-select-multiple-group__dropdown .sd-select-multiple-group__option-placeholder{padding:4px 12px;font-size:12px;line-height:20px}`;
|
|
2891
3288
|
|
|
2892
|
-
const
|
|
3289
|
+
const SdSelectMultipleGroup = class extends selectKeyboardNavigation.BaseDropdownEvent {
|
|
2893
3290
|
constructor(hostRef) {
|
|
3291
|
+
super();
|
|
2894
3292
|
index.registerInstance(this, hostRef);
|
|
2895
|
-
this.
|
|
3293
|
+
this.sdChange = index.createEvent(this, "sdChange");
|
|
3294
|
+
this.dropDownShow = index.createEvent(this, "dropDownShow");
|
|
2896
3295
|
}
|
|
2897
3296
|
get el() { return index.getElement(this); }
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
3297
|
+
// props
|
|
3298
|
+
value = null;
|
|
3299
|
+
label = '';
|
|
3300
|
+
options = [];
|
|
3301
|
+
placeholder = '선택';
|
|
3302
|
+
optionPlaceholder = '옵션이 없습니다.';
|
|
3303
|
+
width = '200px';
|
|
3304
|
+
dropdownHeight = '260px';
|
|
2903
3305
|
disabled = false;
|
|
3306
|
+
clearable = false;
|
|
3307
|
+
searchable = false;
|
|
2904
3308
|
useCheckbox = false;
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
3309
|
+
useAll = false;
|
|
3310
|
+
allCheckedLabel = '전체';
|
|
3311
|
+
allCheckOptionLabel = '전체';
|
|
3312
|
+
// props - custom styles
|
|
3313
|
+
containerStyle = {};
|
|
3314
|
+
triggerStyle = {};
|
|
3315
|
+
dropdownStyle = {};
|
|
3316
|
+
optionStyle = {};
|
|
3317
|
+
labelStyle = {};
|
|
3318
|
+
// props - custom slots
|
|
3319
|
+
optionRenderer;
|
|
3320
|
+
// states
|
|
3321
|
+
filteredOptions = this.options;
|
|
3322
|
+
isOpen = false;
|
|
3323
|
+
searchText = null;
|
|
3324
|
+
itemIndex = -1;
|
|
3325
|
+
isScrolled = false;
|
|
3326
|
+
isDropdownReady = false;
|
|
3327
|
+
// events
|
|
3328
|
+
sdChange;
|
|
3329
|
+
dropDownShow;
|
|
3330
|
+
selectRef;
|
|
3331
|
+
searchRef;
|
|
3332
|
+
optionRef;
|
|
3333
|
+
dropdownRef;
|
|
3334
|
+
valueChanged() {
|
|
3335
|
+
this.sdChange?.emit(this.value);
|
|
2908
3336
|
}
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
if (!this.option.disabled && !this.disabled) {
|
|
2913
|
-
this.optionClick.emit({
|
|
2914
|
-
option: this.option,
|
|
2915
|
-
index: this.index,
|
|
2916
|
-
event,
|
|
2917
|
-
});
|
|
2918
|
-
}
|
|
2919
|
-
};
|
|
2920
|
-
render() {
|
|
2921
|
-
return (index.h(index.Host, { key: '7cf5b51057f8eb7ad7cf7143225bcd842e5fa231' }, index.h("div", { key: 'ab9e02db38a0717b9aeb85890b150a6e59a9f7ee', class: {
|
|
2922
|
-
'sd-select__option': true,
|
|
2923
|
-
'sd-select__option--selected': this.isSelected,
|
|
2924
|
-
'sd-select__option--disabled': !!this.option.disabled,
|
|
2925
|
-
'sd-select__option--focused': this.isFocused,
|
|
2926
|
-
'sd-select__option--use-checkbox': this.useCheckbox,
|
|
2927
|
-
}, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: this.handleClick }, this.useCheckbox ? (index.h("div", { class: "sd-select__option__checkbox-wrapper" }, index.h("sd-checkbox", { checked: this.isSelected, disabled: this.option.disabled,
|
|
2928
|
-
// checkboxStyle={
|
|
2929
|
-
// !this.isSelected
|
|
2930
|
-
// ? { borderColor: '#888' }
|
|
2931
|
-
// : this.isHovered
|
|
2932
|
-
// ? { borderColor: 'white' }
|
|
2933
|
-
// : { borderColor: '#0075ff' }
|
|
2934
|
-
// }
|
|
2935
|
-
onClick: e => {
|
|
2936
|
-
e.preventDefault();
|
|
2937
|
-
this.handleClick(e);
|
|
2938
|
-
} }), index.h("span", { class: "sd-select__option-label" }, this.option.label))) : (this.option.label))));
|
|
3337
|
+
optionsChanged() {
|
|
3338
|
+
this.filteredOptions = this.options;
|
|
3339
|
+
this.filterOptions();
|
|
2939
3340
|
}
|
|
3341
|
+
searchTextChanged() {
|
|
3342
|
+
this.filterOptions();
|
|
3343
|
+
}
|
|
3344
|
+
async itemIndexChanged(newIndex, oldIndex) {
|
|
3345
|
+
if (this.searchable) {
|
|
3346
|
+
const searchInput = await this.getNativeInputElement();
|
|
3347
|
+
if (this.itemIndex === -1) {
|
|
3348
|
+
searchInput?.focus({ preventScroll: true });
|
|
3349
|
+
return;
|
|
3350
|
+
}
|
|
3351
|
+
else if (searchInput?.matches(':focus')) {
|
|
3352
|
+
searchInput?.blur();
|
|
3353
|
+
}
|
|
3354
|
+
}
|
|
3355
|
+
const optionElements = Array.from(this.dropdownRef?.querySelectorAll('sd-select-option-group') || []);
|
|
3356
|
+
// useAll 사용시 "전체" 옵션 포함한 인덱스 사용
|
|
3357
|
+
const actualIndex = this.useAll ? this.itemIndex + 1 : this.itemIndex;
|
|
3358
|
+
const currentItem = optionElements?.[actualIndex];
|
|
3359
|
+
if (!currentItem || !this.isOpen)
|
|
3360
|
+
return;
|
|
3361
|
+
this.optionRef = currentItem;
|
|
3362
|
+
const isOptionDisabled = await this.optionRef.isDisabled();
|
|
3363
|
+
if (isOptionDisabled) {
|
|
3364
|
+
newIndex > oldIndex ? this.itemIndex++ : this.itemIndex--;
|
|
3365
|
+
return;
|
|
3366
|
+
}
|
|
3367
|
+
this.scrollToOption(currentItem);
|
|
3368
|
+
}
|
|
3369
|
+
async isOpenChanged() {
|
|
3370
|
+
// Base class의 이벤트 관리 호출 - 다른 select와의 이벤트 충돌 방지
|
|
3371
|
+
this.onDropdownToggle(this.isOpen);
|
|
3372
|
+
this.dropDownShow?.emit({ isOpen: this.isOpen });
|
|
3373
|
+
this.isDropdownReady = false;
|
|
3374
|
+
if (this.isOpen === false) {
|
|
3375
|
+
return;
|
|
3376
|
+
}
|
|
3377
|
+
// DOM 렌더링을 기다리기 위해 이중 requestAnimationFrame 사용 - (레이아웃/스타일 계산 - 페인트 이후)
|
|
3378
|
+
requestAnimationFrame(() => {
|
|
3379
|
+
requestAnimationFrame(async () => {
|
|
3380
|
+
const selectedOptions = this.getSelectedOption();
|
|
3381
|
+
// 선택된 옵션이 있으면 첫 번째 선택된 항목으로 스크롤
|
|
3382
|
+
if (selectedOptions && selectedOptions.length > 0) {
|
|
3383
|
+
const selectedIndex = this.options.indexOf(selectedOptions[0]);
|
|
3384
|
+
const optionElements = Array.from(this.dropdownRef?.querySelectorAll('sd-select-option-group') || []);
|
|
3385
|
+
// useAll 사용시 "전체" 옵션 포함한 인덱스 사용
|
|
3386
|
+
const actualIndex = this.useAll ? selectedIndex + 1 : selectedIndex;
|
|
3387
|
+
// 선택된 옵션이 화면 가운데에 오도록 index 조정
|
|
3388
|
+
const targetIndex = Math.min(actualIndex + 4, optionElements.length - 1);
|
|
3389
|
+
const currentItem = optionElements?.[targetIndex];
|
|
3390
|
+
if (currentItem) {
|
|
3391
|
+
this.scrollToOption(currentItem);
|
|
3392
|
+
}
|
|
3393
|
+
}
|
|
3394
|
+
this.isDropdownReady = true;
|
|
3395
|
+
if (this.searchable) {
|
|
3396
|
+
const searchInput = await this.getNativeInputElement();
|
|
3397
|
+
if (searchInput) {
|
|
3398
|
+
requestAnimationFrame(() => {
|
|
3399
|
+
searchInput.focus({ preventScroll: true });
|
|
3400
|
+
});
|
|
3401
|
+
}
|
|
3402
|
+
}
|
|
3403
|
+
});
|
|
3404
|
+
});
|
|
3405
|
+
}
|
|
3406
|
+
async open() {
|
|
3407
|
+
await new Promise(resolve => setTimeout(resolve, 0));
|
|
3408
|
+
this.isOpen = true;
|
|
3409
|
+
}
|
|
3410
|
+
componentWillLoad() {
|
|
3411
|
+
// props가 모두 설정된 후에 실행되므로 올바른 options 값을 가져올 수 있음
|
|
3412
|
+
this.filteredOptions = this.options;
|
|
3413
|
+
this.initializeEvent(); // global dropdown Manager에 등록 + 이벤트 핸들러 초기화
|
|
3414
|
+
}
|
|
3415
|
+
disconnectedCallback() {
|
|
3416
|
+
this.cleanupEvent(); // global dropdown Manager에서 제거 + 이벤트 정리
|
|
3417
|
+
}
|
|
3418
|
+
handleDocumentClick(event) {
|
|
3419
|
+
if (!this.selectRef?.contains(event.target)) {
|
|
3420
|
+
this.isOpen = false;
|
|
3421
|
+
}
|
|
3422
|
+
}
|
|
3423
|
+
handleDocumentKeydown(keyboardEvent) {
|
|
3424
|
+
keyboardEvent.stopPropagation();
|
|
3425
|
+
const targetKey = ['ArrowDown', 'ArrowUp', 'Enter', 'Escape'];
|
|
3426
|
+
if (!targetKey.includes(keyboardEvent.key))
|
|
3427
|
+
return;
|
|
3428
|
+
keyboardEvent.preventDefault();
|
|
3429
|
+
switch (keyboardEvent.key) {
|
|
3430
|
+
case 'ArrowDown':
|
|
3431
|
+
case 'ArrowUp':
|
|
3432
|
+
const keyboardNavigation = new selectKeyboardNavigation.SelectKeyboardNavigation(this.searchable, this.filteredOptions);
|
|
3433
|
+
const nextIndex = keyboardNavigation.getNextIndex(this.itemIndex, keyboardEvent.key);
|
|
3434
|
+
this.itemIndex = nextIndex;
|
|
3435
|
+
break;
|
|
3436
|
+
case 'Enter':
|
|
3437
|
+
const selectedOption = this.filteredOptions[this.itemIndex];
|
|
3438
|
+
if (selectedOption && !selectedOption.disabled) {
|
|
3439
|
+
this.handleOptionSelection(selectedOption);
|
|
3440
|
+
}
|
|
3441
|
+
break;
|
|
3442
|
+
case 'Escape':
|
|
3443
|
+
this.isOpen = false;
|
|
3444
|
+
break;
|
|
3445
|
+
}
|
|
3446
|
+
}
|
|
3447
|
+
// event handlers
|
|
3448
|
+
handleTriggerClick = (event) => {
|
|
3449
|
+
event.stopPropagation();
|
|
3450
|
+
if (!this.disabled) {
|
|
3451
|
+
this.isOpen = !this.isOpen;
|
|
3452
|
+
this.dropDownShow?.emit({ isOpen: this.isOpen });
|
|
3453
|
+
}
|
|
3454
|
+
};
|
|
3455
|
+
handleAllOptionClick = (detail) => {
|
|
3456
|
+
if (detail.isSelected) {
|
|
3457
|
+
// 이미 선택된 옵션인 경우, 선택 해제
|
|
3458
|
+
const filterDisabledOptions = this.filteredOptions.filter(opt => opt.type === 'item' && !opt.disabled);
|
|
3459
|
+
this.value =
|
|
3460
|
+
this.value?.filter(selected => !filterDisabledOptions.some(opt => opt.value === selected.value)) || this.value;
|
|
3461
|
+
}
|
|
3462
|
+
else {
|
|
3463
|
+
// 새로운 옵션 선택
|
|
3464
|
+
const valueSet = new Set([
|
|
3465
|
+
...(this.value || []),
|
|
3466
|
+
...this.filteredOptions.filter(opt => opt.type === 'item' && !opt.disabled),
|
|
3467
|
+
]);
|
|
3468
|
+
this.value = Array.from(valueSet);
|
|
3469
|
+
}
|
|
3470
|
+
};
|
|
3471
|
+
handleOptionClick = (detail) => {
|
|
3472
|
+
const { option, event } = detail;
|
|
3473
|
+
event.stopPropagation();
|
|
3474
|
+
if (option.type === 'group')
|
|
3475
|
+
this.handleGroupOptionClick(detail);
|
|
3476
|
+
if (option.type === 'subgroup')
|
|
3477
|
+
this.handleSubGroupOptionClick(detail);
|
|
3478
|
+
if (option.type === 'item')
|
|
3479
|
+
this.handleOptionSelection(option);
|
|
3480
|
+
};
|
|
3481
|
+
handleGroupOptionClick = (detail) => {
|
|
3482
|
+
const { option, isSelected } = detail;
|
|
3483
|
+
const childOptions = this.filteredOptions.filter(opt => opt.parent === option.value && !opt.disabled);
|
|
3484
|
+
childOptions.forEach(subgroup => {
|
|
3485
|
+
this.handleSubGroupOptionClick({
|
|
3486
|
+
option: subgroup,
|
|
3487
|
+
isSelected: isSelected || isSelected === null,
|
|
3488
|
+
});
|
|
3489
|
+
});
|
|
3490
|
+
};
|
|
3491
|
+
handleSubGroupOptionClick = (detail) => {
|
|
3492
|
+
const { option, isSelected } = detail;
|
|
3493
|
+
const childOptions = this.filteredOptions.filter(opt => opt.parent === option.value && !opt.disabled);
|
|
3494
|
+
if (isSelected || isSelected === null) {
|
|
3495
|
+
// 모든 자식 옵션이 선택된 경우, 모두 선택 해제
|
|
3496
|
+
this.value =
|
|
3497
|
+
this.value?.filter(selected => !childOptions.some(child => child.value === selected.value)) ||
|
|
3498
|
+
null;
|
|
3499
|
+
}
|
|
3500
|
+
else {
|
|
3501
|
+
// 일부 또는 전체 자식 옵션이 선택되지 않은 경우, 모두 선택
|
|
3502
|
+
const newSelections = childOptions.filter(child => !this.value?.some(selected => selected.value === child.value));
|
|
3503
|
+
this.value = [...(this.value || []), ...newSelections];
|
|
3504
|
+
}
|
|
3505
|
+
};
|
|
3506
|
+
filterOptions() {
|
|
3507
|
+
if (!this.searchText || this.searchText.trim() === '') {
|
|
3508
|
+
// 검색어가 없으면 전체 옵션 표시
|
|
3509
|
+
this.filteredOptions = this.options;
|
|
3510
|
+
return;
|
|
3511
|
+
}
|
|
3512
|
+
const searchTerm = this.searchText.toLowerCase();
|
|
3513
|
+
const matchedOptions = new Set();
|
|
3514
|
+
// 1. 직접 매칭되는 옵션들 찾기
|
|
3515
|
+
this.options.forEach(option => {
|
|
3516
|
+
if (option.label.toLowerCase().includes(searchTerm)) {
|
|
3517
|
+
matchedOptions.add(option);
|
|
3518
|
+
// 매칭된 옵션의 상위 그룹들도 포함
|
|
3519
|
+
this.addParentGroups(option, matchedOptions);
|
|
3520
|
+
}
|
|
3521
|
+
});
|
|
3522
|
+
// 2. Set을 배열로 변환하고 원본 순서 유지
|
|
3523
|
+
this.filteredOptions = this.options.filter(option => matchedOptions.has(option));
|
|
3524
|
+
}
|
|
3525
|
+
addParentGroups(option, matchedSet) {
|
|
3526
|
+
if (!option.parent)
|
|
3527
|
+
return;
|
|
3528
|
+
const parentOption = this.options.find(opt => opt.value === option.parent);
|
|
3529
|
+
if (parentOption && !matchedSet.has(parentOption)) {
|
|
3530
|
+
matchedSet.add(parentOption);
|
|
3531
|
+
// 재귀적으로 상위 그룹들도 추가
|
|
3532
|
+
this.addParentGroups(parentOption, matchedSet);
|
|
3533
|
+
}
|
|
3534
|
+
}
|
|
3535
|
+
getSelectedOption() {
|
|
3536
|
+
return this.options.filter(option => this.value?.includes(option));
|
|
3537
|
+
}
|
|
3538
|
+
handleDropdownScroll = (event) => {
|
|
3539
|
+
const target = event.target;
|
|
3540
|
+
const scrollTop = target.scrollTop;
|
|
3541
|
+
// 스크롤이 조금이라도 되면 그림자 표시
|
|
3542
|
+
this.isScrolled = scrollTop > 0;
|
|
3543
|
+
};
|
|
3544
|
+
async getNativeInputElement() {
|
|
3545
|
+
if (this.searchRef) {
|
|
3546
|
+
return this.searchRef.getNativeElement();
|
|
3547
|
+
}
|
|
3548
|
+
return null;
|
|
3549
|
+
}
|
|
3550
|
+
handleOptionSelection = (option) => {
|
|
3551
|
+
if (!option || option.disabled)
|
|
3552
|
+
return;
|
|
3553
|
+
const isAlreadySelected = this.value?.some(opt => opt.value === option.value);
|
|
3554
|
+
if (isAlreadySelected) {
|
|
3555
|
+
// 이미 선택된 옵션인 경우, 선택 해제
|
|
3556
|
+
this.value = this.value?.filter(opt => opt.value !== option.value) || null;
|
|
3557
|
+
}
|
|
3558
|
+
else {
|
|
3559
|
+
// 새로운 옵션 선택
|
|
3560
|
+
this.value = [...(this.value || []), option];
|
|
3561
|
+
}
|
|
3562
|
+
};
|
|
3563
|
+
getAllItemsUnderOption(parentOption, includeDisabled = false) {
|
|
3564
|
+
const filterChildrenWithParent = (option) => option.parent === parentOption.value && (includeDisabled || !option.disabled);
|
|
3565
|
+
if (parentOption.type === 'subgroup') {
|
|
3566
|
+
return this.filteredOptions.filter(option => filterChildrenWithParent(option) && option.type === 'item');
|
|
3567
|
+
}
|
|
3568
|
+
const allItems = [];
|
|
3569
|
+
const childOptions = this.filteredOptions.filter(filterChildrenWithParent);
|
|
3570
|
+
const subgroupOptions = childOptions.filter(option => option.type === 'subgroup');
|
|
3571
|
+
subgroupOptions.forEach(subgroup => {
|
|
3572
|
+
const itemsUnderSubgroup = this.filteredOptions.filter(option => option.parent === subgroup.value &&
|
|
3573
|
+
option.type === 'item' &&
|
|
3574
|
+
(includeDisabled ? true : !option.disabled));
|
|
3575
|
+
allItems.push(...itemsUnderSubgroup);
|
|
3576
|
+
});
|
|
3577
|
+
const directItems = childOptions.filter(option => option.type === 'item');
|
|
3578
|
+
allItems.push(...directItems);
|
|
3579
|
+
return allItems;
|
|
3580
|
+
}
|
|
3581
|
+
isAllChildrenSelected(groupOption) {
|
|
3582
|
+
const allItems = this.getAllItemsUnderOption(groupOption);
|
|
3583
|
+
if (allItems.length === 0)
|
|
3584
|
+
return false;
|
|
3585
|
+
const selectedItems = allItems.filter(item => this.value?.some(selected => selected.value === item.value));
|
|
3586
|
+
if (selectedItems.length === allItems.length)
|
|
3587
|
+
return true;
|
|
3588
|
+
if (selectedItems.length > 0)
|
|
3589
|
+
return null;
|
|
3590
|
+
return false;
|
|
3591
|
+
}
|
|
3592
|
+
getChildrenOptions(parentOption) {
|
|
3593
|
+
const allItems = this.getAllItemsUnderOption(parentOption, true);
|
|
3594
|
+
const selectedCount = allItems.filter(item => this.value?.some(val => val.value === item.value)).length;
|
|
3595
|
+
return {
|
|
3596
|
+
selectedCount,
|
|
3597
|
+
totalCount: allItems.length,
|
|
3598
|
+
};
|
|
3599
|
+
}
|
|
3600
|
+
isAllOptionsSelected() {
|
|
3601
|
+
if (!this.value || this.value.length === 0)
|
|
3602
|
+
return false;
|
|
3603
|
+
const selectableItems = this.options.filter(opt => opt.type === 'item' && !opt.disabled);
|
|
3604
|
+
if (selectableItems.length === 0)
|
|
3605
|
+
return false;
|
|
3606
|
+
const selectedValues = new Set(this.value.map(v => v.value));
|
|
3607
|
+
return selectableItems.every(option => selectedValues.has(option.value));
|
|
3608
|
+
}
|
|
3609
|
+
getTriggerLabel() {
|
|
3610
|
+
const selectedOption = this.getSelectedOption();
|
|
3611
|
+
if (!selectedOption)
|
|
3612
|
+
return '선택';
|
|
3613
|
+
if (selectedOption.length === 0)
|
|
3614
|
+
return this.placeholder;
|
|
3615
|
+
const isAllChecked = this.isAllOptionsSelected();
|
|
3616
|
+
return isAllChecked
|
|
3617
|
+
? this.allCheckedLabel
|
|
3618
|
+
: selectedOption.map(option => option.label).join(', ');
|
|
3619
|
+
}
|
|
3620
|
+
closeDropdown() {
|
|
3621
|
+
this.isOpen = false;
|
|
3622
|
+
}
|
|
3623
|
+
async scrollToOption(optionElement) {
|
|
3624
|
+
if (!this.dropdownRef || !optionElement)
|
|
3625
|
+
return;
|
|
3626
|
+
requestAnimationFrame(() => {
|
|
3627
|
+
const dropdown = this.dropdownRef;
|
|
3628
|
+
const optionTop = optionElement.offsetTop;
|
|
3629
|
+
const optionHeight = optionElement.offsetHeight;
|
|
3630
|
+
const dropdownScrollTop = dropdown.scrollTop;
|
|
3631
|
+
const dropdownHeight = dropdown.clientHeight;
|
|
3632
|
+
const searchContainer = dropdown.querySelector('.sd-select-multiple-group__search-container');
|
|
3633
|
+
const searchOffset = searchContainer ? searchContainer.offsetHeight : 0;
|
|
3634
|
+
const visibleContentHeight = dropdownHeight - searchOffset;
|
|
3635
|
+
const visibleTop = dropdownScrollTop + searchOffset;
|
|
3636
|
+
const visibleBottom = dropdownScrollTop + dropdownHeight;
|
|
3637
|
+
if (optionTop < visibleTop) {
|
|
3638
|
+
dropdown.scrollTo({ top: optionTop - searchOffset, behavior: 'instant' });
|
|
3639
|
+
}
|
|
3640
|
+
else if (optionTop + optionHeight > visibleBottom) {
|
|
3641
|
+
dropdown.scrollTo({
|
|
3642
|
+
top: optionTop + optionHeight - visibleContentHeight - searchOffset,
|
|
3643
|
+
behavior: 'instant',
|
|
3644
|
+
});
|
|
3645
|
+
}
|
|
3646
|
+
});
|
|
3647
|
+
}
|
|
3648
|
+
render() {
|
|
3649
|
+
const style = {
|
|
3650
|
+
'--select-width': this.width || '200px',
|
|
3651
|
+
'--select-dropdown-height': this.dropdownHeight || '260px',
|
|
3652
|
+
};
|
|
3653
|
+
return (index.h(index.Host, { key: '00e3f75c997fe76087ddfa2d9fef2ddb11a10a3e', style: style }, index.h("div", { key: 'f7e5a9f0d3704e0cfb014c8b7a84e6c93d61d31b', class: {
|
|
3654
|
+
'sd-select-multiple-group': true,
|
|
3655
|
+
'sd-select-multiple-group--open': this.isOpen,
|
|
3656
|
+
'sd-select-multiple-group--disabled': this.disabled,
|
|
3657
|
+
}, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), index.h("div", { key: '5b4d771e6ba76ce56974eeee2f01e6a267f557f5', class: "sd-select-multiple-group__container" }, this.renderTrigger(), this.renderDropdown()))));
|
|
3658
|
+
}
|
|
3659
|
+
renderLabel(label, labelStyle) {
|
|
3660
|
+
if (!label)
|
|
3661
|
+
return null;
|
|
3662
|
+
return (index.h("label", { class: "sd-select-multiple-group__label", style: labelStyle }, label));
|
|
3663
|
+
}
|
|
3664
|
+
renderTrigger() {
|
|
3665
|
+
const selectedOption = this.getSelectedOption();
|
|
3666
|
+
return (index.h("div", { class: "sd-select-multiple-group__trigger", tabindex: this.disabled ? -1 : 0, onClick: this.handleTriggerClick, style: this.triggerStyle }, index.h("span", { class: "sd-select-multiple-group__value" }, this.getTriggerLabel()), this.clearable && selectedOption?.length > 0 && !this.disabled && (index.h("sd-icon", { key: "close-icon", name: "close", size: 10, color: "#888", class: "sd-select-multiple-group__clear", onClick: event => {
|
|
3667
|
+
event.stopPropagation();
|
|
3668
|
+
this.value = null;
|
|
3669
|
+
} })), index.h("sd-icon", { key: "arrow-icon", name: "arrowDown", color: "#888", class: {
|
|
3670
|
+
'sd-select-multiple-group__arrow': true,
|
|
3671
|
+
'sd-select-multiple-group__arrow--open': this.isOpen,
|
|
3672
|
+
} })));
|
|
3673
|
+
}
|
|
3674
|
+
renderDropdown() {
|
|
3675
|
+
const style = {
|
|
3676
|
+
'--select-width': this.width || '200px',
|
|
3677
|
+
'--select-dropdown-height': this.dropdownHeight || '260px',
|
|
3678
|
+
};
|
|
3679
|
+
if (this.isOpen === false)
|
|
3680
|
+
return null;
|
|
3681
|
+
return (index.h("sd-portal", { open: this.isOpen, parentRef: this.selectRef, onSdClose: this.closeDropdown }, index.h("div", { style: { width: '0', height: '0', overflow: 'visible' } }, index.h("div", { class: {
|
|
3682
|
+
'sd-select-multiple-group__dropdown': true,
|
|
3683
|
+
'sd-select-multiple-group__dropdown--ready': this.isDropdownReady,
|
|
3684
|
+
}, style: { ...style, ...this.dropdownStyle }, onScroll: this.handleDropdownScroll, ref: el => (this.dropdownRef = el) }, this.searchable && (index.h("div", { class: {
|
|
3685
|
+
'sd-select-multiple-group__search-container': true,
|
|
3686
|
+
'sd-select-multiple-group__search-container--scrolled': this.isScrolled,
|
|
3687
|
+
}, onClick: event => event.stopPropagation() }, index.h("sd-input", { ref: el => (this.searchRef = el), value: this.searchText, placeholder: "\uAC80\uC0C9", clearable: true, inputStyle: { 'padding-left': '8px' }, autofocus: true, onSdInput: event => {
|
|
3688
|
+
this.searchText = String(event?.detail);
|
|
3689
|
+
}, onSdFocus: () => {
|
|
3690
|
+
this.itemIndex = -1;
|
|
3691
|
+
}, onKeyDown: e => {
|
|
3692
|
+
if (e.code === 'Enter')
|
|
3693
|
+
e.stopPropagation();
|
|
3694
|
+
} }, index.h("sd-icon", { name: "search", size: 16, color: "#737373", slot: "prefix" })))), this.filteredOptions.length > 0 ? (index.h(index.Fragment, null, this.useAll && (index.h("sd-select-option-group", { option: { label: this.allCheckOptionLabel, value: '', type: 'all' }, index: 0, isSelected: this.isAllOptionsSelected(), isFocused: this.itemIndex === 0, optionStyle: this.optionStyle, onOptionClick: ({ detail, }) => this.handleAllOptionClick(detail), useCheckbox: this.useCheckbox, useIndicator: false })), this.filteredOptions.map((option, index$1) => (index.h("slot", { name: `option-${option.value}` }, index.h("sd-select-option-group", { option: option, index: index$1, isSelected: option.type === 'item'
|
|
3695
|
+
? this.value?.some(selected => selected.value === option.value)
|
|
3696
|
+
: this.isAllChildrenSelected(option), isFocused: index$1 === this.itemIndex, optionStyle: this.optionStyle, onOptionClick: ({ detail, }) => {
|
|
3697
|
+
if (option.type !== 'item' && !this.useCheckbox) {
|
|
3698
|
+
return;
|
|
3699
|
+
}
|
|
3700
|
+
this.handleOptionClick(detail);
|
|
3701
|
+
}, useCheckbox: this.useCheckbox, ...(option.type !== 'item' && { countInfo: this.getChildrenOptions(option) }) })))))) : (index.h("slot", { name: "option-placeholder" }, index.h("div", { class: 'sd-select-multiple-group__option-placeholder', style: this.optionStyle }, this.optionPlaceholder)))))));
|
|
3702
|
+
}
|
|
3703
|
+
static get watchers() { return {
|
|
3704
|
+
"value": ["valueChanged"],
|
|
3705
|
+
"options": ["optionsChanged"],
|
|
3706
|
+
"searchText": ["searchTextChanged"],
|
|
3707
|
+
"itemIndex": ["itemIndexChanged"],
|
|
3708
|
+
"isOpen": ["isOpenChanged"]
|
|
3709
|
+
}; }
|
|
2940
3710
|
};
|
|
2941
|
-
|
|
3711
|
+
SdSelectMultipleGroup.style = sdSelectMultipleGroupCss();
|
|
2942
3712
|
|
|
2943
|
-
const
|
|
3713
|
+
const sdSelectOptionCss = () => `sd-select-option{display:block;height:fit-content;line-height:0}sd-select-option .sd-select__option{display:flex;padding:4px 12px;font-size:12px;line-height:20px;cursor:pointer}sd-select-option .sd-select__option__checkbox-wrapper{display:flex;width:100%;column-gap:8px;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}sd-select-option .sd-select__option--focused{background-color:#e6f1ff}sd-select-option .sd-select__option--selected:not(:hover):not(.sd-select__option--use-checkbox),sd-select-option .sd-select__option--focused:not(:hover):not(.sd-select__option--use-checkbox){color:#0075ff;font-weight:700}sd-select-option .sd-select__option--disabled{color:#aaaaaa;cursor:not-allowed}sd-select-option .sd-select__option:hover:not(.sd-select__option--disabled){background-color:#0075ff;color:white}`;
|
|
3714
|
+
|
|
3715
|
+
const SdSelectOption = class {
|
|
3716
|
+
constructor(hostRef) {
|
|
3717
|
+
index.registerInstance(this, hostRef);
|
|
3718
|
+
this.optionClick = index.createEvent(this, "optionClick");
|
|
3719
|
+
}
|
|
3720
|
+
get el() { return index.getElement(this); }
|
|
3721
|
+
option;
|
|
3722
|
+
index;
|
|
3723
|
+
isSelected = false;
|
|
3724
|
+
isFocused = false;
|
|
3725
|
+
optionStyle;
|
|
3726
|
+
disabled = false;
|
|
3727
|
+
useCheckbox = false;
|
|
3728
|
+
isHovered = false;
|
|
3729
|
+
async isDisabled() {
|
|
3730
|
+
return !!this.option.disabled;
|
|
3731
|
+
}
|
|
3732
|
+
optionClick;
|
|
3733
|
+
handleClick = (event) => {
|
|
3734
|
+
event.stopPropagation();
|
|
3735
|
+
if (!this.option.disabled && !this.disabled) {
|
|
3736
|
+
this.optionClick.emit({
|
|
3737
|
+
option: this.option,
|
|
3738
|
+
index: this.index,
|
|
3739
|
+
event,
|
|
3740
|
+
});
|
|
3741
|
+
}
|
|
3742
|
+
};
|
|
3743
|
+
render() {
|
|
3744
|
+
return (index.h(index.Host, { key: 'd106374cd96d326e885b65ac94ecf1a397ea2ad9' }, index.h("div", { key: 'e07601d9c735f7950102449342257a7e39d28a42', class: {
|
|
3745
|
+
'sd-select__option': true,
|
|
3746
|
+
'sd-select__option--selected': this.isSelected,
|
|
3747
|
+
'sd-select__option--disabled': !!this.option.disabled,
|
|
3748
|
+
'sd-select__option--focused': this.isFocused,
|
|
3749
|
+
'sd-select__option--use-checkbox': this.useCheckbox,
|
|
3750
|
+
}, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: this.handleClick }, this.useCheckbox ? (index.h("div", { class: "sd-select__option__checkbox-wrapper" }, index.h("sd-checkbox", { checked: this.isSelected, disabled: this.option.disabled,
|
|
3751
|
+
// checkboxStyle={
|
|
3752
|
+
// !this.isSelected
|
|
3753
|
+
// ? { borderColor: '#888' }
|
|
3754
|
+
// : this.isHovered
|
|
3755
|
+
// ? { borderColor: 'white' }
|
|
3756
|
+
// : { borderColor: '#0075ff' }
|
|
3757
|
+
// }
|
|
3758
|
+
onClick: e => {
|
|
3759
|
+
e.preventDefault();
|
|
3760
|
+
this.handleClick(e);
|
|
3761
|
+
} }), index.h("span", { class: "sd-select__option-label" }, this.option.label))) : (this.option.label))));
|
|
3762
|
+
}
|
|
3763
|
+
};
|
|
3764
|
+
SdSelectOption.style = sdSelectOptionCss();
|
|
3765
|
+
|
|
3766
|
+
const sdSelectOptionGroupCss = () => `sd-select-option-group{display:block;height:fit-content}sd-select-option-group .sd-select__option-group{display:flex;padding:4px 12px;padding-left:12px;font-size:12px;line-height:20px;cursor:pointer}sd-select-option-group .sd-select__option-group.sd-select__option-group--group:not(.sd-select__option-group--use-checkbox),sd-select-option-group .sd-select__option-group.sd-select__option-group--subgroup:not(.sd-select__option-group--use-checkbox){cursor:default !important}sd-select-option-group .sd-select__option-group.sd-select__option-group--group{background-color:#f5faff !important;color:#333333 !important;font-weight:700}sd-select-option-group .sd-select__option-group.sd-select__option-group--subgroup{padding-left:20px;background-color:#f9f9f9 !important;color:#333333 !important;font-weight:500}sd-select-option-group .sd-select__option-group.sd-select__option-group--item{padding-left:28px}sd-select-option-group .sd-select__option-group sd-checkbox__bg{border-color:#888888}sd-select-option-group .sd-select__option-group__label-wrapper{display:flex;width:100%;column-gap:8px;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}sd-select-option-group .sd-select__option-group__label-wrapper sd-checkbox{flex-shrink:0}sd-select-option-group .sd-select__option-group__label-wrapper .sd-select__option-group-label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}sd-select-option-group .sd-select__option-group__label-wrapper .sd-select__option-group__count-indicator{width:fit-content;flex-shrink:0;font-size:12px;font-weight:500;color:#888888}sd-select-option-group .sd-select__option-group--focused{background-color:#e6f1ff}sd-select-option-group .sd-select__option-group--selected.sd-select__option-group--item:not(:hover):not(.sd-select__option-group--use-checkbox),sd-select-option-group .sd-select__option-group--focused.sd-select__option-group--item:not(:hover):not(.sd-select__option-group--use-checkbox){color:#0075ff;font-weight:700}sd-select-option-group .sd-select__option-group--disabled{color:#aaaaaa;cursor:not-allowed}sd-select-option-group .sd-select__option-group:hover:not(.sd-select__option-group--disabled){background-color:#0075ff;color:white}sd-select-option-group .sd-select__option-group:hover.sd-select__option-group--selected:not(.sd-select__option-group--group):not(.sd-select__option-group--subgroup) sd-checkbox .sd-checkbox__bg{border-color:white !important}`;
|
|
3767
|
+
|
|
3768
|
+
const SdSelectOptionGroup = class {
|
|
3769
|
+
constructor(hostRef) {
|
|
3770
|
+
index.registerInstance(this, hostRef);
|
|
3771
|
+
this.optionClick = index.createEvent(this, "optionClick");
|
|
3772
|
+
}
|
|
3773
|
+
get el() { return index.getElement(this); }
|
|
3774
|
+
option;
|
|
3775
|
+
index;
|
|
3776
|
+
isSelected = false;
|
|
3777
|
+
isFocused = false;
|
|
3778
|
+
optionStyle;
|
|
3779
|
+
disabled = false;
|
|
3780
|
+
useCheckbox = false;
|
|
3781
|
+
useIndicator = true;
|
|
3782
|
+
countInfo = {
|
|
3783
|
+
selectedCount: 0,
|
|
3784
|
+
totalCount: 0,
|
|
3785
|
+
};
|
|
3786
|
+
isHovered = false;
|
|
3787
|
+
async isDisabled() {
|
|
3788
|
+
return !!this.option.disabled || this.option.type === 'group' || this.option.type === 'subgroup';
|
|
3789
|
+
}
|
|
3790
|
+
optionClick;
|
|
3791
|
+
handleClick = (option, isSelected, event) => {
|
|
3792
|
+
event.stopPropagation();
|
|
3793
|
+
if (option.type === 'group' || option.type === 'subgroup') {
|
|
3794
|
+
this.optionClick.emit({
|
|
3795
|
+
option: this.option,
|
|
3796
|
+
isSelected,
|
|
3797
|
+
index: this.index,
|
|
3798
|
+
event,
|
|
3799
|
+
});
|
|
3800
|
+
return;
|
|
3801
|
+
}
|
|
3802
|
+
if (!this.option.disabled && !this.disabled) {
|
|
3803
|
+
this.optionClick.emit({
|
|
3804
|
+
option: this.option,
|
|
3805
|
+
isSelected,
|
|
3806
|
+
index: this.index,
|
|
3807
|
+
event,
|
|
3808
|
+
});
|
|
3809
|
+
}
|
|
3810
|
+
};
|
|
3811
|
+
render() {
|
|
3812
|
+
return (index.h("div", { key: 'd00236bc84a194509b25efa21ef1c53a25923a60', class: {
|
|
3813
|
+
'sd-select__option-group': true,
|
|
3814
|
+
'sd-select__option-group--selected': !!this.isSelected,
|
|
3815
|
+
'sd-select__option-group--disabled': !!this.option.disabled,
|
|
3816
|
+
'sd-select__option-group--focused': this.isFocused,
|
|
3817
|
+
'sd-select__option-group--use-checkbox': this.useCheckbox,
|
|
3818
|
+
'sd-select__option-group--group': this.option.type === 'group',
|
|
3819
|
+
'sd-select__option-group--subgroup': this.option.type === 'subgroup',
|
|
3820
|
+
'sd-select__option-group--item': this.option.type === 'item',
|
|
3821
|
+
}, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: event => this.handleClick(this.option, this.isSelected, event) }, index.h("div", { key: 'c635bb5ce073594dd05926529472db1665d5f86d', class: "sd-select__option-group__label-wrapper" }, this.useCheckbox && (index.h("sd-checkbox", { key: '984289c89fe90f0cd40a3d022a29b9b974321db0', checked: this.isSelected, disabled: this.option.disabled, onClick: e => {
|
|
3822
|
+
e.preventDefault();
|
|
3823
|
+
this.handleClick(this.option, this.isSelected, e);
|
|
3824
|
+
} })), index.h("span", { key: 'b01a4ad8c906d6990dcf5c8eb1affa17f3605452', class: "sd-select__option-group-label" }, this.option.label), this.useIndicator && this.option.type !== 'item' && (index.h("span", { key: '9103fa0bfe93caf8b5c3dea936334cd22727dff0', class: "sd-select__option-group__count-indicator" }, `(${this.countInfo?.selectedCount}/${this.countInfo?.totalCount})`)))));
|
|
3825
|
+
}
|
|
3826
|
+
};
|
|
3827
|
+
SdSelectOptionGroup.style = sdSelectOptionGroupCss();
|
|
3828
|
+
|
|
3829
|
+
const sdTableBackupCss = () => `.sd-table__wrapper .sd-table__container .sd-table__middle{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar{opacity:0;background:#e5e5e5}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar:horizontal{height:8px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar:vertical{width:8px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar-thumb{height:80px;background-color:#cccccc;border-radius:4px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar-track{background-color:transparent}.sd-table__wrapper{height:var(--table-height, auto);width:var(--table-width, 100%);color:#222222}.sd-table__wrapper .sd-table__container{width:100%;height:var(--table-container-height, auto);position:relative;border:1px solid #e1e1e1;border-radius:8px;font-size:12px;overflow:hidden;background:#ffffff}.sd-table__wrapper .sd-table__container .sd-table__middle{overflow:auto;will-change:scroll-position;min-height:var(--table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle--scrollable{height:var(--table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle--loading{overflow:hidden !important;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle--loading__spinner{position:absolute;top:0;left:0;width:100%;height:var(--table-container-height, 100%);min-height:var(--table-container-height, 100%);background:rgba(255, 255, 255, 0.6);z-index:200;display:flex;align-items:center;justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table{background-color:white;display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll{position:relative;height:var(--total-virtual-height, --table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr:not([aria-hidden=true]){width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]{padding:0;border:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]:not(.sd-table__virtual-row-spacer) td{display:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected{width:52px !important;max-width:52px !important;min-width:52px !important;padding:0 10px 0 24px;text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-header thead{position:sticky;top:0;z-index:120}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-right{position:sticky;background-color:#f5faff;z-index:110 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-right{position:sticky;background-color:white;z-index:100 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-left{left:var(--sticky-left-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-right{right:var(--sticky-right-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-cell{position:sticky;z-index:102;background-color:#f5faff}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-cell{position:sticky;z-index:101;background-color:white}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left td.sticky-left-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left td.sticky-left-edge:after{content:"";position:absolute;top:0;left:100%;right:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset 12px 0 20px -25px;opacity:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right td.sticky-right-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right td.sticky-right-edge:after{content:"";position:absolute;top:0;left:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset -12px 0 20px -25px;opacity:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead{opacity:0.4}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead tr th.sd-th{border-bottom:1px solid rgba(225, 225, 225, 0.4) !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-td,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-th,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table .sd-th__content--label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead{height:36px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr{width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th{background:#f5faff;height:36px;padding:0 16px;font-weight:500;vertical-align:middle;border-bottom:1px solid #e1e1e1;-webkit-user-select:none;user-select:none;position:relative}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content{display:flex;flex-flow:row nowrap;align-items:center;gap:4px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--left{justify-content:flex-start}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--center{justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--right{justify-content:flex-end}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__resizer{position:absolute;top:50%;right:0;transform:translateY(-50%);width:4px;height:16px;cursor:col-resize;z-index:3;border-left:1px solid #cccccc;border-right:1px solid #cccccc}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td{height:44px;padding:0 16px;border-bottom:1px solid #e1e1e1;background:white;vertical-align:middle}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--left{text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--center{text-align:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--right{text-align:right}.sd-table__wrapper .sd-table__container .sd-table__bottom{background:white;text-align:center}.sd-table__wrapper .sd-table__container .sd-table__bottom .sd-table__no-data{padding-top:15%;color:#888888}.sd-table__wrapper .sd-table__pagination{position:relative;background:#f9f9f9;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid #e1e1e1;border-top:none;border-radius:8px}.sd-table__wrapper .sd-table__pagination sd-select{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.sd-table__wrapper .sd-table__virtual-spacer,.sd-table__wrapper .sd-table__virtual-row-spacer{padding:0 !important}.sd-table__wrapper .sd-table__virtual-spacer td,.sd-table__wrapper .sd-table__virtual-row-spacer td{padding:0 !important;border:none}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton{width:100%;height:100%;background-image:repeating-linear-gradient(0deg, rgba(246, 246, 246, 0.3) 0px, rgba(225, 225, 225, 0.5) calc(var(--row-height, 44px) / 2), rgba(246, 246, 246, 0.3) var(--row-height, 44px));background-size:100% 200%;animation:skeleton-loading 1.5s ease-in-out infinite;position:relative}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton::before,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--row-height, 44px) - 1px), #e1e1e1 calc(var(--row-height, 44px) - 1px), #e1e1e1 var(--row-height, 44px));pointer-events:none}.sd-table__wrapper .sd-table__skeleton-cell{width:100%;height:20px;background:linear-gradient(90deg, rgba(246, 246, 246, 0.3) 0%, rgba(225, 225, 225, 0.5) 50%, rgba(246, 246, 246, 0.3) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px}@keyframes skeleton-loading{0%{background-position:0% 0%}50%{background-position:100% 100%}100%{background-position:0% 0%}}`;
|
|
2944
3830
|
|
|
2945
3831
|
const SdTable = class {
|
|
2946
3832
|
constructor(hostRef) {
|
|
@@ -3583,16 +4469,16 @@ const SdTable = class {
|
|
|
3583
4469
|
}, "aria-hidden": "true" }, index.h("div", { class: "sd-table__skeleton-cell" })));
|
|
3584
4470
|
}
|
|
3585
4471
|
render() {
|
|
3586
|
-
return (index.h(index.Host, { key: '
|
|
4472
|
+
return (index.h(index.Host, { key: '5d04a8b7cf9dbc6cfb9dc4d6497f4eb6190caca1' }, index.h("div", { key: 'da26d320dbd4542b226434e355c8ee947b4e1cf6', class: "sd-table__wrapper", style: {
|
|
3587
4473
|
'--table-width': this.width,
|
|
3588
4474
|
'--table-height': this.height,
|
|
3589
|
-
} }, index.h("div", { key: '
|
|
4475
|
+
} }, index.h("div", { key: 'f3fe16bd185e08f2cbba94199bb9d55dc854b085', class: "sd-table__container", style: {
|
|
3590
4476
|
'--table-container-height': `calc(${this.height} - ${this.pagination && this.innerRows.length > 0 ? 48 : 0}px)`,
|
|
3591
|
-
} }, index.h("div", { key: '
|
|
4477
|
+
} }, index.h("div", { key: '5e0976df3206aca9f33e54b85bda479110397621', class: {
|
|
3592
4478
|
'sd-table__middle': true,
|
|
3593
4479
|
'sd-table__middle--scrollable': this.paginatedRows.length > 0,
|
|
3594
4480
|
'sd-table__middle--loading': this.isLoading,
|
|
3595
|
-
} }, this.isLoading && (index.h("div", { key: '
|
|
4481
|
+
} }, this.isLoading && (index.h("div", { key: 'fa934df1cf18e69b4054b6795ac9973755823cf6', class: "sd-table__middle--loading__spinner" }, index.h("sd-loading-spinner", { key: 'd21458340e4904ce938a86321732dfb04969ef7c' }))), index.h("table", { key: '0bddebe63faffebdd3950f21e5a66e4f8d8d56e9', part: "table", class: this.sdTableClasses }, this.renderHead(), this.renderBody())), index.h("div", { key: '12a66491f58bcabcfdd861a9ca2d0dc32d0968df', class: "sd-table__bottom" }, !this.paginatedRows.length && (index.h("div", { key: '2058dace66a36697ca7018d6f83f3a00582fe9a1', class: "sd-table__no-data" }, index.h("slot", { key: 'c99d5416ce3ccb2c1512da61b60391d5b63c85b1', name: "no-data" }, this.noDataLabel))))), this.pagination && this.innerRows.length > 0 && (index.h("div", { key: 'bd8f8b4351a8195489bc1d585585f321e26c8c7b', class: "sd-table__pagination" }, index.h("sd-pagination", { key: '443622f1f52136e7d4212d4073e23cd2b6c05c99', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onPageChange: (e) => this.changePage(e.detail) }), this.useRowsPerPageSelect && (index.h("sd-select", { key: 'cdcce50397d18466c3c010625e5dfe369852da73', value: this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", onSdChange: (e) => this.changeRowsPerPage(e.detail.value) })))))));
|
|
3596
4482
|
}
|
|
3597
4483
|
static get watchers() { return {
|
|
3598
4484
|
"columns": ["handleColumnsChange"],
|
|
@@ -3602,9 +4488,176 @@ const SdTable = class {
|
|
|
3602
4488
|
"pagination": ["handlePaginationChange"]
|
|
3603
4489
|
}; }
|
|
3604
4490
|
};
|
|
3605
|
-
SdTable.style = sdTableBackupCss;
|
|
4491
|
+
SdTable.style = sdTableBackupCss();
|
|
3606
4492
|
|
|
3607
|
-
const
|
|
4493
|
+
const sdTabsCss = () => `sd-tabs{display:inline-block}sd-tabs .sd-tabs{display:flex;flex-direction:row;gap:4px;border-bottom:1px solid #0075ff}sd-tabs .sd-tabs__tab{display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;border:1px solid #cccccc;border-bottom:none;border-radius:4px 4px 0 0;background-color:#f6f6f6;color:#888888;font-weight:400;transition:all 0.2s ease;position:relative;user-select:none}sd-tabs .sd-tabs__tab::before{content:"";position:absolute;inset:0;opacity:0;transition:all 0.3s}sd-tabs .sd-tabs__tab--selected{border-color:#0075ff;color:#0075ff;background-color:white;font-weight:700}sd-tabs .sd-tabs__tab--selected:hover::before{background-color:#0075ff;opacity:0.15}sd-tabs .sd-tabs__tab--unselected:hover::before{background-color:#888888;opacity:0.15}sd-tabs .sd-tabs__label{user-select:none}sd-tabs .sd-tabs--md .sd-tabs__tab{padding:12px 32px;font-size:12px;line-height:20px}sd-tabs .sd-tabs--sm .sd-tabs__tab{padding:8px 20px;font-size:12px;line-height:16px}sd-tabs .sd-tabs--sub{gap:32px;border-bottom:none}sd-tabs .sd-tabs--sub .sd-tabs__tab{border:none;border-radius:0;background-color:transparent;color:#222222;font-weight:400;padding:0 0 2px 0}sd-tabs .sd-tabs--sub .sd-tabs__tab::before{display:none}sd-tabs .sd-tabs--sub .sd-tabs__tab--selected{color:#0075ff;font-weight:700;border-bottom:1px solid #0075ff;background-color:transparent}sd-tabs .sd-tabs--sub .sd-tabs__tab--selected:hover::before,sd-tabs .sd-tabs--sub .sd-tabs__tab--unselected:hover::before{display:none}`;
|
|
4494
|
+
|
|
4495
|
+
const SdTabs = class {
|
|
4496
|
+
constructor(hostRef) {
|
|
4497
|
+
index.registerInstance(this, hostRef);
|
|
4498
|
+
this.sdChange = index.createEvent(this, "sdChange");
|
|
4499
|
+
}
|
|
4500
|
+
value;
|
|
4501
|
+
tabs = [];
|
|
4502
|
+
size = 'md';
|
|
4503
|
+
isSub = false;
|
|
4504
|
+
selectedValue;
|
|
4505
|
+
sdChange;
|
|
4506
|
+
componentWillLoad() {
|
|
4507
|
+
if (this.value !== undefined && this.value !== null) {
|
|
4508
|
+
this.selectedValue = this.value;
|
|
4509
|
+
}
|
|
4510
|
+
}
|
|
4511
|
+
valueChanged(newValue) {
|
|
4512
|
+
this.selectedValue = newValue;
|
|
4513
|
+
}
|
|
4514
|
+
handleTabClick = (tabValue) => {
|
|
4515
|
+
this.selectedValue = tabValue;
|
|
4516
|
+
this.value = tabValue;
|
|
4517
|
+
this.sdChange.emit(tabValue);
|
|
4518
|
+
};
|
|
4519
|
+
isTabSelected(tab) {
|
|
4520
|
+
return this.selectedValue === tab.value;
|
|
4521
|
+
}
|
|
4522
|
+
getTabClasses(tab) {
|
|
4523
|
+
const classes = [
|
|
4524
|
+
'sd-tabs__tab',
|
|
4525
|
+
this.isTabSelected(tab) ? 'sd-tabs__tab--selected' : 'sd-tabs__tab--unselected',
|
|
4526
|
+
];
|
|
4527
|
+
return classes.join(' ');
|
|
4528
|
+
}
|
|
4529
|
+
getContainerClasses() {
|
|
4530
|
+
const classes = ['sd-tabs', `sd-tabs--${this.size}`];
|
|
4531
|
+
if (this.isSub) {
|
|
4532
|
+
classes.push('sd-tabs--sub');
|
|
4533
|
+
}
|
|
4534
|
+
return classes.join(' ');
|
|
4535
|
+
}
|
|
4536
|
+
getBadgeColors(tab) {
|
|
4537
|
+
if (this.isTabSelected(tab)) {
|
|
4538
|
+
return { bgColor: '#E6F1FF', textColor: '#0075FF' };
|
|
4539
|
+
}
|
|
4540
|
+
return { bgColor: '#E5E5E5', textColor: '#737373' };
|
|
4541
|
+
}
|
|
4542
|
+
render() {
|
|
4543
|
+
return (index.h("div", { key: '749c892c45eccc71e2faad842be4dfd311aa2eed', class: this.getContainerClasses(), role: "tablist" }, this.tabs.map((tab, index$1) => {
|
|
4544
|
+
const isSelected = this.isTabSelected(tab);
|
|
4545
|
+
const badgeColors = this.getBadgeColors(tab);
|
|
4546
|
+
return (index.h("div", { key: `tab-${index$1}`, class: this.getTabClasses(tab), role: "tab", "aria-selected": isSelected.toString(), "aria-label": tab.label || 'tab', onClick: () => this.handleTabClick(tab.value) }, index.h("span", { class: "sd-tabs__label" }, tab.label), tab.badge && (index.h("sd-tag", { size: this.size, label: tab.badge.toString(), bgColor: badgeColors.bgColor, textColor: badgeColors.textColor, rounded: true }))));
|
|
4547
|
+
})));
|
|
4548
|
+
}
|
|
4549
|
+
static get watchers() { return {
|
|
4550
|
+
"value": ["valueChanged"]
|
|
4551
|
+
}; }
|
|
4552
|
+
};
|
|
4553
|
+
SdTabs.style = sdTabsCss();
|
|
4554
|
+
|
|
4555
|
+
const sdTagCss = () => `:host{display:inline-block}:host([full-width]){display:block}.sd-tag{display:inline-flex;width:100%;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:1px solid transparent;border-radius:4px;transition:all 0.2s ease-in-out;position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box}.sd-tag__content{display:inline-block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sd-tag--custom-color{background:var(--tag-bg-color);color:var(--tag-text-color)}.sd-tag--sm{padding:0 6px;font-size:11px;line-height:18px;height:20px;border-radius:4px}.sd-tag--md{padding:0 8px;font-size:12px;font-weight:700;line-height:20px;height:24px;border-radius:4px}.sd-tag--lg{padding:0 10px;font-size:14px;font-weight:700;line-height:24px;min-height:28px;border-radius:5px}.sd-tag--rounded.sd-tag--sm{border-radius:20px}.sd-tag--rounded.sd-tag--md{border-radius:20px}.sd-tag--rounded.sd-tag--lg{border-radius:15px}`;
|
|
4556
|
+
|
|
4557
|
+
const TAG_COLORS = {
|
|
4558
|
+
grey: 'bg-grey_20 text-grey_70',
|
|
4559
|
+
red: 'bg-red_15 text-red_70',
|
|
4560
|
+
orange: 'bg-orange_10 text-orange_65',
|
|
4561
|
+
yellow: 'bg-yellow_10 text-yellow_60',
|
|
4562
|
+
green: 'bg-green_15 text-green_70',
|
|
4563
|
+
blue: 'bg-brilliantblue_20 text-brilliantblue_75',
|
|
4564
|
+
darkblue: 'bg-oceanblue_15 text-oceanblue_70',
|
|
4565
|
+
indigo: 'bg-brilliantblue_10 text-brilliantblue_85',
|
|
4566
|
+
};
|
|
4567
|
+
const SdTag = class {
|
|
4568
|
+
constructor(hostRef) {
|
|
4569
|
+
index.registerInstance(this, hostRef);
|
|
4570
|
+
}
|
|
4571
|
+
get el() { return index.getElement(this); }
|
|
4572
|
+
size = 'md';
|
|
4573
|
+
color = 'grey';
|
|
4574
|
+
rounded = false;
|
|
4575
|
+
label = '';
|
|
4576
|
+
bgColor;
|
|
4577
|
+
textColor;
|
|
4578
|
+
getTagClasses() {
|
|
4579
|
+
const classes = ['sd-tag', `sd-tag--${this.size}`];
|
|
4580
|
+
if (this.rounded) {
|
|
4581
|
+
classes.push('sd-tag--rounded');
|
|
4582
|
+
}
|
|
4583
|
+
if (this.color && !this.bgColor && !this.textColor) {
|
|
4584
|
+
classes.push(TAG_COLORS[this.color]);
|
|
4585
|
+
}
|
|
4586
|
+
if (this.bgColor || this.textColor) {
|
|
4587
|
+
classes.push('sd-tag--custom-color');
|
|
4588
|
+
}
|
|
4589
|
+
return classes.join(' ');
|
|
4590
|
+
}
|
|
4591
|
+
renderContent() {
|
|
4592
|
+
return [
|
|
4593
|
+
index.h("span", { class: "sd-tag__content" }, index.h("slot", null, this.label)),
|
|
4594
|
+
];
|
|
4595
|
+
}
|
|
4596
|
+
render() {
|
|
4597
|
+
const tagClasses = this.getTagClasses();
|
|
4598
|
+
return (index.h("span", { key: '6f3353059d6a1516dd11e23f6347f52f514020e4', class: tagClasses, style: {
|
|
4599
|
+
'--tag-bg-color': this.bgColor,
|
|
4600
|
+
'--tag-text-color': this.textColor,
|
|
4601
|
+
}, "aria-label": this.label || 'tag' }, this.renderContent()));
|
|
4602
|
+
}
|
|
4603
|
+
};
|
|
4604
|
+
SdTag.style = sdTagCss();
|
|
4605
|
+
|
|
4606
|
+
const sdToastMessageCss = () => `.sd-toast-message.sc-sd-toast-message{display:flex;width:fit-content;align-items:center;gap:16px;padding:12px 24px;border-radius:4px;background-color:var(--sd-toast-bg);color:var(--sd-toast-text);transition:opacity 0.2s ease, visibility 0.2s ease;box-shadow:2px 2px 8px 2px rgba(0, 0, 0, 0.2)}.sd-toast-message--hidden.sc-sd-toast-message{opacity:0;visibility:hidden;pointer-events:none}.sd-toast-message__icon.sc-sd-toast-message{display:flex;align-items:center;flex-shrink:0}.sd-toast-message__content.sc-sd-toast-message{display:flex;flex:1}.sd-toast-message__message.sc-sd-toast-message{font-size:14px;line-height:20px;font-weight:400}.sd-toast-message__link.sc-sd-toast-message{font-size:14px;line-height:20px;color:var(--sd-toast-text);text-decoration:underline;cursor:pointer;transition:opacity 0.2s ease;margin-left:4px}.sd-toast-message__link.sc-sd-toast-message:hover{opacity:0.8}.sd-toast-message__button.sc-sd-toast-message{flex-shrink:0}.sd-toast-message__button.sc-sd-toast-message button.sc-sd-toast-message{color:var(--button-text-color, inherit) !important}.sd-toast-message__close.sc-sd-toast-message{display:flex;align-items:center;justify-content:center;padding:4px;background-color:transparent;border:none;cursor:pointer;transition:opacity 0.2s ease;flex-shrink:0}.sd-toast-message__close.sc-sd-toast-message:hover{opacity:0.7}.sd-toast-message__close.sc-sd-toast-message:active{opacity:0.5}`;
|
|
4607
|
+
|
|
4608
|
+
const SdToastMessage = class {
|
|
4609
|
+
constructor(hostRef) {
|
|
4610
|
+
index.registerInstance(this, hostRef);
|
|
4611
|
+
this.sdClose = index.createEvent(this, "sdClose");
|
|
4612
|
+
this.sdButtonClick = index.createEvent(this, "sdButtonClick");
|
|
4613
|
+
}
|
|
4614
|
+
icon;
|
|
4615
|
+
message;
|
|
4616
|
+
link;
|
|
4617
|
+
linkLabel;
|
|
4618
|
+
buttonLabel;
|
|
4619
|
+
close = false;
|
|
4620
|
+
type = 'basicDark';
|
|
4621
|
+
sdClose;
|
|
4622
|
+
sdButtonClick;
|
|
4623
|
+
isVisible = true;
|
|
4624
|
+
static COLOR_OF_TYPE = {
|
|
4625
|
+
basicLight: { background: 'white', text: 'grey_95' },
|
|
4626
|
+
basicDark: { background: 'steelblue_90', text: 'white' },
|
|
4627
|
+
error: { background: 'red_70', text: 'white' },
|
|
4628
|
+
caution: { background: 'yellow_45', text: 'grey_90' },
|
|
4629
|
+
complete: { background: 'green_75', text: 'white' },
|
|
4630
|
+
progress: { background: 'brilliantblue_80', text: 'white' },
|
|
4631
|
+
};
|
|
4632
|
+
handleClose = () => {
|
|
4633
|
+
this.isVisible = false;
|
|
4634
|
+
this.sdClose.emit();
|
|
4635
|
+
};
|
|
4636
|
+
handleButtonClick = () => {
|
|
4637
|
+
this.sdButtonClick.emit();
|
|
4638
|
+
};
|
|
4639
|
+
getContainerClasses() {
|
|
4640
|
+
const classes = ['sd-toast-message', `sd-toast-message--${this.type}`];
|
|
4641
|
+
if (!this.isVisible) {
|
|
4642
|
+
classes.push('sd-toast-message--hidden');
|
|
4643
|
+
}
|
|
4644
|
+
return classes.join(' ');
|
|
4645
|
+
}
|
|
4646
|
+
render() {
|
|
4647
|
+
const colorTokens = SdToastMessage.COLOR_OF_TYPE[this.type];
|
|
4648
|
+
const colors = {
|
|
4649
|
+
background: resolveColor.resolveColor(colorTokens.background),
|
|
4650
|
+
text: resolveColor.resolveColor(colorTokens.text),
|
|
4651
|
+
};
|
|
4652
|
+
return (index.h(index.Host, { key: '4d342822195d44b49e5976e8d5e66fc7a58301b9', style: {
|
|
4653
|
+
'--sd-toast-bg': colors.background,
|
|
4654
|
+
'--sd-toast-text': colors.text,
|
|
4655
|
+
} }, index.h("div", { key: '2b33303cc0fc474d9c58a83a925a43b59f577125', class: this.getContainerClasses(), role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.icon && (index.h("div", { key: 'a7b7c49a4a15c76f0633520046128ce937e6410d', class: "sd-toast-message__icon" }, index.h("sd-icon", { key: '7c61a7142e8e442936c9b2736cbcf8ebf8521087', name: this.icon, size: 16, color: colors.text }))), index.h("div", { key: 'd0606186e02a44ba81ba3924baa0bdd8b34984f1', class: "sd-toast-message__content" }, index.h("span", { key: '52e689c1e1d6a7170381a46f8c9370105386aac7', class: "sd-toast-message__message" }, this.message)), this.link && (index.h("a", { key: '0818b9ffe71bd2cbe9fc00bfab9f8a6591f03cbd', href: this.link, class: "sd-toast-message__link", target: "_blank", rel: "noopener noreferrer" }, this.linkLabel || this.link)), this.buttonLabel && (index.h("sd-button", { key: '4d4d7b15137574db44b64e3dc62010fe8ccdf530', class: `sd-toast-message__button ${this.type === 'basicLight' ? 'text-white' : ''}`, label: this.buttonLabel, variant: "primary", color: this.type === 'basicLight' ? 'oceanblue_75' : 'white', size: "sm", onSdClick: this.handleButtonClick, style: this.type !== 'basicLight' ? { '--button-text-color': resolveColor.resolveColor('grey_95') } : {} })), this.close && (index.h("button", { key: '991ad8fe130c370f24ce23cf6d98a9ac797f7367', type: "button", class: "sd-toast-message__close", onClick: this.handleClose, "aria-label": "Close", title: "Close" }, index.h("sd-icon", { key: 'd71dee73974143e5b6eb92f4135d40ee1df178fb', name: "close", size: 12, color: colors.text }))))));
|
|
4656
|
+
}
|
|
4657
|
+
};
|
|
4658
|
+
SdToastMessage.style = sdToastMessageCss();
|
|
4659
|
+
|
|
4660
|
+
const sdToggleCss = () => `sd-toggle{display:inline-block;height:20px;line-height:0}sd-toggle .sd-toggle{cursor:pointer;display:inline-flex;align-items:center;gap:8px;height:20px}sd-toggle .sd-toggle>input{display:none}sd-toggle .sd-toggle__label{font-size:12px;color:#333333;line-height:20px}sd-toggle .sd-toggle__track{width:36px;height:20px;border-radius:12px;background:#cccccc;position:relative;transition:background-color 0.2s ease}sd-toggle .sd-toggle__thumb{width:16px;height:16px;border-radius:50%;background:white;position:absolute;top:2px;left:2px;transition:transform 0.2s ease}sd-toggle .sd-toggle--checked .sd-toggle__track{background:#0075ff}sd-toggle .sd-toggle--checked .sd-toggle__thumb{transform:translateX(16px)}sd-toggle .sd-toggle--disabled{cursor:not-allowed}sd-toggle .sd-toggle--disabled.sd-toggle--checked .sd-toggle__track{background:#bbdaff}sd-toggle .sd-toggle--disabled.sd-toggle--unchecked .sd-toggle__track{background:#eeeeee}sd-toggle .sd-toggle:hover:not(.sd-toggle--disabled).sd-toggle--checked .sd-toggle__track{background:#005cc9}sd-toggle .sd-toggle:hover:not(.sd-toggle--disabled).sd-toggle--unchecked .sd-toggle__track{background:#bbbbbb}`;
|
|
3608
4661
|
|
|
3609
4662
|
const SdToggle = class {
|
|
3610
4663
|
constructor(hostRef) {
|
|
@@ -3640,12 +4693,56 @@ const SdToggle = class {
|
|
|
3640
4693
|
this.sdChange.emit(newValue);
|
|
3641
4694
|
};
|
|
3642
4695
|
render() {
|
|
3643
|
-
return (index.h("label", { key: '
|
|
4696
|
+
return (index.h("label", { key: 'dda95f842f686a3f595db6ecb651551f717cab18', "aria-checked": this.isChecked.toString(), "aria-disabled": this.disabled.toString(), role: "switch", "aria-label": this.label || 'toggle', class: this.toggleClasses }, index.h("input", { key: 'a281a6572b7fca32242ba08ad45984445bd1a009', type: "checkbox", checked: this.isChecked, disabled: this.disabled, onInput: this.handleChange }), this.label && index.h("span", { key: 'dfae7796e9e421e7d6ebc6e6693e6266b2ff87cd', class: "sd-toggle__label" }, this.label), index.h("div", { key: 'e4343307f2df5f5c68509a3e9576a811bd9192ff', class: "sd-toggle__track" }, index.h("div", { key: 'be214081e5ccc21ad306e52ce186ba4dc56c6c3b', class: "sd-toggle__thumb" }))));
|
|
4697
|
+
}
|
|
4698
|
+
};
|
|
4699
|
+
SdToggle.style = sdToggleCss();
|
|
4700
|
+
|
|
4701
|
+
const sdToggleButtonCss = () => `sd-toggle-button{display:inline-block;line-height:0}.sd-toggle-button{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:4px 12px;gap:6px;border-radius:14px;border:1px solid #888888;background-color:#ffffff;color:#737373;font-size:12px;line-height:20px;font-weight:400;cursor:pointer;transition:border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;white-space:nowrap;user-select:none;box-sizing:border-box}.sd-toggle-button--active{border-color:#0075ff;color:#0075ff}.sd-toggle-button--disabled{background-color:#eeeeee;border-color:#cccccc;color:#888888}.sd-toggle-button--disabled.sd-toggle-button--active{background-color:#eeeeee;border-color:#cccccc;color:#888888}.sd-toggle-button:hover:not(.sd-toggle-button--disabled):not(.sd-toggle-button--active){border-color:#737373}.sd-toggle-button:hover:not(.sd-toggle-button--disabled).sd-toggle-button--active{border-color:#005cc9;color:#005cc9}`;
|
|
4702
|
+
|
|
4703
|
+
const SdToggleButton = class {
|
|
4704
|
+
constructor(hostRef) {
|
|
4705
|
+
index.registerInstance(this, hostRef);
|
|
4706
|
+
this.sdChange = index.createEvent(this, "sdChange");
|
|
4707
|
+
}
|
|
4708
|
+
value = false;
|
|
4709
|
+
label = '';
|
|
4710
|
+
disabled = false;
|
|
4711
|
+
isActive = false;
|
|
4712
|
+
sdChange;
|
|
4713
|
+
componentWillLoad() {
|
|
4714
|
+
this.updateActiveState(this.value);
|
|
4715
|
+
}
|
|
4716
|
+
componentWillRender() {
|
|
4717
|
+
this.updateActiveState(this.value);
|
|
4718
|
+
}
|
|
4719
|
+
updateActiveState(value) {
|
|
4720
|
+
this.isActive = value;
|
|
4721
|
+
}
|
|
4722
|
+
get buttonClasses() {
|
|
4723
|
+
const classes = ['sd-toggle-button'];
|
|
4724
|
+
if (this.isActive) {
|
|
4725
|
+
classes.push('sd-toggle-button--active');
|
|
4726
|
+
}
|
|
4727
|
+
if (this.disabled) {
|
|
4728
|
+
classes.push('sd-toggle-button--disabled');
|
|
4729
|
+
}
|
|
4730
|
+
return classes.join(' ');
|
|
4731
|
+
}
|
|
4732
|
+
handleChange = () => {
|
|
4733
|
+
if (this.disabled)
|
|
4734
|
+
return;
|
|
4735
|
+
const newValue = !this.value;
|
|
4736
|
+
this.value = newValue;
|
|
4737
|
+
this.sdChange.emit(newValue);
|
|
4738
|
+
};
|
|
4739
|
+
render() {
|
|
4740
|
+
return (index.h("label", { key: '4ac2cac1d4b1da4d707f4ce84a03ffc7a8ec7cb8', class: this.buttonClasses, role: "button", "aria-pressed": this.isActive.toString(), "aria-disabled": this.disabled.toString(), "aria-label": this.label || 'toggle button' }, this.label, index.h("input", { key: 'e9a974d34d7b3803b5ed44dc1b2da1199daf5bef', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
|
|
3644
4741
|
}
|
|
3645
4742
|
};
|
|
3646
|
-
|
|
4743
|
+
SdToggleButton.style = sdToggleButtonCss();
|
|
3647
4744
|
|
|
3648
|
-
const sdTooltipCss =
|
|
4745
|
+
const sdTooltipCss = () => `sd-tooltip [slot=content]{display:none}sd-tooltip .sd-tooltip{position:relative;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.sd-tooltip-menu{width:fit-content;padding:8px 16px;border-radius:4px;font-size:12px;position:relative;box-sizing:border-box;display:flex;align-items:start;justify-content:center;gap:12px}.sd-tooltip-menu--with-close{padding-right:12px !important}.sd-tooltip-menu__arrow{position:absolute;display:flex;width:9.6px;height:7.2px}.sd-tooltip-menu__arrow svg{width:100%;height:100%}.sd-tooltip-menu__arrow--top{bottom:-7.2px;left:50%;transform:translateX(-50%)}.sd-tooltip-menu__arrow--bottom{top:-7.2px;left:50%;transform:translateX(-50%) rotate(180deg)}.sd-tooltip-menu__arrow--left{right:-7.2px;top:50%;transform:translateY(-50%) rotate(-90deg)}.sd-tooltip-menu__arrow--right{left:-7.2px;top:50%;transform:translateY(-50%) rotate(90deg)}.sd-tooltip-menu__content{line-height:20px;font-weight:500}.sd-tooltip-menu__content p{margin:0}.sd-tooltip-menu__close-button{padding-top:4px;display:flex}.sd-tooltip-menu__close-button button{padding:0;background:none;border:none;cursor:pointer}`;
|
|
3649
4746
|
|
|
3650
4747
|
const SdTooltip = class {
|
|
3651
4748
|
constructor(hostRef) {
|
|
@@ -3693,23 +4790,23 @@ const SdTooltip = class {
|
|
|
3693
4790
|
: {
|
|
3694
4791
|
onClick: () => (this.showTooltip = !this.showTooltip),
|
|
3695
4792
|
};
|
|
3696
|
-
return (index.h(index.Fragment, { key: '
|
|
4793
|
+
return (index.h(index.Fragment, { key: '55a62a0b80b8c10d8c0d8ced1a34178191b8a688' }, this.label ? (index.h("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-tooltip", ...handleTrigger })) : (index.h("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-tooltip", ...handleTrigger })), this.showTooltip && (index.h("sd-tooltip-portal", { key: '21aaf4460591401ec5eb890d123e3cb381fb76f6', parentRef: this.buttonEl, onSdClose: () => this.handleClose(), placement: this.placement }, index.h("div", { key: 'ee5d301a2fa72f95a0f89242b174f7e21a086a15', class: {
|
|
3697
4794
|
'sd-tooltip-menu': true,
|
|
3698
4795
|
[`sd-tooltip-menu--${this.type}`]: true,
|
|
3699
4796
|
[`sd-tooltip-menu--${this.placement}`]: true,
|
|
3700
4797
|
'sd-tooltip-menu--with-close': this.useClose,
|
|
3701
4798
|
[`bg-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
|
|
3702
4799
|
[`text-${SdTooltip.COLOR_OF_TYPE[this.type].text}`]: true,
|
|
3703
|
-
} }, index.h("i", { key: '
|
|
4800
|
+
} }, index.h("i", { key: '4f7e09f6770fbde0f2e9df81d401ea7cd6739df2', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, index.h(tooltipArrow.TooltipArrow, { key: 'd0856082e623129eb56aaab87e54d1b19f33555a', class: {
|
|
3704
4801
|
[`text-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
|
|
3705
|
-
} })), index.h("div", { key: '
|
|
4802
|
+
} })), index.h("div", { key: '40dc2a7d4254ed0e712f22cf19032e2f5ef846b4', class: "sd-tooltip-menu__content", ref: el => {
|
|
3706
4803
|
if (el && this.slotContent && !el.hasChildNodes()) {
|
|
3707
4804
|
el.appendChild(this.slotContent.cloneNode(true));
|
|
3708
4805
|
}
|
|
3709
|
-
} }, !this.slotContent && index.h("span", { key: '
|
|
4806
|
+
} }, !this.slotContent && index.h("span", { key: 'd897c210bb76de430a89243177f3a436cc684e09' }, this.el.textContent)), this.useClose && (index.h("div", { key: 'ca41d884070a25443833162e2dc50fcb91a6bd2a', class: "sd-tooltip-menu__close-button" }, index.h("button", { key: '75c911fa76787dda3346b4f18d6169304966d49b', type: "button", "aria-label": "Close tooltip", title: "Close tooltip", onClick: () => this.handleClose() }, index.h("sd-icon", { key: '4d737bf6cc2952776016b9bc7f11cf90364cdcdb', name: "close", size: "12", color: "#AAAAAA" })))))))));
|
|
3710
4807
|
}
|
|
3711
4808
|
};
|
|
3712
|
-
SdTooltip.style = sdTooltipCss;
|
|
4809
|
+
SdTooltip.style = sdTooltipCss();
|
|
3713
4810
|
|
|
3714
4811
|
const SdTooltipPortal = class {
|
|
3715
4812
|
constructor(hostRef) {
|
|
@@ -3860,23 +4957,31 @@ const SdTooltipPortal = class {
|
|
|
3860
4957
|
this.sdClose.emit();
|
|
3861
4958
|
}
|
|
3862
4959
|
render() {
|
|
3863
|
-
return index.h("slot", { key: '
|
|
4960
|
+
return index.h("slot", { key: 'c389b848b1dc63a0484f6000ac5443cce752e4ac' });
|
|
3864
4961
|
}
|
|
3865
4962
|
};
|
|
3866
4963
|
|
|
3867
4964
|
exports.sd_button = SdButton;
|
|
3868
4965
|
exports.sd_checkbox = SdCheckbox;
|
|
4966
|
+
exports.sd_file_picker = SdFilePicker;
|
|
3869
4967
|
exports.sd_guide = SdGuide;
|
|
3870
4968
|
exports.sd_icon = SdIcon;
|
|
3871
4969
|
exports.sd_input = SdInput;
|
|
3872
4970
|
exports.sd_loading_spinner = SdLoadingSpinner;
|
|
4971
|
+
exports.sd_number_input = SdNumberInput;
|
|
3873
4972
|
exports.sd_pagination = SdPagination;
|
|
3874
4973
|
exports.sd_portal = SdPortal;
|
|
3875
4974
|
exports.sd_radio_group = SdRadioGroup;
|
|
3876
4975
|
exports.sd_select = SdSelect;
|
|
4976
|
+
exports.sd_select_multiple_group = SdSelectMultipleGroup;
|
|
3877
4977
|
exports.sd_select_option = SdSelectOption;
|
|
4978
|
+
exports.sd_select_option_group = SdSelectOptionGroup;
|
|
3878
4979
|
exports.sd_table_backup = SdTable;
|
|
4980
|
+
exports.sd_tabs = SdTabs;
|
|
4981
|
+
exports.sd_tag = SdTag;
|
|
4982
|
+
exports.sd_toast_message = SdToastMessage;
|
|
3879
4983
|
exports.sd_toggle = SdToggle;
|
|
4984
|
+
exports.sd_toggle_button = SdToggleButton;
|
|
3880
4985
|
exports.sd_tooltip = SdTooltip;
|
|
3881
4986
|
exports.sd_tooltip_portal = SdTooltipPortal;
|
|
3882
|
-
//# sourceMappingURL=sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-radio-group.sd-select.sd-select-option.sd-table-backup.sd-toggle.sd-tooltip.sd-tooltip-portal.entry.cjs.js.map
|
|
4987
|
+
//# sourceMappingURL=sd-button.sd-checkbox.sd-file-picker.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-number-input.sd-pagination.sd-portal.sd-radio-group.sd-select.sd-select-multiple-group.sd-select-option.sd-select-option-group.sd-table-backup.sd-tabs.sd-tag.sd-toast-message.sd-toggle.sd-toggle-button.sd-tooltip.sd-tooltip-portal.entry.cjs.js.map
|