| <!DOCTYPE html> |
| <!-- |
| @WAIT-FOR:Ready |
| @EXECUTE-AND-WAIT-FOR:selectChip() |
| @EXECUTE-AND-WAIT-FOR:removeChip() |
| @BLINK-ALLOW:htmlTag* |
| @BLINK-ALLOW:className* |
| --> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Material Web Input Chips</title> |
| <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0" rel="stylesheet"> |
| <script type="module"> |
| import { injectImportMap, loadAndWaitForReady } from "./resources/utils.js"; |
| injectImportMap(); |
| |
| const components = [ |
| "md-input-chip", |
| "md-chip-set", |
| "md-icon" |
| ]; |
| |
| loadAndWaitForReady(components, () => { |
| const statusDiv = document.getElementById("status"); |
| const chipSet = document.createElement("md-chip-set"); |
| const chips = [ |
| { label: "Input chip", id: "test-chip-1" }, |
| { label: "With avatar", icon: "person" }, |
| { label: "Removable", removeOnly: true, removeIcon: "close", id: "test-chip-2" } |
| ]; |
| chips.forEach(chipInfo => { |
| const chip = document.createElement("md-input-chip"); |
| chip.label = chipInfo.label; |
| if (chipInfo.id) { |
| chip.id = chipInfo.id; |
| } |
| if (chipInfo.icon) { |
| const icon = document.createElement("md-icon"); |
| icon.slot = "icon"; |
| icon.textContent = chipInfo.icon; |
| chip.appendChild(icon); |
| } |
| if (chipInfo.removeOnly) { |
| chip.removeOnly = true; |
| const icon = document.createElement("md-icon"); |
| icon.slot = "remove-trailing-icon"; |
| icon.textContent = chipInfo.removeIcon; |
| chip.appendChild(icon); |
| } |
| chipSet.appendChild(chip); |
| }); |
| statusDiv.appendChild(chipSet); |
| statusDiv.setAttribute("aria-label", "Ready"); |
| }); |
| </script> |
| </head> |
| <body> |
| <div id="status" aria-label="Loading"> |
| </div> |
| </body> |
| <script> |
| async function selectChip() { |
| const chip = document.getElementById("test-chip-1"); |
| if (chip) { |
| chip.selected = true; |
| await chip.updateComplete; |
| const statusDiv = document.getElementById("status"); |
| const statusText = document.createElement("div"); |
| statusText.textContent = "Input Chip Selected"; |
| statusDiv.appendChild(statusText); |
| return "Input Chip Selected"; |
| } |
| return "Failed to select Input Chip"; |
| } |
| |
| async function removeChip() { |
| const chip = document.getElementById("test-chip-2"); |
| if (chip) { |
| chip.remove(); |
| const statusDiv = document.getElementById("status"); |
| const statusText = document.createElement("div"); |
| statusText.textContent = "Input Chip Removed"; |
| statusDiv.appendChild(statusText); |
| return "Input Chip Removed"; |
| } |
| return "Failed to remove Input Chip"; |
| } |
| </script> |
| </html> |