@duetds/components 4.36.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/hydrate/index.js +1128 -977
- package/lib/cjs/duet-action-button.cjs.entry.js +163 -0
- package/lib/cjs/duet-alert.cjs.entry.js +1 -1
- package/lib/cjs/duet-badge.cjs.entry.js +1 -1
- package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
- package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
- package/lib/cjs/duet-button_2.cjs.entry.js +8 -4
- package/lib/cjs/duet-caption_4.cjs.entry.js +3 -3
- package/lib/cjs/duet-card.cjs.entry.js +3 -3
- package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
- package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
- package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
- package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
- package/lib/cjs/duet-date-picker.cjs.entry.js +4 -4
- package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
- package/lib/cjs/{duet-editable-table_4.cjs.entry.js → duet-editable-table_3.cjs.entry.js} +382 -337
- package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
- package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
- package/lib/cjs/duet-footer.cjs.entry.js +1 -1
- package/lib/cjs/duet-grid_2.cjs.entry.js +2 -2
- package/lib/cjs/duet-header_2.cjs.entry.js +3 -3
- package/lib/cjs/duet-hero.cjs.entry.js +1 -1
- package/lib/cjs/duet-icon.cjs.entry.js +3 -3
- package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-layout.cjs.entry.js +1 -1
- package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-modal.cjs.entry.js +2 -2
- package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
- package/lib/cjs/duet-pagination_2.cjs.entry.js +24 -14
- package/lib/cjs/duet-progress.cjs.entry.js +1 -1
- package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
- package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
- package/lib/cjs/duet-select.cjs.entry.js +1 -1
- package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
- package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
- package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
- package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
- package/lib/cjs/duet-tray.cjs.entry.js +2 -2
- package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
- package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
- package/lib/cjs/duet.cjs.js +2 -2
- package/lib/cjs/{focus-utils-dfd718e8.js → focus-utils-7a11c463.js} +1 -1
- package/lib/cjs/{index-4f342f1c.js → index-da5d5aaf.js} +1 -1
- package/lib/cjs/js-utils-be1d29ae.js +39 -0
- package/lib/cjs/loader.cjs.js +2 -2
- package/lib/cjs/{token-utils-f402e205.js → token-utils-ac8432d1.js} +1 -1
- package/lib/cjs/{tokens-8596cece.js → tokens-72efc7fd.js} +0 -0
- package/lib/cjs/{tokens.module-6b2df1c2.js → tokens.module-6afcc9c1.js} +0 -0
- package/lib/collection/collection-manifest.json +14 -11
- package/lib/collection/components/duet-action-button/duet-action-button.css +87 -0
- package/lib/collection/components/duet-action-button/duet-action-button.js +489 -0
- package/lib/collection/components/duet-button/duet-button.js +23 -1
- package/lib/collection/components/duet-date-picker/duet-date-picker.css +2 -57
- package/lib/collection/components/duet-date-picker/duet-date-picker.js +2 -6
- package/lib/collection/components/duet-editable-table/duet-editable-table-tabledata.js +3 -2
- package/lib/collection/components/duet-editable-table/duet-editable-table.css +20 -1
- package/lib/collection/components/duet-editable-table/duet-editable-table.js +331 -205
- package/lib/collection/components/duet-pagination/duet-pagination.css +3 -62
- package/lib/collection/components/duet-pagination/duet-pagination.js +49 -19
- package/lib/collection/components/duet-range-stepper/duet-range-stepper.css +4 -55
- package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -4
- package/lib/collection/components/duet-table/duet-table.css +42 -8
- package/lib/collection/components/duet-table/duet-table.js +11 -2
- package/lib/collection/components/duet-upload/duet-upload.css +25 -0
- package/lib/collection/components/duet-upload/duet-upload.js +270 -166
- package/lib/collection/components/duet-upload/upload-validators.js +1 -1
- package/lib/collection/utils/fixture-utils.js +3 -1
- package/lib/collection/utils/js-utils.js +36 -1
- package/lib/custom-elements-bundle/index.d.ts +6 -12
- package/lib/custom-elements-bundle/index.js +1142 -1001
- package/lib/duet/duet.esm.js +1 -1
- package/lib/duet/duet.js +1 -1
- package/lib/duet/{p-c18080ad.entry.js → p-00209700.entry.js} +1 -1
- package/lib/duet/{p-1a95aeb6.entry.js → p-01144f93.entry.js} +1 -1
- package/lib/duet/{p-c6df2ea8.system.entry.js → p-021bf3a2.system.entry.js} +1 -1
- package/lib/duet/{p-20cdb787.entry.js → p-04c6e557.entry.js} +1 -1
- package/lib/duet/{p-d945a4b0.system.entry.js → p-06fd151e.system.entry.js} +1 -1
- package/lib/duet/p-0988f548.entry.js +4 -0
- package/lib/duet/{p-05e2c680.system.entry.js → p-0e1130a0.system.entry.js} +1 -1
- package/lib/duet/{p-ebc56043.entry.js → p-0fedc1c6.entry.js} +1 -1
- package/lib/duet/{p-e8303364.system.entry.js → p-111b70c5.system.entry.js} +1 -1
- package/lib/duet/p-12825e2c.entry.js +4 -0
- package/lib/duet/p-166c09ce.system.entry.js +4 -0
- package/lib/duet/{p-24b9e806.entry.js → p-1be45fc6.entry.js} +1 -1
- package/lib/duet/{p-286d2ad2.system.entry.js → p-1da57e19.system.entry.js} +1 -1
- package/lib/duet/{p-7a32ceb3.system.entry.js → p-21c9efa8.system.entry.js} +1 -1
- package/lib/duet/p-2245c56b.entry.js +4 -0
- package/lib/duet/{p-e6a69eb8.js → p-2273fc88.js} +1 -1
- package/lib/duet/{p-79b9e7ef.system.entry.js → p-232762b3.system.entry.js} +1 -1
- package/lib/duet/{p-d21f19cc.system.js → p-251dc733.system.js} +1 -1
- package/lib/duet/{p-ddb6344c.system.js → p-268c0abb.system.js} +0 -0
- package/lib/duet/{p-ca0ee655.system.entry.js → p-2b6dac5c.system.entry.js} +1 -1
- package/lib/duet/{p-e8e35258.entry.js → p-35cdec32.entry.js} +1 -1
- package/lib/duet/{p-2361986e.entry.js → p-37bdfcc6.entry.js} +1 -1
- package/lib/duet/{p-740b5609.entry.js → p-3c7d81b0.entry.js} +1 -1
- package/lib/duet/{p-3900577d.system.entry.js → p-3f77090f.system.entry.js} +1 -1
- package/lib/duet/{p-ad3dad04.system.js → p-3fafe82f.system.js} +1 -1
- package/lib/duet/{p-164a7037.system.entry.js → p-4b221aa3.system.entry.js} +1 -1
- package/lib/duet/{p-210d739c.system.entry.js → p-4b7b1d2a.system.entry.js} +1 -1
- package/lib/duet/{p-3547d108.entry.js → p-4c282c1a.entry.js} +1 -1
- package/lib/duet/p-51a7c020.entry.js +4 -0
- package/lib/duet/{p-c8ec3b99.entry.js → p-5298f6fb.entry.js} +1 -1
- package/lib/duet/{p-cb445018.js → p-5746d88c.js} +1 -1
- package/lib/duet/{p-f6da56c8.entry.js → p-589c2f28.entry.js} +1 -1
- package/lib/duet/{p-d9716aec.system.entry.js → p-592315ca.system.entry.js} +1 -1
- package/lib/duet/{p-615bfc61.system.entry.js → p-59a0ec33.system.entry.js} +1 -1
- package/lib/duet/p-5e1f64cb.entry.js +4 -0
- package/lib/duet/{p-29255af8.entry.js → p-608645ed.entry.js} +1 -1
- package/lib/duet/{p-3d1b0105.entry.js → p-683f1962.entry.js} +1 -1
- package/lib/duet/{p-9ce0e625.entry.js → p-6932c6d8.entry.js} +1 -1
- package/lib/duet/{p-e35d8543.entry.js → p-6934cb1b.entry.js} +1 -1
- package/lib/duet/{p-211b4485.system.entry.js → p-6d209c01.system.entry.js} +1 -1
- package/lib/duet/{p-e47daca7.system.entry.js → p-70e5c803.system.entry.js} +1 -1
- package/lib/duet/p-74d267d3.system.entry.js +4 -0
- package/lib/duet/{p-c7fa7dcc.system.entry.js → p-766daacb.system.entry.js} +1 -1
- package/lib/duet/{p-4e2532c7.system.js → p-77acbfe4.system.js} +1 -1
- package/lib/duet/p-7953cff9.system.entry.js +4 -0
- package/lib/duet/{p-635dacce.system.entry.js → p-7e939e57.system.entry.js} +1 -1
- package/lib/duet/{p-fa99eaa4.system.js → p-812b0905.system.js} +0 -0
- package/lib/duet/{p-1db7a35b.entry.js → p-814ed07c.entry.js} +1 -1
- package/lib/duet/{p-5d9affcd.entry.js → p-82a0e535.entry.js} +1 -1
- package/lib/duet/{p-3bb702e3.system.entry.js → p-8338702d.system.entry.js} +2 -2
- package/lib/duet/{p-65c418f7.system.entry.js → p-85b4b5c0.system.entry.js} +1 -1
- package/lib/duet/{p-5376a9db.entry.js → p-86538787.entry.js} +1 -1
- package/lib/duet/{p-562ae946.entry.js → p-8f01f647.entry.js} +1 -1
- package/lib/duet/{p-85100e09.entry.js → p-8f6def3f.entry.js} +1 -1
- package/lib/duet/{p-03cf3ebf.entry.js → p-90464434.entry.js} +1 -1
- package/lib/duet/p-92639d0b.system.js +4 -0
- package/lib/duet/{p-12941aef.system.entry.js → p-97f95c02.system.entry.js} +1 -1
- package/lib/duet/{p-ffb5fb75.system.entry.js → p-982deb44.system.entry.js} +1 -1
- package/lib/duet/{p-fd2211ab.entry.js → p-9dc88c43.entry.js} +1 -1
- package/lib/duet/{p-fae71c1f.entry.js → p-a37e57d8.entry.js} +1 -1
- package/lib/duet/{p-c52f4de0.system.entry.js → p-a71510b8.system.entry.js} +1 -1
- package/lib/duet/p-a8eec12e.system.entry.js +4 -0
- package/lib/duet/{p-4fdbc6ff.system.entry.js → p-abcfbb23.system.entry.js} +1 -1
- package/lib/duet/{p-3c3536be.entry.js → p-ac2b38e6.entry.js} +1 -1
- package/lib/duet/{p-9df321b3.system.entry.js → p-ace2cd17.system.entry.js} +1 -1
- package/lib/duet/{p-946f34b4.system.entry.js → p-ad278903.system.entry.js} +1 -1
- package/lib/duet/{p-1c4721a1.entry.js → p-aea907ad.entry.js} +1 -1
- package/lib/duet/{p-e7dd8a15.system.entry.js → p-b432d318.system.entry.js} +1 -1
- package/lib/duet/{p-0366552b.system.entry.js → p-b4e75f80.system.entry.js} +1 -1
- package/lib/duet/{p-061835f3.system.entry.js → p-b8c8105c.system.entry.js} +1 -1
- package/lib/duet/{p-c2d32103.entry.js → p-ba7480e9.entry.js} +1 -1
- package/lib/duet/{p-83452e8f.entry.js → p-bc7dba26.entry.js} +1 -1
- package/lib/duet/{p-ff21f3c2.entry.js → p-bf06f635.entry.js} +1 -1
- package/lib/duet/{p-c514010b.system.entry.js → p-c6ccf366.system.entry.js} +1 -1
- package/lib/duet/{p-46ae601a.entry.js → p-cd1a767f.entry.js} +1 -1
- package/lib/duet/{p-89e42127.system.entry.js → p-d6d9b0c6.system.entry.js} +1 -1
- package/lib/duet/{p-8143f3de.js → p-d7bc0102.js} +0 -0
- package/lib/duet/{p-d24c6bc1.entry.js → p-d9e329c0.entry.js} +1 -1
- package/lib/duet/p-dbb4a588.js +4 -0
- package/lib/duet/{p-ae14591e.entry.js → p-dc67d989.entry.js} +1 -1
- package/lib/duet/{p-7f0e360d.entry.js → p-de9ff67c.entry.js} +1 -1
- package/lib/duet/{p-ded33218.system.entry.js → p-deb8ac4d.system.entry.js} +1 -1
- package/lib/duet/p-e2e0bc49.system.js +4 -0
- package/lib/duet/{p-8c53bc24.system.entry.js → p-e624799f.system.entry.js} +1 -1
- package/lib/duet/{p-eb892975.system.entry.js → p-e887d6db.system.entry.js} +1 -1
- package/lib/duet/{p-dcaecb5e.js → p-e9c3053b.js} +1 -1
- package/lib/duet/{p-493c6d2f.system.entry.js → p-ebed7c5e.system.entry.js} +1 -1
- package/lib/duet/{p-ad07f399.js → p-ed75c8b3.js} +0 -0
- package/lib/duet/{p-e5ce7aad.system.entry.js → p-f020852e.system.entry.js} +1 -1
- package/lib/duet/p-f2abd301.entry.js +4 -0
- package/lib/duet/{p-e7b53f4f.system.entry.js → p-f54d1487.system.entry.js} +1 -1
- package/lib/duet/{p-b6dd0933.entry.js → p-fc44a819.entry.js} +1 -1
- package/lib/duet/{p-22baf1f8.system.entry.js → p-fcdd24f8.system.entry.js} +1 -1
- package/lib/duet/{p-5b546064.entry.js → p-fed35d92.entry.js} +1 -1
- package/lib/duet/{p-ef275410.entry.js → p-ff308f4c.entry.js} +1 -1
- package/lib/esm/duet-action-button.entry.js +159 -0
- package/lib/esm/duet-alert.entry.js +1 -1
- package/lib/esm/duet-badge.entry.js +1 -1
- package/lib/esm/duet-breadcrumb.entry.js +1 -1
- package/lib/esm/duet-breadcrumbs.entry.js +1 -1
- package/lib/esm/duet-button_2.entry.js +8 -4
- package/lib/esm/duet-caption_4.entry.js +3 -3
- package/lib/esm/duet-card.entry.js +3 -3
- package/lib/esm/duet-checkbox.entry.js +1 -1
- package/lib/esm/duet-choice_2.entry.js +2 -2
- package/lib/esm/duet-collapsible.entry.js +2 -2
- package/lib/esm/duet-cookie-consent.entry.js +1 -1
- package/lib/esm/duet-date-picker.entry.js +4 -4
- package/lib/esm/duet-divider_2.entry.js +1 -1
- package/lib/esm/{duet-editable-table_4.entry.js → duet-editable-table_3.entry.js} +384 -338
- package/lib/esm/duet-empty-state.entry.js +1 -1
- package/lib/esm/duet-fieldset.entry.js +1 -1
- package/lib/esm/duet-footer.entry.js +1 -1
- package/lib/esm/duet-grid_2.entry.js +2 -2
- package/lib/esm/duet-header_2.entry.js +3 -3
- package/lib/esm/duet-hero.entry.js +1 -1
- package/lib/esm/duet-icon.entry.js +3 -3
- package/lib/esm/duet-input_2.entry.js +1 -1
- package/lib/esm/duet-layout.entry.js +1 -1
- package/lib/esm/duet-list_2.entry.js +1 -1
- package/lib/esm/duet-modal.entry.js +2 -2
- package/lib/esm/duet-notification_2.entry.js +1 -1
- package/lib/esm/duet-number-input.entry.js +1 -1
- package/lib/esm/duet-pagination_2.entry.js +24 -14
- package/lib/esm/duet-progress.entry.js +1 -1
- package/lib/esm/duet-radio_2.entry.js +1 -1
- package/lib/esm/duet-range-slider.entry.js +2 -2
- package/lib/esm/duet-scrollable_3.entry.js +1 -1
- package/lib/esm/duet-select.entry.js +1 -1
- package/lib/esm/duet-step_2.entry.js +1 -1
- package/lib/esm/duet-textarea.entry.js +1 -1
- package/lib/esm/duet-toggle.entry.js +1 -1
- package/lib/esm/duet-tooltip.entry.js +1 -1
- package/lib/esm/duet-tray.entry.js +2 -2
- package/lib/esm/duet-upload-aria-status.entry.js +1 -1
- package/lib/esm/duet-visually-hidden.entry.js +1 -1
- package/lib/esm/duet.js +2 -2
- package/lib/esm/{focus-utils-d4e80e1e.js → focus-utils-b0b3361f.js} +1 -1
- package/lib/esm/{index-4a5e7664.js → index-16f4da7f.js} +1 -1
- package/lib/esm/js-utils-52e0944c.js +36 -0
- package/lib/esm/loader.js +2 -2
- package/lib/esm/{token-utils-e9a69acf.js → token-utils-e9a0cb88.js} +1 -1
- package/lib/esm/{tokens-e110dc89.js → tokens-57d98824.js} +0 -0
- package/lib/esm/{tokens.module-49cbf963.js → tokens.module-a13e9683.js} +0 -0
- package/lib/esm-es5/duet-action-button.entry.js +4 -0
- package/lib/esm-es5/duet-alert.entry.js +1 -1
- package/lib/esm-es5/duet-badge.entry.js +1 -1
- package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
- package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
- package/lib/esm-es5/duet-button_2.entry.js +1 -1
- package/lib/esm-es5/duet-caption_4.entry.js +1 -1
- package/lib/esm-es5/duet-card.entry.js +1 -1
- package/lib/esm-es5/duet-checkbox.entry.js +1 -1
- package/lib/esm-es5/duet-choice_2.entry.js +1 -1
- package/lib/esm-es5/duet-collapsible.entry.js +1 -1
- package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
- package/lib/esm-es5/duet-date-picker.entry.js +2 -2
- package/lib/esm-es5/duet-divider_2.entry.js +1 -1
- package/lib/esm-es5/duet-editable-table_3.entry.js +4 -0
- package/lib/esm-es5/duet-empty-state.entry.js +1 -1
- package/lib/esm-es5/duet-fieldset.entry.js +1 -1
- package/lib/esm-es5/duet-footer.entry.js +1 -1
- package/lib/esm-es5/duet-grid_2.entry.js +1 -1
- package/lib/esm-es5/duet-header_2.entry.js +1 -1
- package/lib/esm-es5/duet-hero.entry.js +1 -1
- package/lib/esm-es5/duet-icon.entry.js +1 -1
- package/lib/esm-es5/duet-input_2.entry.js +1 -1
- package/lib/esm-es5/duet-layout.entry.js +1 -1
- package/lib/esm-es5/duet-list_2.entry.js +1 -1
- package/lib/esm-es5/duet-modal.entry.js +1 -1
- package/lib/esm-es5/duet-notification_2.entry.js +1 -1
- package/lib/esm-es5/duet-number-input.entry.js +1 -1
- package/lib/esm-es5/duet-pagination_2.entry.js +2 -2
- package/lib/esm-es5/duet-progress.entry.js +1 -1
- package/lib/esm-es5/duet-radio_2.entry.js +1 -1
- package/lib/esm-es5/duet-range-slider.entry.js +1 -1
- package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
- package/lib/esm-es5/duet-select.entry.js +1 -1
- package/lib/esm-es5/duet-step_2.entry.js +1 -1
- package/lib/esm-es5/duet-textarea.entry.js +1 -1
- package/lib/esm-es5/duet-toggle.entry.js +1 -1
- package/lib/esm-es5/duet-tooltip.entry.js +1 -1
- package/lib/esm-es5/duet-tray.entry.js +1 -1
- package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
- package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
- package/lib/esm-es5/duet.js +1 -1
- package/lib/esm-es5/focus-utils-b0b3361f.js +4 -0
- package/lib/esm-es5/{index-4a5e7664.js → index-16f4da7f.js} +1 -1
- package/lib/esm-es5/js-utils-52e0944c.js +4 -0
- package/lib/esm-es5/loader.js +1 -1
- package/lib/esm-es5/{token-utils-e9a69acf.js → token-utils-e9a0cb88.js} +1 -1
- package/lib/esm-es5/{tokens-e110dc89.js → tokens-57d98824.js} +0 -0
- package/lib/esm-es5/{tokens.module-49cbf963.js → tokens.module-a13e9683.js} +0 -0
- package/lib/html.html-data.json +168 -68
- package/lib/types/components/duet-action-button/duet-action-button.d.ts +112 -0
- package/lib/types/components/duet-button/duet-button.d.ts +4 -0
- package/lib/types/components/duet-editable-table/duet-editable-table-tabledata.d.ts +2 -2
- package/lib/types/components/duet-editable-table/duet-editable-table.d.ts +106 -48
- package/lib/types/components/duet-pagination/duet-pagination.d.ts +7 -2
- package/lib/types/components/duet-table/duet-table.d.ts +16 -0
- package/lib/types/components/duet-upload/duet-upload.d.ts +68 -58
- package/lib/types/components.d.ts +225 -149
- package/lib/types/utils/js-utils.d.ts +2 -0
- package/package.json +5 -6
- package/lib/cjs/duet-editable-table-button.cjs.entry.js +0 -96
- package/lib/cjs/js-utils-33a9dbe3.js +0 -16
- package/lib/collection/components/duet-editable-table/duet-editable-table-button.css +0 -32
- package/lib/collection/components/duet-editable-table/duet-editable-table-button.js +0 -225
- package/lib/collection/components/duet-editable-table/duet-editable-table-item.css +0 -36
- package/lib/collection/components/duet-editable-table/duet-editable-table-item.js +0 -225
- package/lib/duet/p-063fe96d.entry.js +0 -4
- package/lib/duet/p-2eeacf1a.entry.js +0 -4
- package/lib/duet/p-396f1bdc.entry.js +0 -4
- package/lib/duet/p-7b55f33e.entry.js +0 -4
- package/lib/duet/p-7e0e2209.system.entry.js +0 -4
- package/lib/duet/p-81867417.system.js +0 -4
- package/lib/duet/p-a3d7951c.system.entry.js +0 -4
- package/lib/duet/p-a619dff3.system.js +0 -4
- package/lib/duet/p-b25d3769.js +0 -4
- package/lib/duet/p-bf192d9f.entry.js +0 -4
- package/lib/duet/p-c76a68aa.system.entry.js +0 -4
- package/lib/duet/p-d12b3d21.system.entry.js +0 -4
- package/lib/duet/p-ef4962e8.entry.js +0 -4
- package/lib/esm/duet-editable-table-button.entry.js +0 -92
- package/lib/esm/js-utils-b69f17df.js +0 -14
- package/lib/esm-es5/duet-editable-table-button.entry.js +0 -4
- package/lib/esm-es5/duet-editable-table_4.entry.js +0 -4
- package/lib/esm-es5/focus-utils-d4e80e1e.js +0 -4
- package/lib/esm-es5/js-utils-b69f17df.js +0 -4
- package/lib/types/components/duet-editable-table/duet-editable-table-button.d.ts +0 -73
- package/lib/types/components/duet-editable-table/duet-editable-table-item.d.ts +0 -76
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { FunctionalComponent } from "../../stencil-public-runtime";
|
|
2
2
|
interface TableDataProps {
|
|
3
3
|
data: any;
|
|
4
|
-
groupId
|
|
5
|
-
alignment
|
|
4
|
+
groupId?: string;
|
|
5
|
+
alignment?: string;
|
|
6
6
|
}
|
|
7
7
|
export declare const TableData: FunctionalComponent<TableDataProps>;
|
|
8
8
|
export {};
|
|
@@ -1,94 +1,152 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EventEmitter } from "../../stencil-public-runtime";
|
|
2
|
+
import { DuetMargin, DuetTheme } from "../../common-types";
|
|
2
3
|
import { DuetLangObject } from "../../utils/language-utils";
|
|
3
4
|
import { ThemeableComponent } from "../../utils/themeable-component";
|
|
4
|
-
import {
|
|
5
|
+
import { DuetActionButtonIconSize } from "../duet-action-button/duet-action-button";
|
|
6
|
+
import { DuetTableBreakpoint, DuetTableStickyDistance, DuetTableVariant } from "../duet-table/duet-table";
|
|
5
7
|
export declare type DuetEditableTableGroupNames = {
|
|
6
8
|
id: string;
|
|
7
9
|
label: DuetLangObject;
|
|
8
10
|
actionLabel?: DuetLangObject;
|
|
9
11
|
}[];
|
|
10
|
-
export declare type
|
|
12
|
+
export declare type DuetTableToggleEvent = {
|
|
13
|
+
component: "duet-editable-table";
|
|
14
|
+
sort_order?: number;
|
|
15
|
+
direction: 1 | -1;
|
|
16
|
+
index: number;
|
|
17
|
+
key: string;
|
|
18
|
+
originalEvent: KeyboardEvent | MouseEvent;
|
|
19
|
+
};
|
|
20
|
+
export declare type DuetTableMenuEvent = {
|
|
21
|
+
component: "duet-editable-table";
|
|
22
|
+
originalEvent: KeyboardEvent | MouseEvent;
|
|
23
|
+
};
|
|
24
|
+
export declare type DuetEditableTableActions = {
|
|
25
|
+
icon: string;
|
|
26
|
+
color: string;
|
|
27
|
+
background: string;
|
|
28
|
+
size: DuetActionButtonIconSize;
|
|
29
|
+
name: string;
|
|
30
|
+
map?: string[];
|
|
31
|
+
label?: DuetLangObject;
|
|
32
|
+
}[];
|
|
33
|
+
export declare type DuetEditableTableItemData = {
|
|
34
|
+
uid: string;
|
|
35
|
+
item: any;
|
|
36
|
+
group: string;
|
|
37
|
+
};
|
|
38
|
+
export declare type DuetEditableTableColumn = {
|
|
39
|
+
direction: 1 | -1;
|
|
40
|
+
key: string;
|
|
41
|
+
index: number;
|
|
42
|
+
display?: boolean;
|
|
43
|
+
sort_order?: number;
|
|
44
|
+
label: DuetLangObject;
|
|
45
|
+
};
|
|
46
|
+
export declare type DuetEditableTableColumns = DuetEditableTableColumn[];
|
|
47
|
+
/**
|
|
48
|
+
|
|
49
|
+
* @slot caption: Inject things into the caption area of the table using this slot
|
|
50
|
+
* @slot thead_first: Inject things into the thead area of the table before column names using this slot
|
|
51
|
+
* @slot thead_last: Inject things into the thead area of the table after column names using this slot
|
|
52
|
+
* @slot tfoot: Inject things into the tfoot area of the table using this slot
|
|
53
|
+
*/
|
|
54
|
+
export declare type DuetEditableTableRows = Record<string, any>[];
|
|
11
55
|
export declare class DuetEditableTable implements ThemeableComponent {
|
|
12
|
-
private internalGroupArray;
|
|
13
|
-
private internalActionsArray;
|
|
14
|
-
private template;
|
|
15
56
|
/**
|
|
16
57
|
* Reference to host HTML element.
|
|
17
58
|
*/
|
|
18
59
|
element: HTMLElement;
|
|
19
60
|
/**
|
|
20
|
-
*
|
|
21
|
-
* @internal
|
|
61
|
+
* Duet-table: margin of the component.
|
|
22
62
|
*/
|
|
23
|
-
|
|
63
|
+
margin: DuetMargin;
|
|
24
64
|
/**
|
|
25
|
-
*
|
|
65
|
+
* Duet-table: Style variation of the table.
|
|
26
66
|
*/
|
|
27
|
-
|
|
67
|
+
variation: DuetTableVariant;
|
|
28
68
|
/**
|
|
29
|
-
*
|
|
69
|
+
* Duet-table: Controls whether the table has a sticky header.
|
|
70
|
+
* Sticky headers are not compatible with breakpoint="none-scrollable".
|
|
30
71
|
*/
|
|
31
|
-
|
|
72
|
+
sticky: boolean;
|
|
32
73
|
/**
|
|
33
|
-
*
|
|
74
|
+
* Duet-table: Adjust the distance from top of the viewport (in pixels) when the
|
|
75
|
+
* table header becomes sticky.
|
|
34
76
|
*/
|
|
35
|
-
|
|
77
|
+
stickyDistance: DuetTableStickyDistance;
|
|
36
78
|
/**
|
|
37
|
-
*
|
|
79
|
+
* Duet-table: By default the table is responsive - it will be flattened at narrow viewport widths.
|
|
80
|
+
* This prop controls the breakpoint at which the table should be rendered as a _regular_ table.
|
|
81
|
+
* Set to "none" to disable the responsive functionality.
|
|
82
|
+
* Set to "none-scrollable" to disable responsive functionality _and_ allow horizontal scrolling -
|
|
83
|
+
* this is useful for comparison tables where it's important to maintain column and row layout.
|
|
38
84
|
*/
|
|
39
|
-
|
|
85
|
+
breakpoint: DuetTableBreakpoint;
|
|
40
86
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
87
|
+
* Define actions for all items in a table
|
|
88
|
+
* An alternative to inline HTML table.
|
|
89
|
+
* required for Sortable tables
|
|
90
|
+
* @default undefined
|
|
44
91
|
*/
|
|
45
|
-
|
|
92
|
+
actions: DuetEditableTableActions;
|
|
46
93
|
/**
|
|
47
|
-
*
|
|
94
|
+
* Define columns for a table
|
|
95
|
+
* An alternative to inline HTML table.
|
|
96
|
+
* required for Sortable tables
|
|
48
97
|
* @default undefined
|
|
49
|
-
* @example [{
|
|
50
|
-
variation: "default",
|
|
51
|
-
icon: "action-edit-2",
|
|
52
|
-
id: "edit",
|
|
53
|
-
map: ["success"],
|
|
54
|
-
label: {
|
|
55
|
-
fi: " Label",
|
|
56
|
-
en: " Label",
|
|
57
|
-
sv: " Label",
|
|
58
|
-
}
|
|
59
|
-
}]
|
|
60
98
|
*/
|
|
61
|
-
|
|
99
|
+
columns: DuetEditableTableColumns;
|
|
62
100
|
/**
|
|
63
|
-
*
|
|
101
|
+
* Define rows for a table
|
|
102
|
+
* An alternative to inline HTML table.
|
|
103
|
+
* required for Sortable tables
|
|
104
|
+
* @default undefined
|
|
64
105
|
*/
|
|
65
|
-
|
|
106
|
+
rows: DuetEditableTableRows;
|
|
66
107
|
/**
|
|
67
|
-
*
|
|
108
|
+
* Controls whether the table is sortable by headers
|
|
68
109
|
*/
|
|
69
|
-
|
|
110
|
+
sortable: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Optional id that get passed to the table and used to setup ::parts
|
|
113
|
+
*/
|
|
114
|
+
groupId: string;
|
|
70
115
|
/**
|
|
71
116
|
* Theme of the table.
|
|
72
117
|
*/
|
|
73
118
|
theme: DuetTheme;
|
|
74
119
|
/**
|
|
75
|
-
*
|
|
120
|
+
* Exposes the aria role for optimizing accessibility.
|
|
76
121
|
*/
|
|
77
|
-
|
|
122
|
+
accessibleRole: string;
|
|
123
|
+
/**
|
|
124
|
+
* Event emitted when table is sortable and a header item is clicked/enter is pressed
|
|
125
|
+
*/
|
|
126
|
+
duetTableToggle: EventEmitter<DuetTableToggleEvent>;
|
|
78
127
|
/**
|
|
79
|
-
*
|
|
80
|
-
* when called the method will rerender the entire tabular structure.
|
|
128
|
+
* Event emitted when table is sortable and a header item is clicked/enter is pressed
|
|
81
129
|
*/
|
|
82
|
-
|
|
130
|
+
duetMenuClick: EventEmitter<DuetTableMenuEvent>;
|
|
131
|
+
private sortableDefaultLabel;
|
|
132
|
+
private actionColumnLabel;
|
|
133
|
+
/**
|
|
134
|
+
* Component lifecycle events.
|
|
135
|
+
*/
|
|
136
|
+
componentWillLoad(): void;
|
|
83
137
|
/**
|
|
84
138
|
* Private methods.
|
|
85
139
|
*/
|
|
86
|
-
private
|
|
140
|
+
private toggleColumn;
|
|
141
|
+
private handleKeyDown;
|
|
142
|
+
private createLabel;
|
|
143
|
+
private getSortedColumns;
|
|
144
|
+
private getRowSortOrder;
|
|
145
|
+
private renderTableHeader;
|
|
146
|
+
private renderActions;
|
|
147
|
+
private renderTableBody;
|
|
87
148
|
/**
|
|
88
|
-
*
|
|
149
|
+
* Render Methods
|
|
89
150
|
*/
|
|
90
|
-
private getTemplate;
|
|
91
|
-
private getItemData;
|
|
92
|
-
filterMap: (needle: any) => [any, DuetEditableTableItemData][];
|
|
93
151
|
render(): any;
|
|
94
152
|
}
|
|
@@ -11,6 +11,7 @@ export declare type DuetPaginationPageEvent = {
|
|
|
11
11
|
to: number;
|
|
12
12
|
type: "page" | "jump";
|
|
13
13
|
};
|
|
14
|
+
export declare type DuetPaginationVariation = "default" | "compact";
|
|
14
15
|
export declare class DuetPagination implements ThemeableComponent {
|
|
15
16
|
private listId;
|
|
16
17
|
private nativeNav;
|
|
@@ -37,14 +38,18 @@ export declare class DuetPagination implements ThemeableComponent {
|
|
|
37
38
|
* Characters to use for the jump buttons.
|
|
38
39
|
*/
|
|
39
40
|
jumpString: string;
|
|
41
|
+
/**
|
|
42
|
+
* Variation of the paginator (compact and default supported)
|
|
43
|
+
*/
|
|
44
|
+
variation: DuetPaginationVariation;
|
|
40
45
|
/**
|
|
41
46
|
* Default pagination labels
|
|
42
47
|
*/
|
|
43
|
-
|
|
48
|
+
accessibleLabelsDefaults: DuetLangObject;
|
|
44
49
|
/**
|
|
45
50
|
* Default pagination labels
|
|
46
51
|
*/
|
|
47
|
-
|
|
52
|
+
accessibleLabels: Record<string, string>;
|
|
48
53
|
/**
|
|
49
54
|
* The size of the take, when paginating.
|
|
50
55
|
*/
|
|
@@ -3,6 +3,14 @@ import { ThemeableComponent } from "../../utils/themeable-component";
|
|
|
3
3
|
export declare type DuetTableBreakpoint = keyof typeof breakpointToToken;
|
|
4
4
|
export declare type DuetTableVariant = "striped" | "plain" | "fixed";
|
|
5
5
|
export declare type DuetTableStickyDistance = "with-links" | "without-links" | "none";
|
|
6
|
+
export declare type DuetTableToggleEvent = {
|
|
7
|
+
component: "duet-table";
|
|
8
|
+
sort_order?: number;
|
|
9
|
+
direction: 1 | -1;
|
|
10
|
+
index: number;
|
|
11
|
+
key: string;
|
|
12
|
+
originalEvent: KeyboardEvent | MouseEvent;
|
|
13
|
+
};
|
|
6
14
|
declare const breakpointToToken: {
|
|
7
15
|
none: string;
|
|
8
16
|
"none-scrollable": string;
|
|
@@ -13,6 +21,11 @@ declare const breakpointToToken: {
|
|
|
13
21
|
"xx-large": string;
|
|
14
22
|
"xxx-large": string;
|
|
15
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* @slot dot-menu- If this slot is populated - the content will be displayed together with a ... type menu to the far right in the tsble header
|
|
26
|
+
* @slot header - Header slot for the table
|
|
27
|
+
* @slot footer - Footer slot for the table
|
|
28
|
+
*/
|
|
16
29
|
export declare class DuetTable implements ThemeableComponent {
|
|
17
30
|
private mq;
|
|
18
31
|
private observer;
|
|
@@ -59,6 +72,9 @@ export declare class DuetTable implements ThemeableComponent {
|
|
|
59
72
|
componentWillLoad(): void;
|
|
60
73
|
componentDidLoad(): void;
|
|
61
74
|
disconnectedCallback(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Local methods.
|
|
77
|
+
*/
|
|
62
78
|
private copyHeadingsToCells;
|
|
63
79
|
render(): any;
|
|
64
80
|
}
|
|
@@ -3,8 +3,7 @@ import { DuetMargin, DuetTheme } from "../../common-types";
|
|
|
3
3
|
import { FormComponent } from "../../utils/form-components";
|
|
4
4
|
import { DuetLangObject } from "../../utils/language-utils";
|
|
5
5
|
import { ThemeableComponent } from "../../utils/themeable-component";
|
|
6
|
-
import {
|
|
7
|
-
import { DuetEditableTableActions } from "../duet-editable-table/duet-editable-table-item";
|
|
6
|
+
import { DuetEditableTableActions } from "../duet-editable-table/duet-editable-table";
|
|
8
7
|
import { StatusMessage } from "../duet-upload-aria-status/duet-upload-aria-status";
|
|
9
8
|
import { DuetUploadErrorCode } from "./errorcodes.utils";
|
|
10
9
|
import { DuetXhrRequest } from "./xhr.helpers";
|
|
@@ -33,6 +32,11 @@ export declare type DuetFileListItem = {
|
|
|
33
32
|
export interface StringMap {
|
|
34
33
|
[key: string]: any;
|
|
35
34
|
}
|
|
35
|
+
export declare type DuetUploadTableGroupName = {
|
|
36
|
+
id: string;
|
|
37
|
+
label: DuetLangObject;
|
|
38
|
+
actionLabel?: DuetLangObject;
|
|
39
|
+
};
|
|
36
40
|
/**
|
|
37
41
|
* @slot header - named slot - to place content after description / caption
|
|
38
42
|
* @slot fileheader - named slot - to place content above "filelist" (only displayed when "filelist" contains items)
|
|
@@ -42,23 +46,6 @@ export interface StringMap {
|
|
|
42
46
|
* @part ${this.identifier}-error-notification : duet-upload-error-notification - named part - can be used to style any error notifications occurring internally
|
|
43
47
|
*/
|
|
44
48
|
export declare class DuetUpload implements ThemeableComponent, FormComponent {
|
|
45
|
-
/**
|
|
46
|
-
* Own Properties
|
|
47
|
-
*/
|
|
48
|
-
private buttonId;
|
|
49
|
-
private labelId;
|
|
50
|
-
private uploadId;
|
|
51
|
-
private editableTableId;
|
|
52
|
-
private filesInProgress;
|
|
53
|
-
private fileMaxReached;
|
|
54
|
-
private bytesMaxReached;
|
|
55
|
-
private internalStatusMessageLabel;
|
|
56
|
-
private metaData;
|
|
57
|
-
private nativeInput?;
|
|
58
|
-
/**
|
|
59
|
-
* Properties
|
|
60
|
-
*/
|
|
61
|
-
private DefaultGroups;
|
|
62
49
|
/**
|
|
63
50
|
* Reference to host HTML element.
|
|
64
51
|
*/
|
|
@@ -97,7 +84,7 @@ export declare class DuetUpload implements ThemeableComponent, FormComponent {
|
|
|
97
84
|
/**
|
|
98
85
|
* Default actions added to the internally used duet-editable-table
|
|
99
86
|
*/
|
|
100
|
-
actions: DuetEditableTableActions
|
|
87
|
+
actions: DuetEditableTableActions;
|
|
101
88
|
/**
|
|
102
89
|
* Endpoint URI that is capable of receiving the files
|
|
103
90
|
*/
|
|
@@ -192,12 +179,6 @@ export declare class DuetUpload implements ThemeableComponent, FormComponent {
|
|
|
192
179
|
* browser from displaying its own validation errors.
|
|
193
180
|
*/
|
|
194
181
|
required: boolean;
|
|
195
|
-
/**
|
|
196
|
-
* Array of group names that you want the editable table to use to display files
|
|
197
|
-
* @required
|
|
198
|
-
* @example [{ id: "success", label: {fi: "Onnistunut", en: "Success", sv: "Alt klart", }}]
|
|
199
|
-
*/
|
|
200
|
-
groups: DuetEditableTableGroupNames | string;
|
|
201
182
|
/**
|
|
202
183
|
* Key used to set vertical alignment of action buttons
|
|
203
184
|
*/
|
|
@@ -214,7 +195,6 @@ export declare class DuetUpload implements ThemeableComponent, FormComponent {
|
|
|
214
195
|
* Property to read if the internally used editable-table contains errors or not
|
|
215
196
|
*/
|
|
216
197
|
valid: boolean;
|
|
217
|
-
watchValidHandler(newValue: boolean, oldValue: boolean): void;
|
|
218
198
|
/**
|
|
219
199
|
* Property to change labelDefaults defaults on the component.
|
|
220
200
|
* normally you would handle these strings on an application level and override @label when needed
|
|
@@ -337,11 +317,66 @@ export declare class DuetUpload implements ThemeableComponent, FormComponent {
|
|
|
337
317
|
* Emitted when the user clicks the upload button
|
|
338
318
|
*/
|
|
339
319
|
duetUpload: EventEmitter<DuetUploadEvent>;
|
|
320
|
+
/**
|
|
321
|
+
* Own Properties
|
|
322
|
+
*/
|
|
323
|
+
private buttonId;
|
|
324
|
+
private labelId;
|
|
325
|
+
private uploadId;
|
|
326
|
+
private filesInProgress;
|
|
327
|
+
private fileMaxReached;
|
|
328
|
+
private bytesMaxReached;
|
|
329
|
+
private internalStatusMessageLabel;
|
|
330
|
+
private metaData;
|
|
331
|
+
private nativeInput?;
|
|
332
|
+
/**
|
|
333
|
+
* Properties
|
|
334
|
+
*/
|
|
335
|
+
private DefaultGroups;
|
|
336
|
+
/**
|
|
337
|
+
* Array of group names that you want the editable table to use to display files
|
|
338
|
+
* @required
|
|
339
|
+
* @example [{ id: "success", label: {fi: "Onnistunut", en: "Success", sv: "Alt klart", }}]
|
|
340
|
+
*/
|
|
341
|
+
groups: DuetUploadTableGroupName[];
|
|
342
|
+
private kick;
|
|
343
|
+
watchValidHandler(newValue: boolean, oldValue: boolean): void;
|
|
340
344
|
/**
|
|
341
345
|
* Component lifecycle events.
|
|
342
346
|
*/
|
|
343
347
|
componentWillLoad(): void;
|
|
344
348
|
componentWillRender(): void;
|
|
349
|
+
/**
|
|
350
|
+
* Sets focus on the specified `duet-input`. Use this method instead of the global
|
|
351
|
+
* `input.focus()`.
|
|
352
|
+
*/
|
|
353
|
+
setFocus(options?: FocusOptions): Promise<void>;
|
|
354
|
+
/**
|
|
355
|
+
* Method for invoking the upload sequence
|
|
356
|
+
*/
|
|
357
|
+
upload(metaData?: any | undefined): Promise<void>;
|
|
358
|
+
/**
|
|
359
|
+
* Method for forcing a render of the upload list, element.files can be changed externally
|
|
360
|
+
* But it will only rerender on a new Map or a top Level change - this can be used to update
|
|
361
|
+
* the tabular data if the automatic re-render is no sufficient
|
|
362
|
+
*/
|
|
363
|
+
refresh(): Promise<void>;
|
|
364
|
+
/**
|
|
365
|
+
* Get list of files, divided in errors and valid sections
|
|
366
|
+
*/
|
|
367
|
+
getFiles(): Promise<false | {
|
|
368
|
+
valid: any[];
|
|
369
|
+
invalid: any[];
|
|
370
|
+
}>;
|
|
371
|
+
/**
|
|
372
|
+
* Convenience method for updating the value of a key:value inside an item in the files attribute
|
|
373
|
+
*/
|
|
374
|
+
updateValue(item: string, key: string, value: any): Promise<void>;
|
|
375
|
+
/**
|
|
376
|
+
* render() function
|
|
377
|
+
* Always the last one in the class.
|
|
378
|
+
*/
|
|
379
|
+
render(): any;
|
|
345
380
|
/**
|
|
346
381
|
* Private functions
|
|
347
382
|
*/
|
|
@@ -349,8 +384,6 @@ export declare class DuetUpload implements ThemeableComponent, FormComponent {
|
|
|
349
384
|
private verifyValidity;
|
|
350
385
|
private getGroupFromItemData;
|
|
351
386
|
private getItemHTMLFromItemData;
|
|
352
|
-
private convertToDuetEditableTableItems;
|
|
353
|
-
private kick;
|
|
354
387
|
private genHashName;
|
|
355
388
|
private updateValueInMap;
|
|
356
389
|
private updateProgress;
|
|
@@ -376,6 +409,7 @@ export declare class DuetUpload implements ThemeableComponent, FormComponent {
|
|
|
376
409
|
* Component event handling.
|
|
377
410
|
*/
|
|
378
411
|
private onChange;
|
|
412
|
+
private getItemFromUID;
|
|
379
413
|
private onDelete;
|
|
380
414
|
private onCancel;
|
|
381
415
|
private onUpload;
|
|
@@ -384,34 +418,10 @@ export declare class DuetUpload implements ThemeableComponent, FormComponent {
|
|
|
384
418
|
private onFocus;
|
|
385
419
|
private onDone;
|
|
386
420
|
/**
|
|
387
|
-
*
|
|
388
|
-
* `input.focus()`.
|
|
421
|
+
* @description This functions return sorted map items byg condition which are:
|
|
389
422
|
*/
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
upload(metaData?: any | undefined): Promise<void>;
|
|
395
|
-
/**
|
|
396
|
-
* Method for forcing a render of the upload list, element.files can be changed externally
|
|
397
|
-
* But it will only rerender on a new Map or a top Level change - this can be used to update
|
|
398
|
-
* the tabular data if the automatic re-render is no sufficient
|
|
399
|
-
*/
|
|
400
|
-
refresh(): Promise<void>;
|
|
401
|
-
/**
|
|
402
|
-
* Get list of files, divided in errors and valid sections
|
|
403
|
-
*/
|
|
404
|
-
getFiles(): Promise<false | {
|
|
405
|
-
valid: any[];
|
|
406
|
-
invalid: any[];
|
|
407
|
-
}>;
|
|
408
|
-
/**
|
|
409
|
-
* Convenience method for updating the value of a key:value inside an item in the files attribute
|
|
410
|
-
*/
|
|
411
|
-
updateValue(item: string, key: string, value: any): Promise<void>;
|
|
412
|
-
/**
|
|
413
|
-
* render() function
|
|
414
|
-
* Always the last one in the class.
|
|
415
|
-
*/
|
|
416
|
-
render(): any;
|
|
423
|
+
private filterMap;
|
|
424
|
+
private getColumns;
|
|
425
|
+
private getActions;
|
|
426
|
+
private renderEditableTableGroups;
|
|
417
427
|
}
|