@ui5/webcomponents-compat 0.0.0-037d08c67
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/.env.production +1 -0
- package/.env.testing +4 -0
- package/.npsrc.json +3 -0
- package/CHANGELOG.md +1042 -0
- package/LICENSE.txt +201 -0
- package/README.md +45 -0
- package/cypress.config.js +3 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/Assets-fetch.d.ts +3 -0
- package/dist/Assets-fetch.js +6 -0
- package/dist/Assets-fetch.js.map +1 -0
- package/dist/Assets-node.d.ts +14 -0
- package/dist/Assets-node.js +17 -0
- package/dist/Assets-node.js.map +1 -0
- package/dist/Assets.d.ts +3 -0
- package/dist/Assets.js +6 -0
- package/dist/Assets.js.map +1 -0
- package/dist/Table.d.ts +358 -0
- package/dist/Table.js +923 -0
- package/dist/Table.js.map +1 -0
- package/dist/TableCell.d.ts +38 -0
- package/dist/TableCell.js +81 -0
- package/dist/TableCell.js.map +1 -0
- package/dist/TableCellTemplate.d.ts +2 -0
- package/dist/TableCellTemplate.js +5 -0
- package/dist/TableCellTemplate.js.map +1 -0
- package/dist/TableColumn.d.ts +64 -0
- package/dist/TableColumn.js +102 -0
- package/dist/TableColumn.js.map +1 -0
- package/dist/TableColumnTemplate.d.ts +2 -0
- package/dist/TableColumnTemplate.js +5 -0
- package/dist/TableColumnTemplate.js.map +1 -0
- package/dist/TableGroupRow.d.ts +47 -0
- package/dist/TableGroupRow.js +110 -0
- package/dist/TableGroupRow.js.map +1 -0
- package/dist/TableGroupRowTemplate.d.ts +2 -0
- package/dist/TableGroupRowTemplate.js +5 -0
- package/dist/TableGroupRowTemplate.js.map +1 -0
- package/dist/TableRow.d.ts +127 -0
- package/dist/TableRow.js +384 -0
- package/dist/TableRow.js.map +1 -0
- package/dist/TableRowTemplate.d.ts +2 -0
- package/dist/TableRowTemplate.js +15 -0
- package/dist/TableRowTemplate.js.map +1 -0
- package/dist/TableTemplate.d.ts +2 -0
- package/dist/TableTemplate.js +20 -0
- package/dist/TableTemplate.js.map +1 -0
- package/dist/bundle.common.bootstrap.d.ts +1 -0
- package/dist/bundle.common.bootstrap.js +3 -0
- package/dist/bundle.common.bootstrap.js.map +1 -0
- package/dist/bundle.esm.d.ts +3 -0
- package/dist/bundle.esm.js +19 -0
- package/dist/bundle.esm.js.map +1 -0
- package/dist/bundle.scoped.config.d.ts +1 -0
- package/dist/bundle.scoped.config.js +5 -0
- package/dist/bundle.scoped.config.js.map +1 -0
- package/dist/bundle.scoped.esm.d.ts +3 -0
- package/dist/bundle.scoped.esm.js +5 -0
- package/dist/bundle.scoped.esm.js.map +1 -0
- package/dist/css/themes/GrowingButton.css +1 -0
- package/dist/css/themes/Table.css +1 -0
- package/dist/css/themes/TableCell.css +1 -0
- package/dist/css/themes/TableColumn.css +1 -0
- package/dist/css/themes/TableGroupRow.css +1 -0
- package/dist/css/themes/TableRow.css +1 -0
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +24 -0
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +24 -0
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +24 -0
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +24 -0
- package/dist/css/themes/sap_horizon/parameters-bundle.css +25 -0
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +25 -0
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +24 -0
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +24 -0
- package/dist/custom-elements-internal.json +1038 -0
- package/dist/custom-elements.json +770 -0
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_ca.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_cy.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_hi.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_id.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_kk.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_mk.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_ms.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_sh.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_th.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_vi.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -0
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -0
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -0
- package/dist/generated/i18n/i18n-defaults.d.ts +12 -0
- package/dist/generated/i18n/i18n-defaults.js +12 -0
- package/dist/generated/i18n/i18n-defaults.js.map +1 -0
- package/dist/generated/json-imports/Themes-fetch.d.ts +1 -0
- package/dist/generated/json-imports/Themes-fetch.js +25 -0
- package/dist/generated/json-imports/Themes-fetch.js.map +1 -0
- package/dist/generated/json-imports/Themes-node.d.ts +1 -0
- package/dist/generated/json-imports/Themes-node.js +25 -0
- package/dist/generated/json-imports/Themes-node.js.map +1 -0
- package/dist/generated/json-imports/Themes.d.ts +1 -0
- package/dist/generated/json-imports/Themes.js +25 -0
- package/dist/generated/json-imports/Themes.js.map +1 -0
- package/dist/generated/json-imports/i18n-fetch.d.ts +1 -0
- package/dist/generated/json-imports/i18n-fetch.js +120 -0
- package/dist/generated/json-imports/i18n-fetch.js.map +1 -0
- package/dist/generated/json-imports/i18n-node.d.ts +1 -0
- package/dist/generated/json-imports/i18n-node.js +120 -0
- package/dist/generated/json-imports/i18n-node.js.map +1 -0
- package/dist/generated/json-imports/i18n.d.ts +1 -0
- package/dist/generated/json-imports/i18n.js +120 -0
- package/dist/generated/json-imports/i18n.js.map +1 -0
- package/dist/generated/themes/GrowingButton.css.d.ts +2 -0
- package/dist/generated/themes/GrowingButton.css.js +8 -0
- package/dist/generated/themes/GrowingButton.css.js.map +1 -0
- package/dist/generated/themes/Table.css.d.ts +2 -0
- package/dist/generated/themes/Table.css.js +8 -0
- package/dist/generated/themes/Table.css.js.map +1 -0
- package/dist/generated/themes/TableCell.css.d.ts +2 -0
- package/dist/generated/themes/TableCell.css.js +8 -0
- package/dist/generated/themes/TableCell.css.js.map +1 -0
- package/dist/generated/themes/TableColumn.css.d.ts +2 -0
- package/dist/generated/themes/TableColumn.css.js +8 -0
- package/dist/generated/themes/TableColumn.css.js.map +1 -0
- package/dist/generated/themes/TableGroupRow.css.d.ts +2 -0
- package/dist/generated/themes/TableGroupRow.css.js +8 -0
- package/dist/generated/themes/TableGroupRow.css.js.map +1 -0
- package/dist/generated/themes/TableRow.css.d.ts +2 -0
- package/dist/generated/themes/TableRow.css.js +8 -0
- package/dist/generated/themes/TableRow.css.js.map +1 -0
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +2 -0
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +26 -0
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -0
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +2 -0
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +26 -0
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -0
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +2 -0
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +26 -0
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -0
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +2 -0
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +26 -0
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -0
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +2 -0
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +27 -0
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -0
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +2 -0
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +27 -0
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -0
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +2 -0
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +26 -0
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -0
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +2 -0
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +26 -0
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -0
- package/dist/types/TableColumnPopinDisplay.d.ts +17 -0
- package/dist/types/TableColumnPopinDisplay.js +19 -0
- package/dist/types/TableColumnPopinDisplay.js.map +1 -0
- package/dist/types/TableGrowingMode.d.ts +23 -0
- package/dist/types/TableGrowingMode.js +25 -0
- package/dist/types/TableGrowingMode.js.map +1 -0
- package/dist/types/TableMode.d.ts +22 -0
- package/dist/types/TableMode.js +24 -0
- package/dist/types/TableMode.js.map +1 -0
- package/dist/types/TableRowType.d.ts +17 -0
- package/dist/types/TableRowType.js +19 -0
- package/dist/types/TableRowType.js.map +1 -0
- package/dist/utils/CompatCustomElementsScope.d.ts +5 -0
- package/dist/utils/CompatCustomElementsScope.js +38 -0
- package/dist/utils/CompatCustomElementsScope.js.map +1 -0
- package/dist/vscode.html-custom-data.json +136 -0
- package/dist/web-types.json +354 -0
- package/jsconfig.json +11 -0
- package/package-scripts.cjs +19 -0
- package/package.json +62 -0
- package/src/TableCellTemplate.tsx +13 -0
- package/src/TableColumnTemplate.tsx +13 -0
- package/src/TableGroupRowTemplate.tsx +17 -0
- package/src/TableRowTemplate.tsx +92 -0
- package/src/TableTemplate.tsx +129 -0
- package/src/i18n/messagebundle.properties +32 -0
- package/src/i18n/messagebundle_ar.properties +20 -0
- package/src/i18n/messagebundle_bg.properties +20 -0
- package/src/i18n/messagebundle_ca.properties +20 -0
- package/src/i18n/messagebundle_cnr.properties +20 -0
- package/src/i18n/messagebundle_cs.properties +20 -0
- package/src/i18n/messagebundle_cy.properties +20 -0
- package/src/i18n/messagebundle_da.properties +20 -0
- package/src/i18n/messagebundle_de.properties +20 -0
- package/src/i18n/messagebundle_el.properties +20 -0
- package/src/i18n/messagebundle_en.properties +20 -0
- package/src/i18n/messagebundle_en_GB.properties +20 -0
- package/src/i18n/messagebundle_en_US_sappsd.properties +20 -0
- package/src/i18n/messagebundle_en_US_saprigi.properties +20 -0
- package/src/i18n/messagebundle_en_US_saptrc.properties +20 -0
- package/src/i18n/messagebundle_es.properties +20 -0
- package/src/i18n/messagebundle_es_MX.properties +20 -0
- package/src/i18n/messagebundle_et.properties +20 -0
- package/src/i18n/messagebundle_fi.properties +20 -0
- package/src/i18n/messagebundle_fr.properties +20 -0
- package/src/i18n/messagebundle_fr_CA.properties +20 -0
- package/src/i18n/messagebundle_hi.properties +20 -0
- package/src/i18n/messagebundle_hr.properties +20 -0
- package/src/i18n/messagebundle_hu.properties +20 -0
- package/src/i18n/messagebundle_id.properties +20 -0
- package/src/i18n/messagebundle_it.properties +20 -0
- package/src/i18n/messagebundle_iw.properties +20 -0
- package/src/i18n/messagebundle_ja.properties +20 -0
- package/src/i18n/messagebundle_kk.properties +20 -0
- package/src/i18n/messagebundle_ko.properties +20 -0
- package/src/i18n/messagebundle_lt.properties +20 -0
- package/src/i18n/messagebundle_lv.properties +20 -0
- package/src/i18n/messagebundle_mk.properties +20 -0
- package/src/i18n/messagebundle_ms.properties +20 -0
- package/src/i18n/messagebundle_nl.properties +20 -0
- package/src/i18n/messagebundle_no.properties +20 -0
- package/src/i18n/messagebundle_pl.properties +20 -0
- package/src/i18n/messagebundle_pt.properties +20 -0
- package/src/i18n/messagebundle_pt_PT.properties +20 -0
- package/src/i18n/messagebundle_ro.properties +20 -0
- package/src/i18n/messagebundle_ru.properties +20 -0
- package/src/i18n/messagebundle_sh.properties +20 -0
- package/src/i18n/messagebundle_sk.properties +20 -0
- package/src/i18n/messagebundle_sl.properties +20 -0
- package/src/i18n/messagebundle_sr.properties +20 -0
- package/src/i18n/messagebundle_sv.properties +20 -0
- package/src/i18n/messagebundle_th.properties +20 -0
- package/src/i18n/messagebundle_tr.properties +20 -0
- package/src/i18n/messagebundle_uk.properties +20 -0
- package/src/i18n/messagebundle_vi.properties +20 -0
- package/src/i18n/messagebundle_zh_CN.properties +20 -0
- package/src/i18n/messagebundle_zh_TW.properties +20 -0
- package/src/themes/GrowingButton.css +68 -0
- package/src/themes/Table.css +99 -0
- package/src/themes/TableCell.css +27 -0
- package/src/themes/TableColumn.css +25 -0
- package/src/themes/TableGroupRow.css +32 -0
- package/src/themes/TableRow.css +165 -0
- package/src/themes/base/GrowingButton-parameters.css +6 -0
- package/src/themes/base/Table-parameters.css +11 -0
- package/src/themes/base/TableColumn-parameters.css +3 -0
- package/src/themes/base/TableGroupRow-parameters.css +4 -0
- package/src/themes/base/TableRow-parameters.css +4 -0
- package/src/themes/base/sizes-parameters.css +21 -0
- package/src/themes/sap_fiori_3/parameters-bundle.css +6 -0
- package/src/themes/sap_fiori_3_dark/parameters-bundle.css +6 -0
- package/src/themes/sap_fiori_3_hcb/GrowingButton-parameters.css +8 -0
- package/src/themes/sap_fiori_3_hcb/Table-parameters.css +5 -0
- package/src/themes/sap_fiori_3_hcb/TableRow-parameters.css +5 -0
- package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +6 -0
- package/src/themes/sap_fiori_3_hcw/GrowingButton-parameters.css +8 -0
- package/src/themes/sap_fiori_3_hcw/Table-parameters.css +5 -0
- package/src/themes/sap_fiori_3_hcw/TableRow-parameters.css +5 -0
- package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +6 -0
- package/src/themes/sap_horizon/GrowingButton-parameters.css +6 -0
- package/src/themes/sap_horizon/Table-parameters.css +8 -0
- package/src/themes/sap_horizon/TableGroupRow-parameters.css +6 -0
- package/src/themes/sap_horizon/TableRow-parameters.css +5 -0
- package/src/themes/sap_horizon/parameters-bundle.css +7 -0
- package/src/themes/sap_horizon_dark/GrowingButton-parameters.css +6 -0
- package/src/themes/sap_horizon_dark/Table-parameters.css +8 -0
- package/src/themes/sap_horizon_dark/TableGroupRow-parameters.css +6 -0
- package/src/themes/sap_horizon_dark/TableRow-parameters.css +5 -0
- package/src/themes/sap_horizon_dark/parameters-bundle.css +7 -0
- package/src/themes/sap_horizon_hcb/GrowingButton-parameters.css +8 -0
- package/src/themes/sap_horizon_hcb/Table-parameters.css +9 -0
- package/src/themes/sap_horizon_hcb/TableGroupRow-parameters.css +6 -0
- package/src/themes/sap_horizon_hcb/TableRow-parameters.css +5 -0
- package/src/themes/sap_horizon_hcb/parameters-bundle.css +6 -0
- package/src/themes/sap_horizon_hcw/GrowingButton-parameters.css +8 -0
- package/src/themes/sap_horizon_hcw/Table-parameters.css +9 -0
- package/src/themes/sap_horizon_hcw/TableGroupRow-parameters.css +6 -0
- package/src/themes/sap_horizon_hcw/TableRow-parameters.css +5 -0
- package/src/themes/sap_horizon_hcw/parameters-bundle.css +6 -0
- package/tsconfig.json +63 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableGroupRow.js","sourceRoot":"","sources":["../src/TableGroupRow.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAG/E,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,QAAQ;AACR,OAAO,EACN,0BAA0B,GAC1B,MAAM,mCAAmC,CAAC;AAE3C,SAAS;AACT,OAAO,mBAAmB,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E;;;;;;;;;;;;;;;;GAgBG;AAUH,IAAM,aAAa,qBAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QAIC;;;;WAIG;QAEH,SAAI,GAAmB,MAAM,CAAC;QAS9B,eAAU,GAAG,KAAK,CAAC;QAKnB,2CAA2C;QAC3C,aAAQ,GAAG,KAAK,CAAC;QACjB,qBAAgB,GAAuB,EAAE,CAAC;QAC1C,uBAAkB,GAAG,EAAE,CAAC;IAqCzB,CAAC;IA9BA,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,GAAG,eAAa,CAAC,UAAU,CAAC,OAAO,CAAC,0BAA0B,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC1H,CAAC;IAED,eAAe;QACd,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACrD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACrC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAEX,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC;YACzC,KAAK,EAAE,CAAC;QACT,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1D,OAAO;QACR,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC;IAED,UAAU,CAAC,CAAa;QACvB,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;CACD,CAAA;AAtDA;IADC,QAAQ,EAAE;2CACmB;AAG9B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;mDACY;AAGtC;IADC,QAAQ,EAAE;qDACa;AAGxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACT;AAGnB;IADC,QAAQ,EAAE;yDACiB;AAQrB;IADN,IAAI,CAAC,oBAAoB,CAAC;uCACG;AA9BzB,aAAa;IATlB,aAAa,CAAC;QACd,GAAG,EAAE,qBAAqB;QAC1B,MAAM,EAAE,mBAAmB;QAC3B,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,qBAAqB;KAC/B,CAAC;IACD,KAAK,CAAC,UAAU,EAAE;QAClB,OAAO,EAAE,IAAI;KACb,CAAC;GACI,aAAa,CAgElB;AAED,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAElC,aAAa,CAAC,MAAM,EAAE,CAAC;AAEvB,eAAe,aAAa,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { ITableRow, TableColumnInfo } from \"./Table.js\";\nimport TableGroupRowTemplate from \"./TableGroupRowTemplate.js\";\nimport TableMode from \"./types/TableMode.js\";\n\n// Texts\nimport {\n\tTABLE_GROUP_ROW_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport tableGroupRowStyles from \"./generated/themes/TableGroupRow.css.js\";\nimport { patchScopingSuffix } from \"./utils/CompatCustomElementsScope.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-group-row` component represents a group row in the `ui5-table`.\n * @constructor\n * @since 2.0.0\n * @implements {ITableRow}\n * @extends UI5Element\n * @public\n * @slot {Node[]} default - Defines the text of the component.\n *\n * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n * @csspart group-row - Used to style the native `tr` element\n * @deprecated Deprecated as of version 2.12.0, use `@ui5/webcomponents/dist/Table.js` instead.\n */\n@customElement({\n\ttag: \"ui5-table-group-row\",\n\tstyles: tableGroupRowStyles,\n\trenderer: jsxRenderer,\n\ttemplate: TableGroupRowTemplate,\n})\n@event(\"_focused\", {\n\tbubbles: true,\n})\nclass TableGroupRow extends UI5Element implements ITableRow {\n\teventDetails!: {\n\t\t_focused: FocusEvent,\n\t}\n\t/**\n\t * Defines the mode of the row\n\t * @default \"None\"\n\t * @private\n\t */\n\t@property()\n\tmode: `${TableMode}` = \"None\";\n\n\t@property({ type: Array })\n\t_columnsInfo?: Array<TableColumnInfo>;\n\n\t@property()\n\tforcedTabIndex?: string;\n\n\t@property({ type: Boolean })\n\tforcedBusy = false;\n\n\t@property()\n\tforcedAriaPosition?: string;\n\n\t// Properties, set and handled by the Table\n\tselected = false;\n\ttabbableElements: Array<HTMLElement> = [];\n\t_columnsInfoString = \"\";\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_colSpan?: number;\n\n\tget colSpan() {\n\t\treturn this._colSpan;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn `${TableGroupRow.i18nBundle.getText(TABLE_GROUP_ROW_ARIA_LABEL)} ${this.textContent}. ${this.forcedAriaPosition}`;\n\t}\n\n\tvisibleColCount(): number {\n\t\tlet count = this._columnsInfo?.reduce((acc, column) => {\n\t\t\treturn column.visible ? ++acc : acc;\n\t\t}, 0) || 0;\n\n\t\tif (this.mode === TableMode.MultiSelect) {\n\t\t\tcount++;\n\t\t}\n\n\t\treturn count;\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this._columnsInfo || this._columnsInfo.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tthis._colSpan = this.visibleColCount();\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tthis.fireDecoratorEvent(\"_focused\", e);\n\t}\n}\n\npatchScopingSuffix(TableGroupRow);\n\nTableGroupRow.define();\n\nexport default TableGroupRow;\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
+
export default function TableGroupRowTemplate() {
|
|
3
|
+
return (_jsx("tr", { part: "group-row", class: "ui5-table-group-row-root", "aria-label": this.ariaLabelText, tabindex: this.forcedTabIndex ? parseInt(this.forcedTabIndex) : undefined, onFocusIn: this._onfocusin, children: _jsx("td", { colspan: this.colSpan, children: _jsx("slot", {}) }) }));
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=TableGroupRowTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableGroupRowTemplate.js","sourceRoot":"","sources":["../src/TableGroupRowTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,qBAAqB;IAC5C,OAAO,CACN,aACC,IAAI,EAAC,WAAW,EAChB,KAAK,EAAC,0BAA0B,gBACpB,IAAI,CAAC,aAAa,EAC9B,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,EACzE,SAAS,EAAE,IAAI,CAAC,UAAU,YAE1B,aAAI,OAAO,EAAE,IAAI,CAAC,OAAO,YACxB,gBAAa,GACT,GACD,CACL,CAAC;AACH,CAAC","sourcesContent":["import type TableGroupRow from \"./TableGroupRow.js\";\n\nexport default function TableGroupRowTemplate(this: TableGroupRow) {\n\treturn (\n\t\t<tr\n\t\t\tpart=\"group-row\"\n\t\t\tclass=\"ui5-table-group-row-root\"\n\t\t\taria-label={this.ariaLabelText}\n\t\t\ttabindex={this.forcedTabIndex ? parseInt(this.forcedTabIndex) : undefined}\n\t\t\tonFocusIn={this._onfocusin}\n\t\t>\n\t\t\t<td colspan={this.colSpan}>\n\t\t\t\t<slot></slot>\n\t\t\t</td>\n\t\t</tr>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
3
|
+
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
4
|
+
import type TableCell from "./TableCell.js";
|
|
5
|
+
import type { ITableRow, TableColumnInfo } from "./Table.js";
|
|
6
|
+
import TableMode from "./types/TableMode.js";
|
|
7
|
+
import TableRowType from "./types/TableRowType.js";
|
|
8
|
+
type TableRowClickEventDetail = {
|
|
9
|
+
row: TableRow;
|
|
10
|
+
};
|
|
11
|
+
type TableRowSelectionRequestedEventDetail = {
|
|
12
|
+
row: TableRow;
|
|
13
|
+
};
|
|
14
|
+
type TableRowForwardBeforeEventDetail = {
|
|
15
|
+
target: HTMLElement;
|
|
16
|
+
};
|
|
17
|
+
type TableRowForwardAfterEventDetail = {
|
|
18
|
+
target: HTMLElement;
|
|
19
|
+
};
|
|
20
|
+
type TableRowF7PressEventDetail = {
|
|
21
|
+
row: TableRow;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* @class
|
|
25
|
+
*
|
|
26
|
+
* ### Overview
|
|
27
|
+
*
|
|
28
|
+
* The `ui5-table-row` component represents a row in the `ui5-table`.
|
|
29
|
+
* @constructor
|
|
30
|
+
* @extends UI5Element
|
|
31
|
+
* @implements {ITableRow}
|
|
32
|
+
* @public
|
|
33
|
+
* @csspart row - Used to style the native `tr` element
|
|
34
|
+
* @csspart popin-row - Used to style the `tr` element when a row pops in
|
|
35
|
+
* @deprecated Deprecated as of version 2.12.0, use `@ui5/webcomponents/dist/TableRow.js` instead.
|
|
36
|
+
*/
|
|
37
|
+
declare class TableRow extends UI5Element implements ITableRow {
|
|
38
|
+
eventDetails: {
|
|
39
|
+
"row-click": TableRowClickEventDetail;
|
|
40
|
+
"_focused": FocusEvent;
|
|
41
|
+
"forward-before": TableRowForwardBeforeEventDetail;
|
|
42
|
+
"forward-after": TableRowForwardAfterEventDetail;
|
|
43
|
+
"selection-requested": TableRowSelectionRequestedEventDetail;
|
|
44
|
+
"f7-pressed": TableRowF7PressEventDetail;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Defines the visual indication and behavior of the component.
|
|
48
|
+
*
|
|
49
|
+
* **Note:** When set to `Active`, the item will provide visual response upon press,
|
|
50
|
+
* while with type `Inactive`-will not.
|
|
51
|
+
* @default "Inactive"
|
|
52
|
+
* @since 2.0.0
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
type: `${TableRowType}`;
|
|
56
|
+
/**
|
|
57
|
+
* Defines the row's selected state.
|
|
58
|
+
* @default false
|
|
59
|
+
* @since 2.0.0
|
|
60
|
+
* @public
|
|
61
|
+
*/
|
|
62
|
+
selected: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Indicates if the table row is navigated.
|
|
65
|
+
* @default false
|
|
66
|
+
* @since 2.0.0
|
|
67
|
+
* @public
|
|
68
|
+
*/
|
|
69
|
+
navigated: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Defines the mode of the row (None, SingleSelect, MultiSelect).
|
|
72
|
+
* @default "None"
|
|
73
|
+
* @since 2.0.0
|
|
74
|
+
* @private
|
|
75
|
+
*/
|
|
76
|
+
mode: `${TableMode}`;
|
|
77
|
+
/**
|
|
78
|
+
* Indicates if the table row is active.
|
|
79
|
+
* @default false
|
|
80
|
+
* @since 2.0.0
|
|
81
|
+
* @private
|
|
82
|
+
*/
|
|
83
|
+
active: boolean;
|
|
84
|
+
_columnsInfo?: Array<TableColumnInfo>;
|
|
85
|
+
forcedTabIndex?: string;
|
|
86
|
+
forcedBusy: boolean;
|
|
87
|
+
forcedAriaPosition?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Defines the cells of the component.
|
|
90
|
+
*
|
|
91
|
+
* **Note:** Use `ui5-table-cell` for the intended design.
|
|
92
|
+
* @public
|
|
93
|
+
*/
|
|
94
|
+
cells: DefaultSlot<TableCell>;
|
|
95
|
+
static i18nBundle: I18nBundle;
|
|
96
|
+
visibleCells: Array<TableCell>;
|
|
97
|
+
popinCells: Array<TableColumnInfo>;
|
|
98
|
+
tabbableElements: Array<HTMLElement>;
|
|
99
|
+
_columnsInfoString: string;
|
|
100
|
+
_ontouchstart(): void;
|
|
101
|
+
_onmouseup(): void;
|
|
102
|
+
_onkeydown(e: KeyboardEvent): void;
|
|
103
|
+
_onkeyup(e: KeyboardEvent): void;
|
|
104
|
+
_ontouchend(): void;
|
|
105
|
+
_onfocusout(): void;
|
|
106
|
+
_onfocusin(e: FocusEvent, forceSelfFocus?: boolean): void;
|
|
107
|
+
_onrowclick(e: MouseEvent): void;
|
|
108
|
+
_handleSelection(): void;
|
|
109
|
+
_activeElementHasAttribute(attr: string): boolean;
|
|
110
|
+
get _ariaCurrent(): true | undefined;
|
|
111
|
+
activate(): void;
|
|
112
|
+
deactivate(): void;
|
|
113
|
+
get shouldPopin(): boolean;
|
|
114
|
+
get allColumnsPoppedIn(): boolean | undefined;
|
|
115
|
+
onBeforeRendering(): void;
|
|
116
|
+
get visibleCellsCount(): number;
|
|
117
|
+
get ariaLabelText(): string;
|
|
118
|
+
get ariaLabelRowSelection(): string;
|
|
119
|
+
get isSingleSelect(): boolean;
|
|
120
|
+
get isMultiSelect(): boolean;
|
|
121
|
+
get root(): HTMLElement;
|
|
122
|
+
getCellText(cell: TableCell): string;
|
|
123
|
+
getColumnTextByIdx(index: number): string;
|
|
124
|
+
getNormilzedTextContent(textContent: string): string;
|
|
125
|
+
}
|
|
126
|
+
export default TableRow;
|
|
127
|
+
export type { TableRowClickEventDetail, TableRowSelectionRequestedEventDetail, TableRowForwardBeforeEventDetail, TableRowForwardAfterEventDetail, TableRowF7PressEventDetail, };
|
package/dist/TableRow.js
ADDED
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var TableRow_1;
|
|
8
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
9
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
12
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
13
|
+
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
14
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
15
|
+
import { isSpace, isEnter, isF7, isTabNext, isTabPrevious, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
16
|
+
import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
|
|
17
|
+
import { getLastTabbableElement } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
|
|
18
|
+
import TableMode from "./types/TableMode.js";
|
|
19
|
+
import TableRowType from "./types/TableRowType.js";
|
|
20
|
+
import TableColumnPopinDisplay from "./types/TableColumnPopinDisplay.js";
|
|
21
|
+
import TableRowTemplate from "./TableRowTemplate.js";
|
|
22
|
+
import { ARIA_LABEL_ROW_SELECTION, LIST_ITEM_NOT_SELECTED, LIST_ITEM_SELECTED, } from "./generated/i18n/i18n-defaults.js";
|
|
23
|
+
// Styles
|
|
24
|
+
import tableRowStyles from "./generated/themes/TableRow.css.js";
|
|
25
|
+
import { patchScopingSuffix } from "./utils/CompatCustomElementsScope.js";
|
|
26
|
+
/**
|
|
27
|
+
* @class
|
|
28
|
+
*
|
|
29
|
+
* ### Overview
|
|
30
|
+
*
|
|
31
|
+
* The `ui5-table-row` component represents a row in the `ui5-table`.
|
|
32
|
+
* @constructor
|
|
33
|
+
* @extends UI5Element
|
|
34
|
+
* @implements {ITableRow}
|
|
35
|
+
* @public
|
|
36
|
+
* @csspart row - Used to style the native `tr` element
|
|
37
|
+
* @csspart popin-row - Used to style the `tr` element when a row pops in
|
|
38
|
+
* @deprecated Deprecated as of version 2.12.0, use `@ui5/webcomponents/dist/TableRow.js` instead.
|
|
39
|
+
*/
|
|
40
|
+
let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
41
|
+
constructor() {
|
|
42
|
+
super(...arguments);
|
|
43
|
+
/**
|
|
44
|
+
* Defines the visual indication and behavior of the component.
|
|
45
|
+
*
|
|
46
|
+
* **Note:** When set to `Active`, the item will provide visual response upon press,
|
|
47
|
+
* while with type `Inactive`-will not.
|
|
48
|
+
* @default "Inactive"
|
|
49
|
+
* @since 2.0.0
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
this.type = "Inactive";
|
|
53
|
+
/**
|
|
54
|
+
* Defines the row's selected state.
|
|
55
|
+
* @default false
|
|
56
|
+
* @since 2.0.0
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
59
|
+
this.selected = false;
|
|
60
|
+
/**
|
|
61
|
+
* Indicates if the table row is navigated.
|
|
62
|
+
* @default false
|
|
63
|
+
* @since 2.0.0
|
|
64
|
+
* @public
|
|
65
|
+
*/
|
|
66
|
+
this.navigated = false;
|
|
67
|
+
/**
|
|
68
|
+
* Defines the mode of the row (None, SingleSelect, MultiSelect).
|
|
69
|
+
* @default "None"
|
|
70
|
+
* @since 2.0.0
|
|
71
|
+
* @private
|
|
72
|
+
*/
|
|
73
|
+
this.mode = "None";
|
|
74
|
+
/**
|
|
75
|
+
* Indicates if the table row is active.
|
|
76
|
+
* @default false
|
|
77
|
+
* @since 2.0.0
|
|
78
|
+
* @private
|
|
79
|
+
*/
|
|
80
|
+
this.active = false;
|
|
81
|
+
this.forcedBusy = false;
|
|
82
|
+
this.visibleCells = [];
|
|
83
|
+
this.popinCells = [];
|
|
84
|
+
// Properties, set and handled by the Table
|
|
85
|
+
this.tabbableElements = [];
|
|
86
|
+
this._columnsInfoString = "";
|
|
87
|
+
}
|
|
88
|
+
_ontouchstart() {
|
|
89
|
+
this.activate();
|
|
90
|
+
}
|
|
91
|
+
_onmouseup() {
|
|
92
|
+
this.deactivate();
|
|
93
|
+
}
|
|
94
|
+
_onkeydown(e) {
|
|
95
|
+
const activeElement = getActiveElement();
|
|
96
|
+
const itemActive = this.type === TableRowType.Active;
|
|
97
|
+
const isSingleSelect = this.isSingleSelect;
|
|
98
|
+
const itemSelectable = isSingleSelect || this.isMultiSelect;
|
|
99
|
+
const isRowFocused = this._activeElementHasAttribute("ui5-table-row");
|
|
100
|
+
const target = e.target;
|
|
101
|
+
const checkboxPressed = target.classList.contains("ui5-multi-select-checkbox");
|
|
102
|
+
const rowElements = Array.from(this.shadowRoot.querySelectorAll("tr") || []);
|
|
103
|
+
const elements = rowElements.map(getLastTabbableElement).filter(Boolean);
|
|
104
|
+
const lastFocusableElement = elements.pop();
|
|
105
|
+
if (isTabNext(e) && activeElement === (lastFocusableElement || this.root)) {
|
|
106
|
+
this.fireDecoratorEvent("forward-after", { target: activeElement });
|
|
107
|
+
}
|
|
108
|
+
if (isTabPrevious(e) && activeElement === this.root) {
|
|
109
|
+
this.fireDecoratorEvent("forward-before", { target: activeElement });
|
|
110
|
+
}
|
|
111
|
+
if (isSpace(e) && target.tagName.toLowerCase() === "tr") {
|
|
112
|
+
e.preventDefault();
|
|
113
|
+
}
|
|
114
|
+
if (isRowFocused && !checkboxPressed) {
|
|
115
|
+
if ((isSpace(e) && itemSelectable) || (isEnter(e) && isSingleSelect)) {
|
|
116
|
+
this.fireDecoratorEvent("selection-requested", { row: this });
|
|
117
|
+
}
|
|
118
|
+
if (isEnter(e) && itemActive) {
|
|
119
|
+
this.fireDecoratorEvent("row-click", { row: this });
|
|
120
|
+
if (!isSingleSelect) {
|
|
121
|
+
this.activate();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (isF7(e)) {
|
|
126
|
+
e.preventDefault();
|
|
127
|
+
this.fireDecoratorEvent("f7-pressed", { row: this });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
_onkeyup(e) {
|
|
131
|
+
if (isSpace(e) || isEnter(e)) {
|
|
132
|
+
this.deactivate();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
_ontouchend() {
|
|
136
|
+
this.deactivate();
|
|
137
|
+
}
|
|
138
|
+
_onfocusout() {
|
|
139
|
+
this.deactivate();
|
|
140
|
+
}
|
|
141
|
+
_onfocusin(e, forceSelfFocus = false) {
|
|
142
|
+
if (forceSelfFocus || this._activeElementHasAttribute("ui5-table-cell")) {
|
|
143
|
+
this.root.focus();
|
|
144
|
+
this.activate();
|
|
145
|
+
}
|
|
146
|
+
this.fireDecoratorEvent("_focused");
|
|
147
|
+
}
|
|
148
|
+
_onrowclick(e) {
|
|
149
|
+
const checkboxPressed = e.target.classList.contains("ui5-multi-select-checkbox");
|
|
150
|
+
// If the user tab over a button on IOS device, the document.activeElement
|
|
151
|
+
// is the ui5-table-row. The check below ensure that, if a button within the row is pressed,
|
|
152
|
+
// the row will not be selected.
|
|
153
|
+
if (this.getFocusDomRef().matches(":has(:focus-within)")) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
const activeElement = this.getRootNode().activeElement;
|
|
157
|
+
if (!this.contains(activeElement)) {
|
|
158
|
+
// If the user clickes on non-focusable element within the ui5-table-cell,
|
|
159
|
+
// the focus goes to the body, se we have to bring it back to the row.
|
|
160
|
+
// If the user clicks on input, button or similar clickable element,
|
|
161
|
+
// the focus remains on that element.
|
|
162
|
+
this._onfocusin(e, true /* force row focus */);
|
|
163
|
+
this.deactivate();
|
|
164
|
+
}
|
|
165
|
+
if (this._activeElementHasAttribute("ui5-table-row")) {
|
|
166
|
+
if (this.isSingleSelect) {
|
|
167
|
+
this._handleSelection();
|
|
168
|
+
}
|
|
169
|
+
if (this.type === TableRowType.Active && !checkboxPressed) {
|
|
170
|
+
this.fireDecoratorEvent("row-click", { row: this });
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
_handleSelection() {
|
|
175
|
+
this.fireDecoratorEvent("selection-requested", { row: this });
|
|
176
|
+
}
|
|
177
|
+
_activeElementHasAttribute(attr) {
|
|
178
|
+
return !!(this.getRootNode().activeElement?.hasAttribute(attr));
|
|
179
|
+
}
|
|
180
|
+
get _ariaCurrent() {
|
|
181
|
+
return this.navigated ? true : undefined;
|
|
182
|
+
}
|
|
183
|
+
activate() {
|
|
184
|
+
if (this.type === TableRowType.Active) {
|
|
185
|
+
this.active = true;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
deactivate() {
|
|
189
|
+
if (this.active) {
|
|
190
|
+
this.active = false;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
get shouldPopin() {
|
|
194
|
+
return !!(this._columnsInfo?.filter(el => {
|
|
195
|
+
return el.demandPopin || !el.visible;
|
|
196
|
+
}).length);
|
|
197
|
+
}
|
|
198
|
+
get allColumnsPoppedIn() {
|
|
199
|
+
return this._columnsInfo?.every(el => el.demandPopin && !el.visible);
|
|
200
|
+
}
|
|
201
|
+
onBeforeRendering() {
|
|
202
|
+
if (!this.shouldPopin) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
this.visibleCells = [];
|
|
206
|
+
this.popinCells = [];
|
|
207
|
+
if (this.cells.length === 0) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
const allColumnsPoppedInClass = this.allColumnsPoppedIn ? "all-columns-popped-in" : "";
|
|
211
|
+
this._columnsInfo?.forEach((info, index) => {
|
|
212
|
+
const cell = this.cells[index];
|
|
213
|
+
const popinDisplay = info.popinDisplay === TableColumnPopinDisplay.Inline;
|
|
214
|
+
if (!cell) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
if (info.visible) {
|
|
218
|
+
this.visibleCells.push(cell);
|
|
219
|
+
cell.popined = false;
|
|
220
|
+
cell._popinedInline = false;
|
|
221
|
+
}
|
|
222
|
+
else if (info.demandPopin) {
|
|
223
|
+
const popinHeaderClass = this.popinCells.length === 0 ? "popin-header" : "";
|
|
224
|
+
this.popinCells.push({
|
|
225
|
+
cell,
|
|
226
|
+
popinText: info.popinText,
|
|
227
|
+
classes: `ui5-table-popin-row ${allColumnsPoppedInClass} ${popinHeaderClass}`,
|
|
228
|
+
popinDisplayInline: popinDisplay,
|
|
229
|
+
});
|
|
230
|
+
cell.popined = true;
|
|
231
|
+
if (info.popinDisplay === TableColumnPopinDisplay.Inline) {
|
|
232
|
+
cell._popinedInline = true;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
cell.popined = false;
|
|
237
|
+
cell._popinedInline = false;
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
const lastVisibleCell = this.visibleCells[this.visibleCells.length - 1];
|
|
241
|
+
if (lastVisibleCell) {
|
|
242
|
+
lastVisibleCell.lastInRow = true;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
get visibleCellsCount() {
|
|
246
|
+
let visibleCellsCount = this.visibleCells.length;
|
|
247
|
+
if (this.isMultiSelect) {
|
|
248
|
+
visibleCellsCount += 1;
|
|
249
|
+
}
|
|
250
|
+
return visibleCellsCount;
|
|
251
|
+
}
|
|
252
|
+
get ariaLabelText() {
|
|
253
|
+
const isSelected = this.selected ? TableRow_1.i18nBundle.getText(LIST_ITEM_SELECTED) : TableRow_1.i18nBundle.getText(LIST_ITEM_NOT_SELECTED);
|
|
254
|
+
const isRowSelectable = this.isSingleSelect || this.isMultiSelect;
|
|
255
|
+
const ariaLabel = this.cells.map((cell, index) => {
|
|
256
|
+
const columText = this.getColumnTextByIdx(index);
|
|
257
|
+
const cellText = cell.cellContent.length ? this.getCellText(cell) : cell.ariaLabelEmptyCellText;
|
|
258
|
+
return `${columText} ${cellText}`;
|
|
259
|
+
}).join(" ");
|
|
260
|
+
if (isRowSelectable) {
|
|
261
|
+
return `${ariaLabel}. ${this.forcedAriaPosition}. ${isSelected}`;
|
|
262
|
+
}
|
|
263
|
+
return `${ariaLabel}. ${this.forcedAriaPosition}`;
|
|
264
|
+
}
|
|
265
|
+
get ariaLabelRowSelection() {
|
|
266
|
+
return TableRow_1.i18nBundle.getText(ARIA_LABEL_ROW_SELECTION);
|
|
267
|
+
}
|
|
268
|
+
get isSingleSelect() {
|
|
269
|
+
return this.mode === TableMode.SingleSelect;
|
|
270
|
+
}
|
|
271
|
+
get isMultiSelect() {
|
|
272
|
+
return this.mode === TableMode.MultiSelect;
|
|
273
|
+
}
|
|
274
|
+
get root() {
|
|
275
|
+
return this.shadowRoot.querySelector(".ui5-table-row-root");
|
|
276
|
+
}
|
|
277
|
+
getCellText(cell) {
|
|
278
|
+
const cellTextContent = cell.textContent;
|
|
279
|
+
return cellTextContent ? this.getNormilzedTextContent(cellTextContent) : "";
|
|
280
|
+
}
|
|
281
|
+
getColumnTextByIdx(index) {
|
|
282
|
+
const columnInfo = this._columnsInfo?.[index];
|
|
283
|
+
if (!columnInfo) {
|
|
284
|
+
return "";
|
|
285
|
+
}
|
|
286
|
+
return columnInfo.text ? this.getNormilzedTextContent(columnInfo.text) : "";
|
|
287
|
+
}
|
|
288
|
+
getNormilzedTextContent(textContent) {
|
|
289
|
+
return textContent.replace(/[\n\r\t]/g, "").trim();
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
__decorate([
|
|
293
|
+
property()
|
|
294
|
+
], TableRow.prototype, "type", void 0);
|
|
295
|
+
__decorate([
|
|
296
|
+
property({ type: Boolean })
|
|
297
|
+
], TableRow.prototype, "selected", void 0);
|
|
298
|
+
__decorate([
|
|
299
|
+
property({ type: Boolean })
|
|
300
|
+
], TableRow.prototype, "navigated", void 0);
|
|
301
|
+
__decorate([
|
|
302
|
+
property()
|
|
303
|
+
], TableRow.prototype, "mode", void 0);
|
|
304
|
+
__decorate([
|
|
305
|
+
property({ type: Boolean })
|
|
306
|
+
], TableRow.prototype, "active", void 0);
|
|
307
|
+
__decorate([
|
|
308
|
+
property({ type: Array })
|
|
309
|
+
], TableRow.prototype, "_columnsInfo", void 0);
|
|
310
|
+
__decorate([
|
|
311
|
+
property()
|
|
312
|
+
], TableRow.prototype, "forcedTabIndex", void 0);
|
|
313
|
+
__decorate([
|
|
314
|
+
property({ type: Boolean })
|
|
315
|
+
], TableRow.prototype, "forcedBusy", void 0);
|
|
316
|
+
__decorate([
|
|
317
|
+
property({ noAttribute: true })
|
|
318
|
+
], TableRow.prototype, "forcedAriaPosition", void 0);
|
|
319
|
+
__decorate([
|
|
320
|
+
slot({ type: HTMLElement, "default": true, individualSlots: true })
|
|
321
|
+
], TableRow.prototype, "cells", void 0);
|
|
322
|
+
__decorate([
|
|
323
|
+
i18n("@ui5/webcomponents")
|
|
324
|
+
], TableRow, "i18nBundle", void 0);
|
|
325
|
+
TableRow = TableRow_1 = __decorate([
|
|
326
|
+
customElement({
|
|
327
|
+
tag: "ui5-table-row",
|
|
328
|
+
styles: tableRowStyles,
|
|
329
|
+
renderer: jsxRenderer,
|
|
330
|
+
template: TableRowTemplate,
|
|
331
|
+
})
|
|
332
|
+
/**
|
|
333
|
+
* Fired when a row in `Active` mode is clicked or `Enter` key is pressed.
|
|
334
|
+
* @since 2.0.0
|
|
335
|
+
* @private
|
|
336
|
+
*/
|
|
337
|
+
,
|
|
338
|
+
event("row-click", {
|
|
339
|
+
bubbles: true,
|
|
340
|
+
})
|
|
341
|
+
/**
|
|
342
|
+
* @private
|
|
343
|
+
*/
|
|
344
|
+
,
|
|
345
|
+
event("_focused", {
|
|
346
|
+
bubbles: true,
|
|
347
|
+
})
|
|
348
|
+
/**
|
|
349
|
+
* @private
|
|
350
|
+
*/
|
|
351
|
+
,
|
|
352
|
+
event("forward-before", {
|
|
353
|
+
bubbles: true,
|
|
354
|
+
})
|
|
355
|
+
/**
|
|
356
|
+
* @private
|
|
357
|
+
*/
|
|
358
|
+
,
|
|
359
|
+
event("forward-after", {
|
|
360
|
+
bubbles: true,
|
|
361
|
+
})
|
|
362
|
+
/**
|
|
363
|
+
* Fired on selection change of an active row.
|
|
364
|
+
* @since 2.0.0
|
|
365
|
+
* @private
|
|
366
|
+
*/
|
|
367
|
+
,
|
|
368
|
+
event("selection-requested", {
|
|
369
|
+
bubbles: true,
|
|
370
|
+
})
|
|
371
|
+
/**
|
|
372
|
+
* Fired when F7 is pressed.
|
|
373
|
+
* @since 2.0.0
|
|
374
|
+
* @private
|
|
375
|
+
*/
|
|
376
|
+
,
|
|
377
|
+
event("f7-pressed", {
|
|
378
|
+
bubbles: true,
|
|
379
|
+
})
|
|
380
|
+
], TableRow);
|
|
381
|
+
patchScopingSuffix(TableRow);
|
|
382
|
+
TableRow.define();
|
|
383
|
+
export default TableRow;
|
|
384
|
+
//# sourceMappingURL=TableRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../src/TableRow.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisF7,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getLastTabbableElement } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport type TableCell from \"./TableCell.js\";\nimport type { ITableRow, TableColumnInfo } from \"./Table.js\";\nimport TableMode from \"./types/TableMode.js\";\nimport TableRowType from \"./types/TableRowType.js\";\nimport TableColumnPopinDisplay from \"./types/TableColumnPopinDisplay.js\";\nimport TableRowTemplate from \"./TableRowTemplate.js\";\nimport {\n\tARIA_LABEL_ROW_SELECTION,\n\tLIST_ITEM_NOT_SELECTED,\n\tLIST_ITEM_SELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport tableRowStyles from \"./generated/themes/TableRow.css.js\";\nimport { patchScopingSuffix } from \"./utils/CompatCustomElementsScope.js\";\n\ntype TableRowClickEventDetail = {\n\trow: TableRow,\n}\n\ntype TableRowSelectionRequestedEventDetail = {\n\trow: TableRow,\n}\n\ntype TableRowForwardBeforeEventDetail = {\n\ttarget: HTMLElement,\n}\n\ntype TableRowForwardAfterEventDetail = {\n\ttarget: HTMLElement,\n}\n\ntype TableRowF7PressEventDetail = {\n\trow: TableRow,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-row` component represents a row in the `ui5-table`.\n * @constructor\n * @extends UI5Element\n * @implements {ITableRow}\n * @public\n * @csspart row - Used to style the native `tr` element\n * @csspart popin-row - Used to style the `tr` element when a row pops in\n * @deprecated Deprecated as of version 2.12.0, use `@ui5/webcomponents/dist/TableRow.js` instead.\n */\n@customElement({\n\ttag: \"ui5-table-row\",\n\tstyles: tableRowStyles,\n\trenderer: jsxRenderer,\n\ttemplate: TableRowTemplate,\n})\n/**\n * Fired when a row in `Active` mode is clicked or `Enter` key is pressed.\n * @since 2.0.0\n * @private\n */\n@event(\"row-click\", {\n\tbubbles: true,\n})\n/**\n * @private\n */\n@event(\"_focused\", {\n\tbubbles: true,\n})\n/**\n * @private\n */\n@event(\"forward-before\", {\n\tbubbles: true,\n})\n/**\n * @private\n */\n@event(\"forward-after\", {\n\tbubbles: true,\n})\n/**\n * Fired on selection change of an active row.\n * @since 2.0.0\n * @private\n */\n@event(\"selection-requested\", {\n\tbubbles: true,\n})\n/**\n * Fired when F7 is pressed.\n * @since 2.0.0\n * @private\n */\n@event(\"f7-pressed\", {\n\tbubbles: true,\n})\nclass TableRow extends UI5Element implements ITableRow {\n\teventDetails!: {\n\t\t\"row-click\": TableRowClickEventDetail,\n\t\t\"_focused\": FocusEvent,\n\t\t\"forward-before\": TableRowForwardBeforeEventDetail,\n\t\t\"forward-after\": TableRowForwardAfterEventDetail,\n\t\t\"selection-requested\": TableRowSelectionRequestedEventDetail,\n\t\t\"f7-pressed\": TableRowF7PressEventDetail,\n\t}\n\t/**\n\t * Defines the visual indication and behavior of the component.\n\t *\n\t * **Note:** When set to `Active`, the item will provide visual response upon press,\n\t * while with type `Inactive`-will not.\n\t * @default \"Inactive\"\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@property()\n\ttype: `${TableRowType}` = \"Inactive\";\n\n\t/**\n\t * Defines the row's selected state.\n\t * @default false\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tselected = false;\n\n\t/**\n\t * Indicates if the table row is navigated.\n\t * @default false\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnavigated = false;\n\n\t/**\n\t * Defines the mode of the row (None, SingleSelect, MultiSelect).\n\t * @default \"None\"\n\t * @since 2.0.0\n\t * @private\n\t */\n\t@property()\n\tmode: `${TableMode}` = \"None\";\n\n\t/**\n\t * Indicates if the table row is active.\n\t * @default false\n\t * @since 2.0.0\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t@property({ type: Array })\n\t_columnsInfo?: Array<TableColumnInfo>;\n\n\t@property()\n\tforcedTabIndex?: string;\n\n\t@property({ type: Boolean })\n\tforcedBusy = false;\n\n\t@property({ noAttribute: true })\n\tforcedAriaPosition?: string;\n\n\t/**\n\t * Defines the cells of the component.\n\t *\n\t * **Note:** Use `ui5-table-cell` for the intended design.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n\tcells!: DefaultSlot<TableCell>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tvisibleCells: Array<TableCell> = [];\n\tpopinCells: Array<TableColumnInfo> = [];\n\n\t// Properties, set and handled by the Table\n\ttabbableElements: Array<HTMLElement> = [];\n\t_columnsInfoString = \"\";\n\n\t_ontouchstart() {\n\t\tthis.activate();\n\t}\n\n\t_onmouseup() {\n\t\tthis.deactivate();\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst activeElement = getActiveElement() as HTMLElement;\n\t\tconst itemActive = this.type === TableRowType.Active;\n\t\tconst isSingleSelect = this.isSingleSelect;\n\t\tconst itemSelectable = isSingleSelect || this.isMultiSelect;\n\t\tconst isRowFocused = this._activeElementHasAttribute(\"ui5-table-row\");\n\t\tconst target = e.target as HTMLElement;\n\t\tconst checkboxPressed = target.classList.contains(\"ui5-multi-select-checkbox\");\n\t\tconst rowElements = Array.from(this.shadowRoot!.querySelectorAll(\"tr\") || []);\n\t\tconst elements = rowElements.map(getLastTabbableElement).filter(Boolean);\n\t\tconst lastFocusableElement = elements.pop();\n\n\t\tif (isTabNext(e) && activeElement === (lastFocusableElement || this.root)) {\n\t\t\tthis.fireDecoratorEvent(\"forward-after\", { target: activeElement });\n\t\t}\n\n\t\tif (isTabPrevious(e) && activeElement === this.root) {\n\t\t\tthis.fireDecoratorEvent(\"forward-before\", { target: activeElement });\n\t\t}\n\n\t\tif (isSpace(e) && target.tagName.toLowerCase() === \"tr\") {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isRowFocused && !checkboxPressed) {\n\t\t\tif ((isSpace(e) && itemSelectable) || (isEnter(e) && isSingleSelect)) {\n\t\t\t\tthis.fireDecoratorEvent(\"selection-requested\", { row: this });\n\t\t\t}\n\n\t\t\tif (isEnter(e) && itemActive) {\n\t\t\t\tthis.fireDecoratorEvent(\"row-click\", { row: this });\n\t\t\t\tif (!isSingleSelect) {\n\t\t\t\t\tthis.activate();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (isF7(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.fireDecoratorEvent(\"f7-pressed\", { row: this });\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tthis.deactivate();\n\t\t}\n\t}\n\n\t_ontouchend() {\n\t\tthis.deactivate();\n\t}\n\n\t_onfocusout() {\n\t\tthis.deactivate();\n\t}\n\n\t_onfocusin(e: FocusEvent, forceSelfFocus = false) {\n\t\tif (forceSelfFocus || this._activeElementHasAttribute(\"ui5-table-cell\")) {\n\t\t\tthis.root.focus();\n\t\t\tthis.activate();\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"_focused\");\n\t}\n\n\t_onrowclick(e: MouseEvent) {\n\t\tconst checkboxPressed = (e.target as HTMLElement).classList.contains(\"ui5-multi-select-checkbox\");\n\t\t// If the user tab over a button on IOS device, the document.activeElement\n\t\t// is the ui5-table-row. The check below ensure that, if a button within the row is pressed,\n\t\t// the row will not be selected.\n\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst activeElement = (this.getRootNode() as Document).activeElement;\n\t\tif (!this.contains(activeElement)) {\n\t\t\t// If the user clickes on non-focusable element within the ui5-table-cell,\n\t\t\t// the focus goes to the body, se we have to bring it back to the row.\n\t\t\t// If the user clicks on input, button or similar clickable element,\n\t\t\t// the focus remains on that element.\n\t\t\tthis._onfocusin(e, true /* force row focus */);\n\t\t\tthis.deactivate();\n\t\t}\n\n\t\tif (this._activeElementHasAttribute(\"ui5-table-row\")) {\n\t\t\tif (this.isSingleSelect) {\n\t\t\t\tthis._handleSelection();\n\t\t\t}\n\n\t\t\tif (this.type === TableRowType.Active && !checkboxPressed) {\n\t\t\t\tthis.fireDecoratorEvent(\"row-click\", { row: this });\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleSelection() {\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { row: this });\n\t}\n\n\t_activeElementHasAttribute(attr: string): boolean {\n\t\treturn !!((this.getRootNode() as Document).activeElement?.hasAttribute(attr));\n\t}\n\n\tget _ariaCurrent() {\n\t\treturn this.navigated ? true : undefined;\n\t}\n\n\tactivate() {\n\t\tif (this.type === TableRowType.Active) {\n\t\t\tthis.active = true;\n\t\t}\n\t}\n\n\tdeactivate() {\n\t\tif (this.active) {\n\t\t\tthis.active = false;\n\t\t}\n\t}\n\n\tget shouldPopin(): boolean {\n\t\treturn !!(this._columnsInfo?.filter(el => {\n\t\t\treturn el.demandPopin || !el.visible;\n\t\t}).length);\n\t}\n\n\tget allColumnsPoppedIn() {\n\t\treturn this._columnsInfo?.every(el => el.demandPopin && !el.visible);\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this.shouldPopin) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.visibleCells = [];\n\t\tthis.popinCells = [];\n\n\t\tif (this.cells.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst allColumnsPoppedInClass = this.allColumnsPoppedIn ? \"all-columns-popped-in\" : \"\";\n\t\tthis._columnsInfo?.forEach((info, index) => {\n\t\t\tconst cell = this.cells[index];\n\t\t\tconst popinDisplay = info.popinDisplay === TableColumnPopinDisplay.Inline;\n\n\t\t\tif (!cell) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (info.visible) {\n\t\t\t\tthis.visibleCells.push(cell);\n\t\t\t\tcell.popined = false;\n\t\t\t\tcell._popinedInline = false;\n\t\t\t} else if (info.demandPopin) {\n\t\t\t\tconst popinHeaderClass = this.popinCells.length === 0 ? \"popin-header\" : \"\";\n\t\t\t\tthis.popinCells.push({\n\t\t\t\t\tcell,\n\t\t\t\t\tpopinText: info.popinText,\n\t\t\t\t\tclasses: `ui5-table-popin-row ${allColumnsPoppedInClass} ${popinHeaderClass}`,\n\t\t\t\t\tpopinDisplayInline: popinDisplay,\n\t\t\t\t});\n\t\t\t\tcell.popined = true;\n\t\t\t\tif (info.popinDisplay === TableColumnPopinDisplay.Inline) {\n\t\t\t\t\tcell._popinedInline = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcell.popined = false;\n\t\t\t\tcell._popinedInline = false;\n\t\t\t}\n\t\t});\n\n\t\tconst lastVisibleCell = this.visibleCells[this.visibleCells.length - 1];\n\n\t\tif (lastVisibleCell) {\n\t\t\tlastVisibleCell.lastInRow = true;\n\t\t}\n\t}\n\n\tget visibleCellsCount() {\n\t\tlet visibleCellsCount = this.visibleCells.length;\n\n\t\tif (this.isMultiSelect) {\n\t\t\tvisibleCellsCount += 1;\n\t\t}\n\n\t\treturn visibleCellsCount;\n\t}\n\n\tget ariaLabelText() {\n\t\tconst isSelected = this.selected ? TableRow.i18nBundle.getText(LIST_ITEM_SELECTED) : TableRow.i18nBundle.getText(LIST_ITEM_NOT_SELECTED);\n\t\tconst isRowSelectable = this.isSingleSelect || this.isMultiSelect;\n\t\tconst ariaLabel = this.cells.map((cell, index) => {\n\t\t\tconst columText = this.getColumnTextByIdx(index);\n\t\t\tconst cellText = cell.cellContent.length ? this.getCellText(cell) : cell.ariaLabelEmptyCellText;\n\t\t\treturn `${columText} ${cellText}`;\n\t\t}).join(\" \");\n\n\t\tif (isRowSelectable) {\n\t\t\treturn `${ariaLabel}. ${this.forcedAriaPosition}. ${isSelected}`;\n\t\t}\n\n\t\treturn `${ariaLabel}. ${this.forcedAriaPosition}`;\n\t}\n\n\tget ariaLabelRowSelection() {\n\t\treturn TableRow.i18nBundle.getText(ARIA_LABEL_ROW_SELECTION);\n\t}\n\n\tget isSingleSelect() {\n\t\treturn this.mode === TableMode.SingleSelect;\n\t}\n\n\tget isMultiSelect() {\n\t\treturn this.mode === TableMode.MultiSelect;\n\t}\n\n\tget root() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-table-row-root\")!;\n\t}\n\n\tgetCellText(cell: TableCell): string {\n\t\tconst cellTextContent = cell.textContent;\n\n\t\treturn cellTextContent ? this.getNormilzedTextContent(cellTextContent) : \"\";\n\t}\n\n\tgetColumnTextByIdx(index: number): string {\n\t\tconst columnInfo: TableColumnInfo | undefined = this._columnsInfo?.[index];\n\n\t\tif (!columnInfo) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn columnInfo.text ? this.getNormilzedTextContent(columnInfo.text) : \"\";\n\t}\n\n\tgetNormilzedTextContent(textContent: string): string {\n\t\treturn textContent.replace(/[\\n\\r\\t]/g, \"\").trim();\n\t}\n}\n\npatchScopingSuffix(TableRow);\n\nTableRow.define();\n\nexport default TableRow;\n\nexport type {\n\tTableRowClickEventDetail,\n\tTableRowSelectionRequestedEventDetail,\n\tTableRowForwardBeforeEventDetail,\n\tTableRowForwardAfterEventDetail,\n\tTableRowF7PressEventDetail,\n};\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
+
import CheckBox from "@ui5/webcomponents/dist/CheckBox.js";
|
|
3
|
+
export default function TableRowTemplate() {
|
|
4
|
+
return (_jsxs(_Fragment, { children: [_jsxs("tr", { class: "ui5-table-row-root", tabindex: this.forcedTabIndex ? parseInt(this.forcedTabIndex) : undefined, onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, onClick: this._onrowclick, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onMouseUp: this._onmouseup, onTouchStart: this._ontouchstart, onTouchEnd: this._ontouchend, "aria-label": this.ariaLabelText, "aria-selected": this.selected, "aria-current": this._ariaCurrent, "data-sap-focus-ref": true, part: "row", children: [this.isMultiSelect &&
|
|
5
|
+
_jsx("td", { class: "ui5-table-multi-select-cell", "aria-hidden": "true", role: "presentation", children: _jsx(CheckBox, { class: "ui5-multi-select-checkbox", checked: this.selected, accessibleName: this.ariaLabelRowSelection, onChange: this._handleSelection, tabindex: -1 }) }), this.shouldPopin ?
|
|
6
|
+
this.visibleCells.map(cell => _jsx("slot", { name: cell._individualSlot }))
|
|
7
|
+
:
|
|
8
|
+
this.cells.map(cell => _jsx("slot", { name: cell._individualSlot })), _jsx("td", { class: "ui5-table-row-navigated", "aria-hidden": "true", children: _jsx("div", { class: "ui5-table-div-navigated" }) })] }), this.shouldPopin && this.popinCells.map(cellData => _jsxs("tr", { part: "popin-row", class: cellData.classes, onClick: this._onrowclick, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, children: [_jsx("td", { colspan: this.visibleCellsCount, role: "cell", children: cellData.popinDisplayInline ?
|
|
9
|
+
_jsxs("div", { class: "ui5-table-display-inline-container", children: [cellData.popinText &&
|
|
10
|
+
_jsxs("span", { class: "ui5-table-row-popin-title", children: [cellData.popinText, ":"] }), _jsx("span", { class: "ui5-table-cell-display-inline", children: _jsx("slot", { name: cellData.cell?._individualSlot }) })] })
|
|
11
|
+
:
|
|
12
|
+
_jsxs(_Fragment, { children: [cellData.popinText &&
|
|
13
|
+
_jsxs("span", { class: "ui5-table-row-popin-title", children: [cellData.popinText, ":"] }), _jsx("div", { children: _jsx("slot", { name: cellData.cell?._individualSlot }) })] }) }), _jsx("td", { class: "ui5-table-row-navigated", "aria-hidden": "true", children: _jsx("div", { class: "ui5-table-div-navigated" }) })] }))] }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=TableRowTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableRowTemplate.js","sourceRoot":"","sources":["../src/TableRowTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,QAAQ,MAAM,qCAAqC,CAAC;AAG3D,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACvC,OAAO,CACN,8BACC,cACC,KAAK,EAAC,oBAAoB,EAC1B,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,EACzE,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,YAAY,EAAE,IAAI,CAAC,aAAa,EAChC,UAAU,EAAE,IAAI,CAAC,WAAW,gBAChB,IAAI,CAAC,aAAa,mBACf,IAAI,CAAC,QAAQ,kBACd,IAAI,CAAC,YAAY,8BAE/B,IAAI,EAAC,KAAK,aAET,IAAI,CAAC,aAAa;wBACnB,aACC,KAAK,EAAC,6BAA6B,iBACvB,MAAM,EAClB,IAAI,EAAC,cAAc,YAEnB,KAAC,QAAQ,IACR,KAAK,EAAC,2BAA2B,EACjC,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,cAAc,EAAE,IAAI,CAAC,qBAAqB,EAC1C,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAC/B,QAAQ,EAAE,CAAC,CAAC,GACX,GACE,EAGJ,IAAI,CAAC,WAAW,CAAC,CAAC;wBAClB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,CAAC;wBACxE,CAAC;4BACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,CAAC,EAGlE,aAAI,KAAK,EAAC,yBAAyB,iBAAa,MAAM,YACrD,cAAK,KAAK,EAAC,yBAAyB,GAAO,GACvC,IACD,EAGJ,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAClD,cACC,IAAI,EAAC,WAAW,EAChB,KAAK,EAAE,QAAQ,CAAC,OAAO,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,aAEtB,aAAI,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAC,MAAM,YAE9C,QAAQ,CAAC,kBAAkB,CAAC,CAAC;4BAC7B,eAAK,KAAK,EAAC,oCAAoC,aAC7C,QAAQ,CAAC,SAAS;wCACnB,gBAAM,KAAK,EAAC,2BAA2B,aAAE,QAAQ,CAAC,SAAS,SAAS,EAEpE,eAAM,KAAK,EAAC,+BAA+B,YAC1C,eAAM,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAS,GAC7C,IACF;4BACN,CAAC;gCACD,8BACE,QAAQ,CAAC,SAAS;4CAClB,gBAAM,KAAK,EAAC,2BAA2B,aAAE,QAAQ,CAAC,SAAS,SAAS,EAErE,wBACC,eAAM,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAS,GAC9C,IACJ,GAGA,EAEL,aAAI,KAAK,EAAC,yBAAyB,iBAAa,MAAM,YACrD,cAAK,KAAK,EAAC,yBAAyB,GAAO,GACvC,IACD,CACL,IAEA,CACH,CAAC;AACH,CAAC","sourcesContent":["import CheckBox from \"@ui5/webcomponents/dist/CheckBox.js\";\nimport type TableRow from \"./TableRow.js\";\n\nexport default function TableRowTemplate(this: TableRow) {\n\treturn (\n\t\t<>\n\t\t\t<tr\n\t\t\t\tclass=\"ui5-table-row-root\"\n\t\t\t\ttabindex={this.forcedTabIndex ? parseInt(this.forcedTabIndex) : undefined}\n\t\t\t\tonFocusIn={this._onfocusin}\n\t\t\t\tonFocusOut={this._onfocusout}\n\t\t\t\tonClick={this._onrowclick}\n\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t\tonKeyUp={this._onkeyup}\n\t\t\t\tonMouseUp={this._onmouseup}\n\t\t\t\tonTouchStart={this._ontouchstart}\n\t\t\t\tonTouchEnd={this._ontouchend}\n\t\t\t\taria-label={this.ariaLabelText}\n\t\t\t\taria-selected={this.selected}\n\t\t\t\taria-current={this._ariaCurrent}\n\t\t\t\tdata-sap-focus-ref\n\t\t\t\tpart=\"row\"\n\t\t\t>\n\t\t\t\t{this.isMultiSelect &&\n\t\t\t\t<td\n\t\t\t\t\tclass=\"ui5-table-multi-select-cell\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\trole=\"presentation\"\n\t\t\t\t>\n\t\t\t\t\t<CheckBox\n\t\t\t\t\t\tclass=\"ui5-multi-select-checkbox\"\n\t\t\t\t\t\tchecked={this.selected}\n\t\t\t\t\t\taccessibleName={this.ariaLabelRowSelection}\n\t\t\t\t\t\tonChange={this._handleSelection}\n\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t/>\n\t\t\t\t</td>\n\t\t\t\t}\n\n\t\t\t\t{this.shouldPopin ?\n\t\t\t\t\tthis.visibleCells.map(cell => <slot name={cell._individualSlot}></slot>)\n\t\t\t\t\t:\n\t\t\t\t\tthis.cells.map(cell => <slot name={cell._individualSlot}></slot>)\n\t\t\t\t}\n\n\t\t\t\t<td class=\"ui5-table-row-navigated\" aria-hidden=\"true\">\n\t\t\t\t\t<div class=\"ui5-table-div-navigated\"></div>\n\t\t\t\t</td>\n\t\t\t</tr>\n\n\t\t\t{\n\t\t\t\tthis.shouldPopin && this.popinCells.map(cellData =>\n\t\t\t\t\t<tr\n\t\t\t\t\t\tpart=\"popin-row\"\n\t\t\t\t\t\tclass={cellData.classes}\n\t\t\t\t\t\tonClick={this._onrowclick}\n\t\t\t\t\t\tonKeyDown={this._onkeydown}\n\t\t\t\t\t\tonKeyUp={this._onkeyup}\n\t\t\t\t\t>\n\t\t\t\t\t\t<td colspan={this.visibleCellsCount} role=\"cell\">\n\n\t\t\t\t\t\t\t{cellData.popinDisplayInline ?\n\t\t\t\t\t\t\t\t<div class=\"ui5-table-display-inline-container\">\n\t\t\t\t\t\t\t\t\t{cellData.popinText &&\n\t\t\t\t\t\t\t\t\t<span class=\"ui5-table-row-popin-title\">{cellData.popinText}:</span>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t<span class=\"ui5-table-cell-display-inline\">\n\t\t\t\t\t\t\t\t\t\t<slot name={cellData.cell?._individualSlot}></slot>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{cellData.popinText &&\n\t\t\t\t\t\t\t\t\t\t<span class=\"ui5-table-row-popin-title\">{cellData.popinText}:</span>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t<slot name={cellData.cell?._individualSlot}></slot>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t<td class=\"ui5-table-row-navigated\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<div class=\"ui5-table-div-navigated\"></div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t)\n\t\t\t}\n\t\t</>\n\t);\n}\n"]}
|