@verbb/plugin-kit-web 2.0.13 → 2.0.14
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/CHANGELOG.md +7 -0
- package/dist/chunks/{pk-editable-table-DQZQ6JLb.js → pk-editable-table-DMHGqZlQ.js} +193 -5
- package/dist/chunks/pk-editable-table-DMHGqZlQ.js.map +1 -0
- package/dist/chunks/{register-C9xZttKy.js → register-DeqrQzRS.js} +2 -2
- package/dist/chunks/{register-C9xZttKy.js.map → register-DeqrQzRS.js.map} +1 -1
- package/dist/components/editable-table/editable-table-model.d.ts +16 -0
- package/dist/components/editable-table/editable-table-model.d.ts.map +1 -1
- package/dist/components/editable-table/pk-editable-table.d.ts +25 -0
- package/dist/components/editable-table/pk-editable-table.d.ts.map +1 -1
- package/dist/components/editable-table/pk-editable-table.js +1 -1
- package/dist/components/editable-table.js +1 -1
- package/dist/index.js +2 -2
- package/dist/register.js +2 -2
- package/dist-loader/components/editable-table/editable-table.js +192 -4
- package/package.json +7 -7
- package/dist/chunks/pk-editable-table-DQZQ6JLb.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-C9xZttKy.js","names":[],"sources":["../../src/register.ts"],"sourcesContent":["// Full-library path: every curated glyph is available to `<pk-icon icon=\"…\">`.\nimport '@verbb/plugin-kit-icons/all.js';\n\nimport { PkButton } from './components/button/pk-button.js';\nimport { PkButtonGroup } from './components/button-group/pk-button-group.js';\nimport { PkButtonGroupSeparator } from './components/button-group/pk-button-group-separator.js';\nimport { PkButtonGroupText } from './components/button-group/pk-button-group-text.js';\nimport { PkCheckbox } from './components/checkbox/pk-checkbox.js';\nimport { PkCheckboxSelect } from './components/checkbox-select/pk-checkbox-select.js';\nimport { PkCodeEditor } from './components/code-editor/pk-code-editor.js';\nimport { PkColorInput } from './components/color-input/pk-color-input.js';\nimport { PkCalendar } from './components/calendar/pk-calendar.js';\nimport { PkDatePicker } from './components/date-picker/pk-date-picker.js';\nimport { PkCombobox } from './components/combobox/pk-combobox.js';\nimport { PkConnect } from './components/connect/pk-connect.js';\nimport { PkConnectOauth } from './components/connect/pk-connect-oauth.js';\nimport { PkCopyButton } from './components/copy-button/pk-copy-button.js';\nimport { PkDialog } from './components/dialog/pk-dialog.js';\nimport { PkDropdownLabel } from './components/dropdown-menu/pk-dropdown-label.js';\nimport { PkDropdownMenu } from './components/dropdown-menu/pk-dropdown-menu.js';\nimport { PkDropdownItem } from './components/dropdown-menu/pk-dropdown-item.js';\nimport { PkDropdownSeparator } from './components/dropdown-menu/pk-dropdown-separator.js';\nimport { PkEditableTable } from './components/editable-table/pk-editable-table.js';\nimport { PkField } from './components/field/pk-field.js';\nimport { PkIcon } from './components/icon/pk-icon.js';\nimport { PkInput } from './components/input/pk-input.js';\nimport { PkInputGroup } from './components/input-group/pk-input-group.js';\nimport { PkInputGroupAddon } from './components/input-group/pk-input-group-addon.js';\nimport { PkInputGroupButton } from './components/input-group/pk-input-group-button.js';\nimport { PkInputGroupInput } from './components/input-group/pk-input-group-input.js';\nimport { PkInputGroupText } from './components/input-group/pk-input-group-text.js';\nimport { PkInputGroupTextarea } from './components/input-group/pk-input-group-textarea.js';\nimport { PkLightswitch } from './components/lightswitch/pk-lightswitch.js';\nimport { PkOption } from './components/select/pk-option.js';\nimport { PkOptionGroup } from './components/select/pk-option-group.js';\nimport { PkPopover } from './components/popover/pk-popover.js';\nimport { PkPopup } from './components/popup/pk-popup.js';\nimport { PkRadio } from './components/radio-group/pk-radio.js';\nimport { PkRadioGroup } from './components/radio-group/pk-radio-group.js';\nimport { PkScrollArea } from './components/scroll-area/pk-scroll-area.js';\nimport { PkSelect } from './components/select/pk-select.js';\nimport { PkSeparator } from './components/separator/pk-separator.js';\nimport { PkSpinner } from './components/spinner/pk-spinner.js';\nimport { PkStatus } from './components/status/pk-status.js';\nimport { PkTab } from './components/tabs/pk-tab.js';\nimport { PkTabHeading } from './components/tabs/pk-tab-heading.js';\nimport { PkTabPanel } from './components/tabs/pk-tab-panel.js';\nimport { PkTabs } from './components/tabs/pk-tabs.js';\nimport { PkTextarea } from './components/textarea/pk-textarea.js';\nimport { PkTiptapContent } from './components/tiptap/pk-tiptap-content.js';\nimport { PkTiptapEditor } from './components/tiptap/pk-tiptap-editor.js';\nimport { PkTiptapInput } from './components/tiptap/pk-tiptap-input.js';\nimport { PkTimePicker } from './components/time-picker/pk-time-picker.js';\nimport { PkToggle } from './components/toggle/pk-toggle.js';\nimport { PkToggleGroup } from './components/toggle-group/pk-toggle-group.js';\nimport { PkTooltip } from './components/tooltip/pk-tooltip.js';\n\nexport * from './components/button/index.js';\nexport * from './components/button-group/index.js';\nexport * from './components/checkbox/index.js';\nexport * from './components/checkbox-select/index.js';\nexport * from './components/input/index.js';\nexport * from './components/input-group/index.js';\nexport * from './components/textarea/index.js';\nexport * from './components/separator/index.js';\nexport * from './components/status/index.js';\nexport * from './components/toggle/index.js';\nexport * from './components/toggle-group/index.js';\nexport * from './components/lightswitch/index.js';\nexport * from './components/connect/index.js';\nexport * from './components/copy-button/index.js';\nexport * from './components/dialog/index.js';\nexport * from './components/dropdown-menu/index.js';\nexport * from './components/field/index.js';\nexport * from './components/popover/index.js';\nexport * from './components/popup/index.js';\nexport * from './components/tooltip/index.js';\nexport * from './components/radio-group/index.js';\nexport * from './components/tabs/index.js';\nexport * from './components/scroll-area/index.js';\nexport * from './components/color-input/index.js';\nexport * from './components/code-editor/index.js';\nexport * from './components/calendar/index.js';\nexport * from './components/date-picker/index.js';\nexport * from './components/select/index.js';\nexport * from './components/spinner/index.js';\nexport * from './components/time-picker/index.js';\nexport * from './components/tiptap/index.js';\n\nexport {\n PkButton,\n PkButtonGroup,\n PkButtonGroupSeparator,\n PkButtonGroupText,\n PkCheckbox,\n PkCheckboxSelect,\n PkColorInput,\n PkCodeEditor,\n PkCalendar,\n PkDatePicker,\n PkCombobox,\n PkConnect,\n PkConnectOauth,\n PkCopyButton,\n PkDialog,\n PkDropdownMenu,\n PkDropdownItem,\n PkDropdownSeparator,\n PkEditableTable,\n PkField,\n PkIcon,\n PkInput,\n PkInputGroup,\n PkInputGroupAddon,\n PkInputGroupButton,\n PkInputGroupInput,\n PkInputGroupText,\n PkInputGroupTextarea,\n PkLightswitch,\n PkOption,\n PkOptionGroup,\n PkPopover,\n PkPopup,\n PkRadio,\n PkRadioGroup,\n PkScrollArea,\n PkSelect,\n PkSeparator,\n PkSpinner,\n PkStatus,\n PkTab,\n PkTabPanel,\n PkTabs,\n PkTextarea,\n PkTimePicker,\n PkTiptapContent,\n PkTiptapEditor,\n PkTiptapInput,\n PkToggle,\n PkToggleGroup,\n PkTooltip,\n};\n\nconst COMPONENTS: [string, CustomElementConstructor][] = [\n ['pk-spinner', PkSpinner],\n ['pk-icon', PkIcon],\n ['pk-button', PkButton],\n ['pk-checkbox', PkCheckbox],\n ['pk-checkbox-select', PkCheckboxSelect],\n ['pk-color-input', PkColorInput],\n ['pk-code-editor', PkCodeEditor],\n ['pk-input', PkInput],\n ['pk-input-group', PkInputGroup],\n ['pk-input-group-addon', PkInputGroupAddon],\n ['pk-input-group-button', PkInputGroupButton],\n ['pk-input-group-input', PkInputGroupInput],\n ['pk-input-group-text', PkInputGroupText],\n ['pk-input-group-textarea', PkInputGroupTextarea],\n ['pk-textarea', PkTextarea],\n ['pk-tiptap-editor', PkTiptapEditor],\n ['pk-tiptap-input', PkTiptapInput],\n ['pk-tiptap-content', PkTiptapContent],\n ['pk-field', PkField],\n ['pk-separator', PkSeparator],\n ['pk-status', PkStatus],\n ['pk-toggle', PkToggle],\n ['pk-toggle-group', PkToggleGroup],\n ['pk-lightswitch', PkLightswitch],\n ['pk-button-group', PkButtonGroup],\n ['pk-button-group-separator', PkButtonGroupSeparator],\n ['pk-button-group-text', PkButtonGroupText],\n ['pk-dialog', PkDialog],\n ['pk-popup', PkPopup],\n ['pk-dropdown-label', PkDropdownLabel],\n ['pk-dropdown-item', PkDropdownItem],\n ['pk-dropdown-separator', PkDropdownSeparator],\n ['pk-dropdown-menu', PkDropdownMenu],\n ['pk-editable-table', PkEditableTable],\n ['pk-popover', PkPopover],\n ['pk-tooltip', PkTooltip],\n ['pk-radio', PkRadio],\n ['pk-radio-group', PkRadioGroup],\n ['pk-tab', PkTab],\n ['pk-tab-heading', PkTabHeading],\n ['pk-tab-panel', PkTabPanel],\n ['pk-tabs', PkTabs],\n ['pk-scroll-area', PkScrollArea],\n ['pk-option', PkOption],\n ['pk-option-group', PkOptionGroup],\n ['pk-select', PkSelect],\n ['pk-calendar', PkCalendar],\n ['pk-date-picker', PkDatePicker],\n ['pk-combobox', PkCombobox],\n ['pk-connect', PkConnect],\n ['pk-connect-oauth', PkConnectOauth],\n ['pk-time-picker', PkTimePicker],\n ['pk-copy-button', PkCopyButton],\n];\n\n/** Side-effect registration for all Plugin Kit web components. */\nexport function registerAll(): void {\n for (const [tag, ctor] of COMPONENTS) {\n if (!customElements.get(tag)) {\n customElements.define(tag, ctor);\n }\n }\n}\n\nexport {\n createRegisterComponents,\n type PkComponentTag,\n} from './register-components.js';\n\nexport { BUNDLER_TAG_IMPORT_PATHS as componentImportPaths } from './component-registry.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+IA,IAAM,aAAmD;CACrD,CAAC,cAAc,UAAU;CACzB,CAAC,WAAW,OAAO;CACnB,CAAC,aAAa,SAAS;CACvB,CAAC,eAAe,WAAW;CAC3B,CAAC,sBAAsB,iBAAiB;CACxC,CAAC,kBAAkB,aAAa;CAChC,CAAC,kBAAkB,aAAa;CAChC,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,yBAAyB,mBAAmB;CAC7C,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,uBAAuB,iBAAiB;CACzC,CAAC,2BAA2B,qBAAqB;CACjD,CAAC,eAAe,WAAW;CAC3B,CAAC,oBAAoB,eAAe;CACpC,CAAC,mBAAmB,cAAc;CAClC,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,YAAY,QAAQ;CACrB,CAAC,gBAAgB,YAAY;CAC7B,CAAC,aAAa,SAAS;CACvB,CAAC,aAAa,SAAS;CACvB,CAAC,mBAAmB,cAAc;CAClC,CAAC,kBAAkB,cAAc;CACjC,CAAC,mBAAmB,cAAc;CAClC,CAAC,6BAA6B,uBAAuB;CACrD,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,aAAa,SAAS;CACvB,CAAC,YAAY,QAAQ;CACrB,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,oBAAoB,eAAe;CACpC,CAAC,yBAAyB,oBAAoB;CAC9C,CAAC,oBAAoB,eAAe;CACpC,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,cAAc,UAAU;CACzB,CAAC,cAAc,UAAU;CACzB,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,UAAU,MAAM;CACjB,CAAC,kBAAkB,aAAa;CAChC,CAAC,gBAAgB,WAAW;CAC5B,CAAC,WAAW,OAAO;CACnB,CAAC,kBAAkB,aAAa;CAChC,CAAC,aAAa,SAAS;CACvB,CAAC,mBAAmB,cAAc;CAClC,CAAC,aAAa,SAAS;CACvB,CAAC,eAAe,WAAW;CAC3B,CAAC,kBAAkB,aAAa;CAChC,CAAC,eAAe,WAAW;CAC3B,CAAC,cAAc,UAAU;CACzB,CAAC,oBAAoB,eAAe;CACpC,CAAC,kBAAkB,aAAa;CAChC,CAAC,kBAAkB,aAAa;CACnC;;AAGD,SAAgB,cAAoB;AAChC,MAAK,MAAM,CAAC,KAAK,SAAS,WACtB,KAAI,CAAC,eAAe,IAAI,IAAI,CACxB,gBAAe,OAAO,KAAK,KAAK"}
|
|
1
|
+
{"version":3,"file":"register-DeqrQzRS.js","names":[],"sources":["../../src/register.ts"],"sourcesContent":["// Full-library path: every curated glyph is available to `<pk-icon icon=\"…\">`.\nimport '@verbb/plugin-kit-icons/all.js';\n\nimport { PkButton } from './components/button/pk-button.js';\nimport { PkButtonGroup } from './components/button-group/pk-button-group.js';\nimport { PkButtonGroupSeparator } from './components/button-group/pk-button-group-separator.js';\nimport { PkButtonGroupText } from './components/button-group/pk-button-group-text.js';\nimport { PkCheckbox } from './components/checkbox/pk-checkbox.js';\nimport { PkCheckboxSelect } from './components/checkbox-select/pk-checkbox-select.js';\nimport { PkCodeEditor } from './components/code-editor/pk-code-editor.js';\nimport { PkColorInput } from './components/color-input/pk-color-input.js';\nimport { PkCalendar } from './components/calendar/pk-calendar.js';\nimport { PkDatePicker } from './components/date-picker/pk-date-picker.js';\nimport { PkCombobox } from './components/combobox/pk-combobox.js';\nimport { PkConnect } from './components/connect/pk-connect.js';\nimport { PkConnectOauth } from './components/connect/pk-connect-oauth.js';\nimport { PkCopyButton } from './components/copy-button/pk-copy-button.js';\nimport { PkDialog } from './components/dialog/pk-dialog.js';\nimport { PkDropdownLabel } from './components/dropdown-menu/pk-dropdown-label.js';\nimport { PkDropdownMenu } from './components/dropdown-menu/pk-dropdown-menu.js';\nimport { PkDropdownItem } from './components/dropdown-menu/pk-dropdown-item.js';\nimport { PkDropdownSeparator } from './components/dropdown-menu/pk-dropdown-separator.js';\nimport { PkEditableTable } from './components/editable-table/pk-editable-table.js';\nimport { PkField } from './components/field/pk-field.js';\nimport { PkIcon } from './components/icon/pk-icon.js';\nimport { PkInput } from './components/input/pk-input.js';\nimport { PkInputGroup } from './components/input-group/pk-input-group.js';\nimport { PkInputGroupAddon } from './components/input-group/pk-input-group-addon.js';\nimport { PkInputGroupButton } from './components/input-group/pk-input-group-button.js';\nimport { PkInputGroupInput } from './components/input-group/pk-input-group-input.js';\nimport { PkInputGroupText } from './components/input-group/pk-input-group-text.js';\nimport { PkInputGroupTextarea } from './components/input-group/pk-input-group-textarea.js';\nimport { PkLightswitch } from './components/lightswitch/pk-lightswitch.js';\nimport { PkOption } from './components/select/pk-option.js';\nimport { PkOptionGroup } from './components/select/pk-option-group.js';\nimport { PkPopover } from './components/popover/pk-popover.js';\nimport { PkPopup } from './components/popup/pk-popup.js';\nimport { PkRadio } from './components/radio-group/pk-radio.js';\nimport { PkRadioGroup } from './components/radio-group/pk-radio-group.js';\nimport { PkScrollArea } from './components/scroll-area/pk-scroll-area.js';\nimport { PkSelect } from './components/select/pk-select.js';\nimport { PkSeparator } from './components/separator/pk-separator.js';\nimport { PkSpinner } from './components/spinner/pk-spinner.js';\nimport { PkStatus } from './components/status/pk-status.js';\nimport { PkTab } from './components/tabs/pk-tab.js';\nimport { PkTabHeading } from './components/tabs/pk-tab-heading.js';\nimport { PkTabPanel } from './components/tabs/pk-tab-panel.js';\nimport { PkTabs } from './components/tabs/pk-tabs.js';\nimport { PkTextarea } from './components/textarea/pk-textarea.js';\nimport { PkTiptapContent } from './components/tiptap/pk-tiptap-content.js';\nimport { PkTiptapEditor } from './components/tiptap/pk-tiptap-editor.js';\nimport { PkTiptapInput } from './components/tiptap/pk-tiptap-input.js';\nimport { PkTimePicker } from './components/time-picker/pk-time-picker.js';\nimport { PkToggle } from './components/toggle/pk-toggle.js';\nimport { PkToggleGroup } from './components/toggle-group/pk-toggle-group.js';\nimport { PkTooltip } from './components/tooltip/pk-tooltip.js';\n\nexport * from './components/button/index.js';\nexport * from './components/button-group/index.js';\nexport * from './components/checkbox/index.js';\nexport * from './components/checkbox-select/index.js';\nexport * from './components/input/index.js';\nexport * from './components/input-group/index.js';\nexport * from './components/textarea/index.js';\nexport * from './components/separator/index.js';\nexport * from './components/status/index.js';\nexport * from './components/toggle/index.js';\nexport * from './components/toggle-group/index.js';\nexport * from './components/lightswitch/index.js';\nexport * from './components/connect/index.js';\nexport * from './components/copy-button/index.js';\nexport * from './components/dialog/index.js';\nexport * from './components/dropdown-menu/index.js';\nexport * from './components/field/index.js';\nexport * from './components/popover/index.js';\nexport * from './components/popup/index.js';\nexport * from './components/tooltip/index.js';\nexport * from './components/radio-group/index.js';\nexport * from './components/tabs/index.js';\nexport * from './components/scroll-area/index.js';\nexport * from './components/color-input/index.js';\nexport * from './components/code-editor/index.js';\nexport * from './components/calendar/index.js';\nexport * from './components/date-picker/index.js';\nexport * from './components/select/index.js';\nexport * from './components/spinner/index.js';\nexport * from './components/time-picker/index.js';\nexport * from './components/tiptap/index.js';\n\nexport {\n PkButton,\n PkButtonGroup,\n PkButtonGroupSeparator,\n PkButtonGroupText,\n PkCheckbox,\n PkCheckboxSelect,\n PkColorInput,\n PkCodeEditor,\n PkCalendar,\n PkDatePicker,\n PkCombobox,\n PkConnect,\n PkConnectOauth,\n PkCopyButton,\n PkDialog,\n PkDropdownMenu,\n PkDropdownItem,\n PkDropdownSeparator,\n PkEditableTable,\n PkField,\n PkIcon,\n PkInput,\n PkInputGroup,\n PkInputGroupAddon,\n PkInputGroupButton,\n PkInputGroupInput,\n PkInputGroupText,\n PkInputGroupTextarea,\n PkLightswitch,\n PkOption,\n PkOptionGroup,\n PkPopover,\n PkPopup,\n PkRadio,\n PkRadioGroup,\n PkScrollArea,\n PkSelect,\n PkSeparator,\n PkSpinner,\n PkStatus,\n PkTab,\n PkTabPanel,\n PkTabs,\n PkTextarea,\n PkTimePicker,\n PkTiptapContent,\n PkTiptapEditor,\n PkTiptapInput,\n PkToggle,\n PkToggleGroup,\n PkTooltip,\n};\n\nconst COMPONENTS: [string, CustomElementConstructor][] = [\n ['pk-spinner', PkSpinner],\n ['pk-icon', PkIcon],\n ['pk-button', PkButton],\n ['pk-checkbox', PkCheckbox],\n ['pk-checkbox-select', PkCheckboxSelect],\n ['pk-color-input', PkColorInput],\n ['pk-code-editor', PkCodeEditor],\n ['pk-input', PkInput],\n ['pk-input-group', PkInputGroup],\n ['pk-input-group-addon', PkInputGroupAddon],\n ['pk-input-group-button', PkInputGroupButton],\n ['pk-input-group-input', PkInputGroupInput],\n ['pk-input-group-text', PkInputGroupText],\n ['pk-input-group-textarea', PkInputGroupTextarea],\n ['pk-textarea', PkTextarea],\n ['pk-tiptap-editor', PkTiptapEditor],\n ['pk-tiptap-input', PkTiptapInput],\n ['pk-tiptap-content', PkTiptapContent],\n ['pk-field', PkField],\n ['pk-separator', PkSeparator],\n ['pk-status', PkStatus],\n ['pk-toggle', PkToggle],\n ['pk-toggle-group', PkToggleGroup],\n ['pk-lightswitch', PkLightswitch],\n ['pk-button-group', PkButtonGroup],\n ['pk-button-group-separator', PkButtonGroupSeparator],\n ['pk-button-group-text', PkButtonGroupText],\n ['pk-dialog', PkDialog],\n ['pk-popup', PkPopup],\n ['pk-dropdown-label', PkDropdownLabel],\n ['pk-dropdown-item', PkDropdownItem],\n ['pk-dropdown-separator', PkDropdownSeparator],\n ['pk-dropdown-menu', PkDropdownMenu],\n ['pk-editable-table', PkEditableTable],\n ['pk-popover', PkPopover],\n ['pk-tooltip', PkTooltip],\n ['pk-radio', PkRadio],\n ['pk-radio-group', PkRadioGroup],\n ['pk-tab', PkTab],\n ['pk-tab-heading', PkTabHeading],\n ['pk-tab-panel', PkTabPanel],\n ['pk-tabs', PkTabs],\n ['pk-scroll-area', PkScrollArea],\n ['pk-option', PkOption],\n ['pk-option-group', PkOptionGroup],\n ['pk-select', PkSelect],\n ['pk-calendar', PkCalendar],\n ['pk-date-picker', PkDatePicker],\n ['pk-combobox', PkCombobox],\n ['pk-connect', PkConnect],\n ['pk-connect-oauth', PkConnectOauth],\n ['pk-time-picker', PkTimePicker],\n ['pk-copy-button', PkCopyButton],\n];\n\n/** Side-effect registration for all Plugin Kit web components. */\nexport function registerAll(): void {\n for (const [tag, ctor] of COMPONENTS) {\n if (!customElements.get(tag)) {\n customElements.define(tag, ctor);\n }\n }\n}\n\nexport {\n createRegisterComponents,\n type PkComponentTag,\n} from './register-components.js';\n\nexport { BUNDLER_TAG_IMPORT_PATHS as componentImportPaths } from './component-registry.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+IA,IAAM,aAAmD;CACrD,CAAC,cAAc,UAAU;CACzB,CAAC,WAAW,OAAO;CACnB,CAAC,aAAa,SAAS;CACvB,CAAC,eAAe,WAAW;CAC3B,CAAC,sBAAsB,iBAAiB;CACxC,CAAC,kBAAkB,aAAa;CAChC,CAAC,kBAAkB,aAAa;CAChC,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,yBAAyB,mBAAmB;CAC7C,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,uBAAuB,iBAAiB;CACzC,CAAC,2BAA2B,qBAAqB;CACjD,CAAC,eAAe,WAAW;CAC3B,CAAC,oBAAoB,eAAe;CACpC,CAAC,mBAAmB,cAAc;CAClC,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,YAAY,QAAQ;CACrB,CAAC,gBAAgB,YAAY;CAC7B,CAAC,aAAa,SAAS;CACvB,CAAC,aAAa,SAAS;CACvB,CAAC,mBAAmB,cAAc;CAClC,CAAC,kBAAkB,cAAc;CACjC,CAAC,mBAAmB,cAAc;CAClC,CAAC,6BAA6B,uBAAuB;CACrD,CAAC,wBAAwB,kBAAkB;CAC3C,CAAC,aAAa,SAAS;CACvB,CAAC,YAAY,QAAQ;CACrB,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,oBAAoB,eAAe;CACpC,CAAC,yBAAyB,oBAAoB;CAC9C,CAAC,oBAAoB,eAAe;CACpC,CAAC,qBAAqB,gBAAgB;CACtC,CAAC,cAAc,UAAU;CACzB,CAAC,cAAc,UAAU;CACzB,CAAC,YAAY,QAAQ;CACrB,CAAC,kBAAkB,aAAa;CAChC,CAAC,UAAU,MAAM;CACjB,CAAC,kBAAkB,aAAa;CAChC,CAAC,gBAAgB,WAAW;CAC5B,CAAC,WAAW,OAAO;CACnB,CAAC,kBAAkB,aAAa;CAChC,CAAC,aAAa,SAAS;CACvB,CAAC,mBAAmB,cAAc;CAClC,CAAC,aAAa,SAAS;CACvB,CAAC,eAAe,WAAW;CAC3B,CAAC,kBAAkB,aAAa;CAChC,CAAC,eAAe,WAAW;CAC3B,CAAC,cAAc,UAAU;CACzB,CAAC,oBAAoB,eAAe;CACpC,CAAC,kBAAkB,aAAa;CAChC,CAAC,kBAAkB,aAAa;CACnC;;AAGD,SAAgB,cAAoB;AAChC,MAAK,MAAM,CAAC,KAAK,SAAS,WACtB,KAAI,CAAC,eAAe,IAAI,IAAI,CACxB,gBAAe,OAAO,KAAK,KAAK"}
|
|
@@ -90,4 +90,20 @@ export declare const nextRowId: () => string;
|
|
|
90
90
|
export declare const getCustomCellSlotName: (rowId: string, columnName: string) => string;
|
|
91
91
|
export declare const BUILTIN_COLUMN_TYPES: Set<string>;
|
|
92
92
|
export declare const isCustomColumn: (column: PkEditableTableColumn) => boolean;
|
|
93
|
+
/** Whether a multi-cell paste gesturing from this cell should run `importData`. */
|
|
94
|
+
export declare const columnInterceptsPaste: (column: PkEditableTableColumn) => boolean;
|
|
95
|
+
/** Whether `importData` should write a clipboard cell into this column. */
|
|
96
|
+
export declare const columnAcceptsPasteImport: (column: PkEditableTableColumn) => boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Craft `Craft.trim(text, ' \\n\\r')` — strip spaces/newlines from both ends so a
|
|
99
|
+
* trailing spreadsheet newline does not create an empty extra row.
|
|
100
|
+
*/
|
|
101
|
+
export declare const trimClipboardText: (text: string) => string;
|
|
102
|
+
/** True when clipboard looks like a multi-cell / multi-row TSV paste. */
|
|
103
|
+
export declare const isMultiCellClipboard: (text: string) => boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Parse spreadsheet clipboard text into a grid (rows → cells).
|
|
106
|
+
* Excel / Sheets copy as tab-separated values with newline-separated rows.
|
|
107
|
+
*/
|
|
108
|
+
export declare const parseTsvClipboard: (text: string) => string[][];
|
|
93
109
|
//# sourceMappingURL=editable-table-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editable-table-model.d.ts","sourceRoot":"","sources":["../../../src/components/editable-table/editable-table-model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editable-table-model.d.ts","sourceRoot":"","sources":["../../../src/components/editable-table/editable-table-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,16 @@ export declare class PkEditableTable extends PkFormAssociatedElement {
|
|
|
19
19
|
allowAdd: boolean;
|
|
20
20
|
allowDelete: boolean;
|
|
21
21
|
allowReorder: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Show Insert above / Insert below in the row ellipsis menu.
|
|
24
|
+
* Insert still requires `allowAdd` (disabled at max rows when the host turns add off).
|
|
25
|
+
*/
|
|
26
|
+
allowInsert: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Optional hard cap on row count. When set, add / insert / paste expansion stop
|
|
29
|
+
* at this length even if `allowAdd` is still true mid-batch.
|
|
30
|
+
*/
|
|
31
|
+
maxRows: number | null;
|
|
22
32
|
addRowLabel: string;
|
|
23
33
|
/**
|
|
24
34
|
* Optional form-field prefix for `cellErrors` keys.
|
|
@@ -91,8 +101,23 @@ export declare class PkEditableTable extends PkFormAssociatedElement {
|
|
|
91
101
|
private emitCellChange;
|
|
92
102
|
private commitRows;
|
|
93
103
|
private updateCell;
|
|
104
|
+
private canAddRow;
|
|
105
|
+
private createEmptyRow;
|
|
94
106
|
private addRow;
|
|
107
|
+
/** Insert a blank row at `index` (0 = above first row). No-ops when add is disallowed. */
|
|
108
|
+
private insertRowAt;
|
|
95
109
|
private removeRow;
|
|
110
|
+
/**
|
|
111
|
+
* Craft EditableTable paste: intercept only when the clipboard has tabs/newlines.
|
|
112
|
+
* Listens on the scroll wrapper so events compose out of cell control shadows.
|
|
113
|
+
*/
|
|
114
|
+
private handleTablePaste;
|
|
115
|
+
/**
|
|
116
|
+
* Apply a TSV grid starting at `[startRowIndex, startColumnIndex]`.
|
|
117
|
+
* Skips non-textual columns (checkbox etc.) but still advances the column
|
|
118
|
+
* cursor — same as Craft writing only into matching `textarea`/`input`s.
|
|
119
|
+
*/
|
|
120
|
+
private importTsvData;
|
|
96
121
|
private moveRow;
|
|
97
122
|
private commitReorder;
|
|
98
123
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pk-editable-table.d.ts","sourceRoot":"","sources":["../../../src/components/editable-table/pk-editable-table.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAGnF,OAAO,wBAAwB,CAAC;AAChC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,sBAAsB,CAAC;AAC9B,OAAO,kCAAkC,CAAC;AAC1C,OAAO,wBAAwB,CAAC;AAChC,OAAO,wBAAwB,CAAC;AAChC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAG1C,OAAO,
|
|
1
|
+
{"version":3,"file":"pk-editable-table.d.ts","sourceRoot":"","sources":["../../../src/components/editable-table/pk-editable-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as nextRowId, i as isCustomColumn, r as getCustomCellSlotName, t as PkEditableTable } from "../../chunks/pk-editable-table-
|
|
1
|
+
import { a as nextRowId, i as isCustomColumn, r as getCustomCellSlotName, t as PkEditableTable } from "../../chunks/pk-editable-table-DMHGqZlQ.js";
|
|
2
2
|
export { PkEditableTable, getCustomCellSlotName, isCustomColumn, nextRowId };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as nextRowId, i as isCustomColumn, n as BUILTIN_COLUMN_TYPES, r as getCustomCellSlotName, t as PkEditableTable } from "../chunks/pk-editable-table-
|
|
1
|
+
import { a as nextRowId, i as isCustomColumn, n as BUILTIN_COLUMN_TYPES, r as getCustomCellSlotName, t as PkEditableTable } from "../chunks/pk-editable-table-DMHGqZlQ.js";
|
|
2
2
|
export { BUILTIN_COLUMN_TYPES, PkEditableTable, getCustomCellSlotName, isCustomColumn, nextRowId };
|
package/dist/index.js
CHANGED
|
@@ -66,7 +66,7 @@ import { t as PkDatePicker } from "./chunks/pk-date-picker-BM4HMb4-.js";
|
|
|
66
66
|
import { t as PkOption } from "./chunks/pk-option-Cy7oOcwF.js";
|
|
67
67
|
import { t as PkSelect } from "./chunks/pk-select-BeMDXEC6.js";
|
|
68
68
|
import { t as PkTimePicker } from "./chunks/pk-time-picker-RlAqlho4.js";
|
|
69
|
-
import { a as nextRowId, i as isCustomColumn, n as BUILTIN_COLUMN_TYPES, r as getCustomCellSlotName, t as PkEditableTable } from "./chunks/pk-editable-table-
|
|
69
|
+
import { a as nextRowId, i as isCustomColumn, n as BUILTIN_COLUMN_TYPES, r as getCustomCellSlotName, t as PkEditableTable } from "./chunks/pk-editable-table-DMHGqZlQ.js";
|
|
70
70
|
import "./components/editable-table.js";
|
|
71
71
|
import { t as PkField } from "./chunks/pk-field-JFP24j4o.js";
|
|
72
72
|
import "./components/field.js";
|
|
@@ -96,7 +96,7 @@ import "./components/spinner.js";
|
|
|
96
96
|
import { t as PkTiptapContent } from "./chunks/pk-tiptap-content-zzx3-xrD.js";
|
|
97
97
|
import { t as PkTiptapEditor } from "./chunks/pk-tiptap-editor-DpT4TYdi.js";
|
|
98
98
|
import { t as PkTiptapInput } from "./chunks/pk-tiptap-input-D7xj13FY.js";
|
|
99
|
-
import { t as registerAll } from "./chunks/register-
|
|
99
|
+
import { t as registerAll } from "./chunks/register-DeqrQzRS.js";
|
|
100
100
|
import { _ as setPortalClassName, a as startLoader, c as setBasePath, d as getPortalClassName, f as getPortalContainer, g as resolvePositionMethod, h as getShadowRootSelectors, i as preventTurboFouce, l as allDefined, m as getPortalTargetForAppend, n as FOUCE_TIMEOUT_MS, o as stopLoader, p as getPortalMountElement, r as discover, s as getBasePath, t as DISCOVERY_COMPLETE_EVENT, u as configurePluginKitWeb, v as setPortalContainer, y as setShadowRootSelectors } from "./chunks/autoloader-DPX9YYZs.js";
|
|
101
101
|
import { t as BUNDLER_TAG_IMPORT_PATHS } from "./chunks/component-registry-CNB8PbP_.js";
|
|
102
102
|
import { t as createRegisterComponents } from "./chunks/register-components-B-qCPFFh.js";
|
package/dist/register.js
CHANGED
|
@@ -54,7 +54,7 @@ import { t as PkDatePicker } from "./chunks/pk-date-picker-BM4HMb4-.js";
|
|
|
54
54
|
import { t as PkOption } from "./chunks/pk-option-Cy7oOcwF.js";
|
|
55
55
|
import { t as PkSelect } from "./chunks/pk-select-BeMDXEC6.js";
|
|
56
56
|
import { t as PkTimePicker } from "./chunks/pk-time-picker-RlAqlho4.js";
|
|
57
|
-
import { t as PkEditableTable } from "./chunks/pk-editable-table-
|
|
57
|
+
import { t as PkEditableTable } from "./chunks/pk-editable-table-DMHGqZlQ.js";
|
|
58
58
|
import { t as PkField } from "./chunks/pk-field-JFP24j4o.js";
|
|
59
59
|
import "./components/field.js";
|
|
60
60
|
import { t as PkPopover } from "./chunks/pk-popover-G3ojheBD.js";
|
|
@@ -82,7 +82,7 @@ import "./components/spinner.js";
|
|
|
82
82
|
import { t as PkTiptapContent } from "./chunks/pk-tiptap-content-zzx3-xrD.js";
|
|
83
83
|
import { t as PkTiptapEditor } from "./chunks/pk-tiptap-editor-DpT4TYdi.js";
|
|
84
84
|
import { t as PkTiptapInput } from "./chunks/pk-tiptap-input-D7xj13FY.js";
|
|
85
|
-
import { t as registerAll } from "./chunks/register-
|
|
85
|
+
import { t as registerAll } from "./chunks/register-DeqrQzRS.js";
|
|
86
86
|
import { t as BUNDLER_TAG_IMPORT_PATHS } from "./chunks/component-registry-CNB8PbP_.js";
|
|
87
87
|
import { t as createRegisterComponents } from "./chunks/register-components-B-qCPFFh.js";
|
|
88
88
|
export { ALL_VALUE, PkButton, PkButtonGroup, PkButtonGroupSeparator, PkButtonGroupText, PkCalendar, PkCheckbox, PkCheckboxSelect, PkCodeEditor, PkColorInput, PkCombobox, PkConnect, PkConnectOauth, PkCopyButton, PkDatePicker, PkDialog, PkDropdownItem, PkDropdownLabel, PkDropdownMenu, PkDropdownSeparator, PkEditableTable, PkField, PkIcon, PkInput, PkInputGroup, PkInputGroupAddon, PkInputGroupButton, PkInputGroupInput, PkInputGroupText, PkInputGroupTextarea, PkLightswitch, PkOption, PkOptionGroup, PkPopover, PkPopup, PkRadio, PkRadioGroup, PkScrollArea, PkSelect, PkSeparator, PkSpinner, PkStatus, PkTab, PkTabHeading, PkTabPanel, PkTabs, PkTextarea, PkTimePicker, PkTiptapContent, PkTiptapEditor, PkTiptapInput, PkToggle, PkToggleGroup, PkTooltip, BUNDLER_TAG_IMPORT_PATHS as componentImportPaths, createRegisterComponents, getButtonSpinnerSize, registerAll, resolveSpinnerVariant };
|
|
@@ -774,6 +774,62 @@ var isCustomColumn = (column) => {
|
|
|
774
774
|
if (type === "custom") return true;
|
|
775
775
|
return typeof type === "string" && !BUILTIN_COLUMN_TYPES.has(type);
|
|
776
776
|
};
|
|
777
|
+
/**
|
|
778
|
+
* Column types that receive TSV paste *writes* (Craft `importData` fills textual
|
|
779
|
+
* cells; checkbox/radio/lightswitch and static/custom cells are skipped).
|
|
780
|
+
*/
|
|
781
|
+
var PASTE_IMPORT_SKIP_TYPES = new Set([
|
|
782
|
+
"checkbox",
|
|
783
|
+
"radio",
|
|
784
|
+
"lightswitch",
|
|
785
|
+
"heading",
|
|
786
|
+
"label"
|
|
787
|
+
]);
|
|
788
|
+
/**
|
|
789
|
+
* Types that intercept multi-cell paste (Craft attaches `handlePaste` to textual
|
|
790
|
+
* inputs except multiline — native paste stays on `textarea`).
|
|
791
|
+
*/
|
|
792
|
+
var PASTE_INTERCEPT_TYPES = new Set([
|
|
793
|
+
"text",
|
|
794
|
+
"number",
|
|
795
|
+
"email",
|
|
796
|
+
"url",
|
|
797
|
+
"handle",
|
|
798
|
+
"value",
|
|
799
|
+
"color",
|
|
800
|
+
"date",
|
|
801
|
+
"time"
|
|
802
|
+
]);
|
|
803
|
+
/** Whether a multi-cell paste gesturing from this cell should run `importData`. */
|
|
804
|
+
var columnInterceptsPaste = (column) => {
|
|
805
|
+
if (isCustomColumn(column)) return false;
|
|
806
|
+
return PASTE_INTERCEPT_TYPES.has(column.type ?? "text");
|
|
807
|
+
};
|
|
808
|
+
/** Whether `importData` should write a clipboard cell into this column. */
|
|
809
|
+
var columnAcceptsPasteImport = (column) => {
|
|
810
|
+
if (isCustomColumn(column)) return false;
|
|
811
|
+
return !PASTE_IMPORT_SKIP_TYPES.has(column.type ?? "text");
|
|
812
|
+
};
|
|
813
|
+
/**
|
|
814
|
+
* Craft `Craft.trim(text, ' \\n\\r')` — strip spaces/newlines from both ends so a
|
|
815
|
+
* trailing spreadsheet newline does not create an empty extra row.
|
|
816
|
+
*/
|
|
817
|
+
var trimClipboardText = (text) => {
|
|
818
|
+
return String(text ?? "").replace(/^[\n\r ]+|[\n\r ]+$/g, "");
|
|
819
|
+
};
|
|
820
|
+
/** True when clipboard looks like a multi-cell / multi-row TSV paste. */
|
|
821
|
+
var isMultiCellClipboard = (text) => {
|
|
822
|
+
return /[\t\r\n]/.test(text);
|
|
823
|
+
};
|
|
824
|
+
/**
|
|
825
|
+
* Parse spreadsheet clipboard text into a grid (rows → cells).
|
|
826
|
+
* Excel / Sheets copy as tab-separated values with newline-separated rows.
|
|
827
|
+
*/
|
|
828
|
+
var parseTsvClipboard = (text) => {
|
|
829
|
+
const trimmed = trimClipboardText(text);
|
|
830
|
+
if (!trimmed) return [];
|
|
831
|
+
return trimmed.split(/\r?\n|\r/).map((line) => line.split(" "));
|
|
832
|
+
};
|
|
777
833
|
//#endregion
|
|
778
834
|
//#region src/components/editable-table/pk-editable-table.ts
|
|
779
835
|
/** Craft CP reorder diamond (`grip-move`). */
|
|
@@ -799,6 +855,8 @@ var PkEditableTable = class PkEditableTable extends PkFormAssociatedElement {
|
|
|
799
855
|
this.allowAdd = true;
|
|
800
856
|
this.allowDelete = true;
|
|
801
857
|
this.allowReorder = true;
|
|
858
|
+
this.allowInsert = true;
|
|
859
|
+
this.maxRows = null;
|
|
802
860
|
this.addRowLabel = "";
|
|
803
861
|
this.fieldName = "";
|
|
804
862
|
this.cellErrors = {};
|
|
@@ -875,7 +933,7 @@ var PkEditableTable = class PkEditableTable extends PkFormAssociatedElement {
|
|
|
875
933
|
return this.validColumns.filter(isGeneratedColumn);
|
|
876
934
|
}
|
|
877
935
|
get showActionsColumn() {
|
|
878
|
-
return this.allowReorder || this.allowDelete || Boolean(this.getRowMenuItems);
|
|
936
|
+
return this.allowReorder || this.allowDelete || this.allowInsert || Boolean(this.getRowMenuItems);
|
|
879
937
|
}
|
|
880
938
|
cleanRows() {
|
|
881
939
|
return this.internalRows.map((row) => {
|
|
@@ -1063,23 +1121,123 @@ var PkEditableTable = class PkEditableTable extends PkFormAssociatedElement {
|
|
|
1063
1121
|
}));
|
|
1064
1122
|
this.commitRows(next, cellChanges);
|
|
1065
1123
|
}
|
|
1066
|
-
|
|
1067
|
-
if (this.disabled || !this.allowAdd) return;
|
|
1124
|
+
canAddRow(currentCount = this.internalRows.length) {
|
|
1125
|
+
if (this.disabled || !this.allowAdd) return false;
|
|
1126
|
+
if (this.maxRows != null && Number.isFinite(this.maxRows) && currentCount >= this.maxRows) return false;
|
|
1127
|
+
return true;
|
|
1128
|
+
}
|
|
1129
|
+
createEmptyRow() {
|
|
1130
|
+
if (!this.canAddRow()) return null;
|
|
1068
1131
|
const row = {
|
|
1069
1132
|
_id: nextRowId(),
|
|
1070
1133
|
...this.newRowDefaults && typeof this.newRowDefaults === "object" ? this.newRowDefaults : {}
|
|
1071
1134
|
};
|
|
1072
1135
|
for (const column of this.validColumns) if (!(column.name in row)) row[column.name] = defaultValueForColumn(column);
|
|
1136
|
+
return row;
|
|
1137
|
+
}
|
|
1138
|
+
addRow() {
|
|
1139
|
+
const row = this.createEmptyRow();
|
|
1140
|
+
if (!row) return;
|
|
1073
1141
|
this.internalRows = [...this.internalRows, row];
|
|
1074
1142
|
this.syncGeneratedModesFromRows();
|
|
1075
1143
|
this.emitChange();
|
|
1076
1144
|
}
|
|
1145
|
+
/** Insert a blank row at `index` (0 = above first row). No-ops when add is disallowed. */
|
|
1146
|
+
insertRowAt(index) {
|
|
1147
|
+
const row = this.createEmptyRow();
|
|
1148
|
+
if (!row) return;
|
|
1149
|
+
const clamped = Math.max(0, Math.min(index, this.internalRows.length));
|
|
1150
|
+
const next = this.internalRows.slice();
|
|
1151
|
+
next.splice(clamped, 0, row);
|
|
1152
|
+
this.internalRows = next;
|
|
1153
|
+
this.syncGeneratedModesFromRows();
|
|
1154
|
+
this.emitChange();
|
|
1155
|
+
}
|
|
1077
1156
|
removeRow(rowIndex) {
|
|
1078
1157
|
if (this.disabled || !this.allowDelete) return;
|
|
1079
1158
|
this.internalRows = this.internalRows.filter((_, index) => index !== rowIndex);
|
|
1080
1159
|
this.syncGeneratedModesFromRows();
|
|
1081
1160
|
this.emitChange();
|
|
1082
1161
|
}
|
|
1162
|
+
/**
|
|
1163
|
+
* Craft EditableTable paste: intercept only when the clipboard has tabs/newlines.
|
|
1164
|
+
* Listens on the scroll wrapper so events compose out of cell control shadows.
|
|
1165
|
+
*/
|
|
1166
|
+
handleTablePaste(event) {
|
|
1167
|
+
if (this.disabled || !event.clipboardData) return;
|
|
1168
|
+
const data = trimClipboardText(event.clipboardData.getData("text/plain") || event.clipboardData.getData("Text") || "");
|
|
1169
|
+
if (!isMultiCellClipboard(data)) return;
|
|
1170
|
+
const path = event.composedPath();
|
|
1171
|
+
let cell = null;
|
|
1172
|
+
let row = null;
|
|
1173
|
+
for (const node of path) {
|
|
1174
|
+
if (node instanceof HTMLTableCellElement && node.tagName === "TD" && !node.classList.contains("actions")) cell = node;
|
|
1175
|
+
if (node instanceof HTMLTableRowElement && node.dataset.rowId) {
|
|
1176
|
+
row = node;
|
|
1177
|
+
break;
|
|
1178
|
+
}
|
|
1179
|
+
}
|
|
1180
|
+
if (!cell || !row) return;
|
|
1181
|
+
const rowIndex = this.internalRows.findIndex((item) => String(item._id) === row.dataset.rowId);
|
|
1182
|
+
const columnIndex = [...row.querySelectorAll(":scope > td:not(.actions)")].indexOf(cell);
|
|
1183
|
+
if (rowIndex < 0 || columnIndex < 0) return;
|
|
1184
|
+
const column = this.validColumns[columnIndex];
|
|
1185
|
+
if (!column || !columnInterceptsPaste(column)) return;
|
|
1186
|
+
event.preventDefault();
|
|
1187
|
+
event.stopPropagation();
|
|
1188
|
+
this.importTsvData(data, rowIndex, columnIndex);
|
|
1189
|
+
}
|
|
1190
|
+
/**
|
|
1191
|
+
* Apply a TSV grid starting at `[startRowIndex, startColumnIndex]`.
|
|
1192
|
+
* Skips non-textual columns (checkbox etc.) but still advances the column
|
|
1193
|
+
* cursor — same as Craft writing only into matching `textarea`/`input`s.
|
|
1194
|
+
*/
|
|
1195
|
+
importTsvData(data, startRowIndex, startColumnIndex) {
|
|
1196
|
+
const grid = parseTsvClipboard(data);
|
|
1197
|
+
if (grid.length === 0) return;
|
|
1198
|
+
const columns = this.validColumns;
|
|
1199
|
+
if (columns.length === 0 || startColumnIndex >= columns.length) return;
|
|
1200
|
+
const next = this.internalRows.map((row) => ({ ...row }));
|
|
1201
|
+
let rowIndex = startRowIndex;
|
|
1202
|
+
let mutated = false;
|
|
1203
|
+
for (let lineIndex = 0; lineIndex < grid.length; lineIndex++) {
|
|
1204
|
+
if (rowIndex >= next.length) {
|
|
1205
|
+
if (!this.canAddRow(next.length)) break;
|
|
1206
|
+
const created = {
|
|
1207
|
+
_id: nextRowId(),
|
|
1208
|
+
...this.newRowDefaults && typeof this.newRowDefaults === "object" ? this.newRowDefaults : {}
|
|
1209
|
+
};
|
|
1210
|
+
for (const column of columns) if (!(column.name in created)) created[column.name] = defaultValueForColumn(column);
|
|
1211
|
+
next.push(created);
|
|
1212
|
+
mutated = true;
|
|
1213
|
+
}
|
|
1214
|
+
const cells = grid[lineIndex] ?? [];
|
|
1215
|
+
const row = next[rowIndex];
|
|
1216
|
+
if (!row) break;
|
|
1217
|
+
let rowPatch = null;
|
|
1218
|
+
for (let cellIndex = 0; cellIndex < cells.length; cellIndex++) {
|
|
1219
|
+
const column = columns[startColumnIndex + cellIndex];
|
|
1220
|
+
if (!column) break;
|
|
1221
|
+
if (!columnAcceptsPasteImport(column)) continue;
|
|
1222
|
+
const value = cells[cellIndex] ?? "";
|
|
1223
|
+
if (row[column.name] === value) continue;
|
|
1224
|
+
rowPatch = rowPatch ?? {};
|
|
1225
|
+
rowPatch[column.name] = value;
|
|
1226
|
+
}
|
|
1227
|
+
if (rowPatch) {
|
|
1228
|
+
next[rowIndex] = {
|
|
1229
|
+
...row,
|
|
1230
|
+
...rowPatch
|
|
1231
|
+
};
|
|
1232
|
+
mutated = true;
|
|
1233
|
+
}
|
|
1234
|
+
rowIndex += 1;
|
|
1235
|
+
}
|
|
1236
|
+
if (!mutated) return;
|
|
1237
|
+
this.internalRows = next;
|
|
1238
|
+
this.syncGeneratedModesFromRows();
|
|
1239
|
+
this.emitChange();
|
|
1240
|
+
}
|
|
1083
1241
|
moveRow(rowIndex, direction) {
|
|
1084
1242
|
const target = rowIndex + direction;
|
|
1085
1243
|
if (this.disabled || target < 0 || target >= this.internalRows.length) return;
|
|
@@ -1364,7 +1522,8 @@ var PkEditableTable = class PkEditableTable extends PkFormAssociatedElement {
|
|
|
1364
1522
|
const rowId = String(row._id);
|
|
1365
1523
|
const rowMod = this.resolveRowModifier(row, rowIndex);
|
|
1366
1524
|
const extraMenuItems = this.resolveRowMenuItems(row, rowIndex);
|
|
1367
|
-
const showRowMenu = this.allowReorder || extraMenuItems.length > 0;
|
|
1525
|
+
const showRowMenu = this.allowReorder || this.allowInsert || extraMenuItems.length > 0;
|
|
1526
|
+
const insertDisabled = this.disabled || !this.canAddRow();
|
|
1368
1527
|
return b`<tr
|
|
1369
1528
|
data-row-id=${rowId}
|
|
1370
1529
|
data-tone=${rowMod.tone || A}
|
|
@@ -1417,6 +1576,25 @@ var PkEditableTable = class PkEditableTable extends PkFormAssociatedElement {
|
|
|
1417
1576
|
?disabled=${this.disabled}
|
|
1418
1577
|
>${o(START_ELLIPSIS_ICON)}</pk-button>
|
|
1419
1578
|
${this.renderExtraMenuItems(row, rowIndex)}
|
|
1579
|
+
${this.allowInsert ? b`
|
|
1580
|
+
<pk-dropdown-item
|
|
1581
|
+
?disabled=${insertDisabled}
|
|
1582
|
+
@click=${() => {
|
|
1583
|
+
this.insertRowAt(rowIndex);
|
|
1584
|
+
}}
|
|
1585
|
+
>
|
|
1586
|
+
${o(START_PLUS_ICON)}
|
|
1587
|
+
Insert above
|
|
1588
|
+
</pk-dropdown-item>
|
|
1589
|
+
<pk-dropdown-item
|
|
1590
|
+
?disabled=${insertDisabled}
|
|
1591
|
+
@click=${() => {
|
|
1592
|
+
this.insertRowAt(rowIndex + 1);
|
|
1593
|
+
}}
|
|
1594
|
+
>
|
|
1595
|
+
${o(START_PLUS_ICON)}
|
|
1596
|
+
Insert below
|
|
1597
|
+
</pk-dropdown-item>` : A}
|
|
1420
1598
|
${this.allowReorder ? b`
|
|
1421
1599
|
<pk-dropdown-item
|
|
1422
1600
|
?disabled=${this.disabled || rowIndex === 0}
|
|
@@ -1460,6 +1638,7 @@ var PkEditableTable = class PkEditableTable extends PkFormAssociatedElement {
|
|
|
1460
1638
|
@pk-change=${this.stopInnerControlEvent}
|
|
1461
1639
|
@input=${this.stopInnerControlEvent}
|
|
1462
1640
|
@change=${this.stopInnerControlEvent}
|
|
1641
|
+
@paste=${this.handleTablePaste}
|
|
1463
1642
|
>
|
|
1464
1643
|
<table class="et">
|
|
1465
1644
|
<thead>
|
|
@@ -1517,6 +1696,15 @@ __decorate([n({
|
|
|
1517
1696
|
reflect: true,
|
|
1518
1697
|
attribute: "allow-reorder"
|
|
1519
1698
|
})], PkEditableTable.prototype, "allowReorder", void 0);
|
|
1699
|
+
__decorate([n({
|
|
1700
|
+
type: Boolean,
|
|
1701
|
+
reflect: true,
|
|
1702
|
+
attribute: "allow-insert"
|
|
1703
|
+
})], PkEditableTable.prototype, "allowInsert", void 0);
|
|
1704
|
+
__decorate([n({
|
|
1705
|
+
type: Number,
|
|
1706
|
+
attribute: "max-rows"
|
|
1707
|
+
})], PkEditableTable.prototype, "maxRows", void 0);
|
|
1520
1708
|
__decorate([n({ attribute: "add-row-label" })], PkEditableTable.prototype, "addRowLabel", void 0);
|
|
1521
1709
|
__decorate([n({ attribute: "field-name" })], PkEditableTable.prototype, "fieldName", void 0);
|
|
1522
1710
|
__decorate([n({ attribute: false })], PkEditableTable.prototype, "cellErrors", void 0);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verbb/plugin-kit-web",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.14",
|
|
4
4
|
"description": "Plugin Kit web components (shadow DOM, Craft design system)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -982,18 +982,18 @@
|
|
|
982
982
|
},
|
|
983
983
|
"peerDependencies": {
|
|
984
984
|
"@floating-ui/dom": "^1.7.3",
|
|
985
|
-
"@verbb/plugin-kit-core": "^2.0.
|
|
986
|
-
"@verbb/plugin-kit-icons": "^2.0.
|
|
985
|
+
"@verbb/plugin-kit-core": "^2.0.14",
|
|
986
|
+
"@verbb/plugin-kit-icons": "^2.0.14",
|
|
987
987
|
"lit": "^3.3.0"
|
|
988
988
|
},
|
|
989
989
|
"license": "MIT",
|
|
990
990
|
"dependencies": {
|
|
991
991
|
"@floating-ui/dom": "^1.7.3",
|
|
992
992
|
"@tiptap/core": "^3.22.4",
|
|
993
|
-
"@verbb/plugin-kit-codemirror-core": "2.0.
|
|
994
|
-
"@verbb/plugin-kit-core": "^2.0.
|
|
995
|
-
"@verbb/plugin-kit-icons": "^2.0.
|
|
996
|
-
"@verbb/plugin-kit-tiptap-core": "^2.0.
|
|
993
|
+
"@verbb/plugin-kit-codemirror-core": "2.0.14",
|
|
994
|
+
"@verbb/plugin-kit-core": "^2.0.14",
|
|
995
|
+
"@verbb/plugin-kit-icons": "^2.0.14",
|
|
996
|
+
"@verbb/plugin-kit-tiptap-core": "^2.0.14",
|
|
997
997
|
"composed-offset-position": "^0.0.6",
|
|
998
998
|
"lit": "^3.3.0"
|
|
999
999
|
},
|