From f04d666a082efb91178a7a8870c2d0e8ba04990d Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Fri, 11 Oct 2024 14:33:09 +0700 Subject: [PATCH 1/4] Add drag and drop --- features/draganddrop.yml | 41 ++++++ features/draganddrop.yml.dist | 198 +++++++++++++++++++++++++++ features/file-system-access.yml | 2 - features/file-system-access.yml.dist | 1 - 4 files changed, 239 insertions(+), 3 deletions(-) create mode 100644 features/draganddrop.yml create mode 100644 features/draganddrop.yml.dist diff --git a/features/draganddrop.yml b/features/draganddrop.yml new file mode 100644 index 00000000000..d50bc035c1e --- /dev/null +++ b/features/draganddrop.yml @@ -0,0 +1,41 @@ +name: Drag and Drop +description: "The Drag and Drop API lets web applications add dragging and dropping of elements and external files such as images onto web pages. Developers can customize which elements can become draggable, the type of feedback the draggable elements produce, and the droppable elements." +spec: https://html.spec.whatwg.org/multipage/dnd.html#dnd +caniuse: dragndrop +# This gets closest to matching what Caniuse has. +status: + compute_from: api.DataTransfer +compat_features: + - api.DataTransfer + - api.DataTransfer.DataTransfer + - api.DataTransfer.clearData + - api.DataTransfer.dropEffect + - api.DataTransfer.effectAllowed + - api.DataTransfer.files + - api.DataTransfer.getData + - api.DataTransfer.items + - api.DataTransfer.setData + - api.DataTransfer.setDragImage + - api.DataTransfer.types + - api.DataTransferItem + - api.DataTransferItem.getAsFile + - api.DataTransferItem.getAsFileSystemHandle + - api.DataTransferItem.getAsString + - api.DataTransferItem.kind + - api.DataTransferItem.type + - api.DataTransferItemList + - api.DataTransferItemList.add + - api.DataTransferItemList.clear + - api.DataTransferItemList.length + - api.DataTransferItemList.remove + - api.DragEvent + - api.DragEvent.DragEvent + - api.DragEvent.dataTransfer + - api.HTMLElement.drag_event + - api.HTMLElement.dragend_event + - api.HTMLElement.dragenter_event + - api.HTMLElement.draggable + - api.HTMLElement.dragleave_event + - api.HTMLElement.dragover_event + - api.HTMLElement.dragstart_event + - api.HTMLElement.drop_event diff --git a/features/draganddrop.yml.dist b/features/draganddrop.yml.dist new file mode 100644 index 00000000000..ec78a37d7f3 --- /dev/null +++ b/features/draganddrop.yml.dist @@ -0,0 +1,198 @@ +# Generated from: draganddrop.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2015-07-29 + baseline_high_date: 2018-01-29 + support: + chrome: "3" + chrome_android: "18" + edge: "12" + firefox: "3.5" + firefox_android: "4" + safari: "4" + safari_ios: "3.2" +compat_features: + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "9" + # firefox_android: "9" + # safari: "3.1" + # safari_ios: "2" + - api.HTMLElement.drag_event + - api.HTMLElement.dragend_event + - api.HTMLElement.dragenter_event + - api.HTMLElement.dragleave_event + - api.HTMLElement.dragover_event + - api.HTMLElement.dragstart_event + - api.HTMLElement.drop_event + + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "3" + # chrome_android: "18" + # edge: "12" + # firefox: "3.5" + # firefox_android: "4" + # safari: "4" + # safari_ios: "3.2" + - api.DataTransfer + - api.DataTransfer.clearData + - api.DataTransfer.dropEffect + - api.DataTransfer.effectAllowed + - api.DataTransfer.getData + - api.DataTransfer.types + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "3" + # chrome_android: "18" + # edge: "12" + # firefox: "3.5" + # firefox_android: "4" + # safari: "5" + # safari_ios: "5" + - api.DataTransfer.setData + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "3" + # chrome_android: "18" + # edge: "12" + # firefox: "3.6" + # firefox_android: "4" + # safari: "4" + # safari_ios: "3.2" + - api.DataTransfer.files + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "4" + # chrome_android: "18" + # edge: "12" + # firefox: "2" + # firefox_android: "4" + # safari: "5" + # safari_ios: "4" + - api.HTMLElement.draggable + + # baseline: high + # baseline_low_date: 2016-11-15 + # baseline_high_date: 2019-05-15 + # support: + # chrome: "11" + # chrome_android: "18" + # edge: "12" + # firefox: "50" + # firefox_android: "50" + # safari: "5.1" + # safari_ios: "5" + - api.DataTransferItem + - api.DataTransferItem.getAsFile + - api.DataTransferItem.getAsString + - api.DataTransferItem.kind + - api.DataTransferItem.type + + # baseline: high + # baseline_low_date: 2016-11-15 + # baseline_high_date: 2019-05-15 + # support: + # chrome: "13" + # chrome_android: "18" + # edge: "12" + # firefox: "50" + # firefox_android: "50" + # safari: "6" + # safari_ios: "6" + - api.DataTransferItemList + - api.DataTransferItemList.add + - api.DataTransferItemList.clear + - api.DataTransferItemList.length + + # baseline: high + # baseline_low_date: 2016-11-15 + # baseline_high_date: 2019-05-15 + # support: + # chrome: "31" + # chrome_android: "31" + # edge: "12" + # firefox: "50" + # firefox_android: "50" + # safari: "6" + # safari_ios: "6" + - api.DataTransferItemList.remove + + # baseline: high + # baseline_low_date: 2018-04-12 + # baseline_high_date: 2020-10-12 + # support: + # chrome: "3" + # chrome_android: "18" + # edge: "12" + # firefox: "50" + # firefox_android: "52" + # safari: "11.1" + # safari_ios: "11.3" + - api.DataTransfer.items + + # baseline: high + # baseline_low_date: 2018-10-02 + # baseline_high_date: 2021-04-02 + # support: + # chrome: "3" + # chrome_android: "18" + # edge: "18" + # firefox: "3.5" + # firefox_android: "4" + # safari: "4" + # safari_ios: "3.2" + - api.DataTransfer.setDragImage + + # baseline: high + # baseline_low_date: 2020-09-16 + # baseline_high_date: 2023-03-16 + # support: + # chrome: "46" + # chrome_android: "46" + # edge: "12" + # firefox: "3.5" + # firefox_android: "4" + # safari: "14" + # safari_ios: "14" + - api.DragEvent + - api.DragEvent.DragEvent + - api.DragEvent.dataTransfer + + # baseline: high + # baseline_low_date: 2021-04-26 + # baseline_high_date: 2023-10-26 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: "17" + # firefox: "62" + # firefox_android: "62" + # safari: "14.1" + # safari_ios: "14.5" + - api.DataTransfer.DataTransfer + + # baseline: false + # support: + # chrome: "86" + # edge: "86" + - api.DataTransferItem.getAsFileSystemHandle diff --git a/features/file-system-access.yml b/features/file-system-access.yml index 33e5ba29d63..876d8cd0d49 100644 --- a/features/file-system-access.yml +++ b/features/file-system-access.yml @@ -4,8 +4,6 @@ spec: https://wicg.github.io/file-system-access/ caniuse: native-filesystem-api group: file-system compat_features: - # api.DataTransferItem.getAsFileSystemHandle is likely to be part of a drag and drop feature, but it can't be in both features at once. See https://github.com/web-platform-dx/web-features/issues/1173 for details - - api.DataTransferItem.getAsFileSystemHandle - api.FileSystemHandle.queryPermission - api.FileSystemHandle.requestPermission - api.Window.showDirectoryPicker diff --git a/features/file-system-access.yml.dist b/features/file-system-access.yml.dist index ef0acb373b4..d8ac378cf00 100644 --- a/features/file-system-access.yml.dist +++ b/features/file-system-access.yml.dist @@ -20,7 +20,6 @@ compat_features: # support: # chrome: "86" # edge: "86" - - api.DataTransferItem.getAsFileSystemHandle - api.Window.showDirectoryPicker - api.Window.showOpenFilePicker - api.Window.showSaveFilePicker From fe8fff5ea8f6571ed85e14d3724e08d66e2aa547 Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Mon, 14 Oct 2024 13:05:06 +0700 Subject: [PATCH 2/4] Update features/draganddrop.yml Co-authored-by: James Stuckey Weber --- features/draganddrop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/draganddrop.yml b/features/draganddrop.yml index d50bc035c1e..1a1c4dbcd01 100644 --- a/features/draganddrop.yml +++ b/features/draganddrop.yml @@ -1,5 +1,5 @@ name: Drag and Drop -description: "The Drag and Drop API lets web applications add dragging and dropping of elements and external files such as images onto web pages. Developers can customize which elements can become draggable, the type of feedback the draggable elements produce, and the droppable elements." +description: "The Drag and Drop API lets users drag and drop elements and external files such as images onto web pages. Developers can customize which elements can become draggable, the type of feedback the draggable elements produce, and the droppable elements." spec: https://html.spec.whatwg.org/multipage/dnd.html#dnd caniuse: dragndrop # This gets closest to matching what Caniuse has. From a197850ad561c37d32c34cbe055b292127048f99 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Mon, 14 Oct 2024 13:10:16 +0700 Subject: [PATCH 3/4] move comment over --- features/draganddrop.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/features/draganddrop.yml b/features/draganddrop.yml index 1a1c4dbcd01..3cc4a245c5c 100644 --- a/features/draganddrop.yml +++ b/features/draganddrop.yml @@ -19,6 +19,7 @@ compat_features: - api.DataTransfer.types - api.DataTransferItem - api.DataTransferItem.getAsFile +# api.DataTransferItem.getAsFileSystemHandle was in the file-system-access feature, but it can't be in both features at once. See https://github.com/web-platform-dx/web-features/issues/1173 for details - api.DataTransferItem.getAsFileSystemHandle - api.DataTransferItem.getAsString - api.DataTransferItem.kind From 4fb26692a347a700d3586e206f53add3dab59268 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Mon, 14 Oct 2024 14:24:59 +0700 Subject: [PATCH 4/4] format --- features/draganddrop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/draganddrop.yml b/features/draganddrop.yml index 3cc4a245c5c..ae80f388910 100644 --- a/features/draganddrop.yml +++ b/features/draganddrop.yml @@ -19,7 +19,7 @@ compat_features: - api.DataTransfer.types - api.DataTransferItem - api.DataTransferItem.getAsFile -# api.DataTransferItem.getAsFileSystemHandle was in the file-system-access feature, but it can't be in both features at once. See https://github.com/web-platform-dx/web-features/issues/1173 for details + # api.DataTransferItem.getAsFileSystemHandle was in the file-system-access feature, but it can't be in both features at once. See https://github.com/web-platform-dx/web-features/issues/1173 for details - api.DataTransferItem.getAsFileSystemHandle - api.DataTransferItem.getAsString - api.DataTransferItem.kind