@carbon/web-components 1.36.1 → 1.37.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/dist/accordion.min.js +1 -1
- package/dist/accordion.rtl.min.js +1 -1
- package/dist/breadcrumb.min.js +1 -1
- package/dist/breadcrumb.rtl.min.js +1 -1
- package/dist/{button-4e0b32c8.js → button-035465bb.js} +1 -1
- package/dist/{button-99f6b809.js → button-1a16f30e.js} +1 -1
- package/dist/button.min.js +1 -1
- package/dist/button.rtl.min.js +1 -1
- package/dist/{checkbox-d61e0f46.js → checkbox-61c8aa71.js} +1 -1
- package/dist/{checkbox-39ba54c6.js → checkbox-93412a35.js} +1 -1
- package/dist/checkbox.min.js +1 -1
- package/dist/checkbox.rtl.min.js +1 -1
- package/dist/code-snippet.min.js +2 -2
- package/dist/code-snippet.rtl.min.js +2 -2
- package/dist/combo-box.min.js +1 -1
- package/dist/combo-box.rtl.min.js +1 -1
- package/dist/{content-switcher-item-f853369b.js → content-switcher-item-6df85f1c.js} +1 -1
- package/dist/{content-switcher-item-55452b53.js → content-switcher-item-88761ecf.js} +1 -1
- package/dist/content-switcher.min.js +1 -1
- package/dist/content-switcher.rtl.min.js +1 -1
- package/dist/{copy-button-9fb90a01.js → copy-button-07fadd2e.js} +1 -1
- package/dist/{copy-button-7a7bbaf8.js → copy-button-d62f4b6e.js} +1 -1
- package/dist/copy-button.min.js +1 -1
- package/dist/copy-button.rtl.min.js +1 -1
- package/dist/data-table.min.js +2 -2
- package/dist/data-table.rtl.min.js +2 -2
- package/dist/date-picker.min.js +3 -3
- package/dist/date-picker.rtl.min.js +3 -3
- package/dist/{dropdown-item-2d248e51.js → dropdown-item-0d7d9847.js} +1 -1
- package/dist/{dropdown-item-9c062c1c.js → dropdown-item-5ea25a90.js} +1 -1
- package/dist/dropdown.min.js +1 -1
- package/dist/dropdown.rtl.min.js +1 -1
- package/dist/file-uploader.min.js +2 -2
- package/dist/file-uploader.rtl.min.js +2 -2
- package/dist/{floating-menu-72acc1bc.js → floating-menu-14b01da2.js} +1 -1
- package/dist/floating-menu.min.js +1 -1
- package/dist/floating-menu.rtl.min.js +1 -1
- package/dist/form.min.js +1 -1
- package/dist/form.rtl.min.js +1 -1
- package/dist/inline-loading.min.js +2 -2
- package/dist/inline-loading.rtl.min.js +2 -2
- package/dist/{input-d66d0e9c.js → input-13d32d6b.js} +2 -2
- package/dist/{input-47f04966.js → input-e5ad8493.js} +2 -2
- package/dist/input.min.js +1 -1
- package/dist/input.rtl.min.js +1 -1
- package/dist/{link-f9de12ea.js → link-00bbdb76.js} +1 -1
- package/dist/{link-afe664a3.js → link-1e3fcabc.js} +1 -1
- package/dist/link.min.js +1 -1
- package/dist/link.rtl.min.js +1 -1
- package/dist/list.min.js +1 -1
- package/dist/list.rtl.min.js +1 -1
- package/dist/{loading-926a29f5.js → loading-2a5481c6.js} +1 -1
- package/dist/{loading-a1c01e84.js → loading-5f4a55c9.js} +1 -1
- package/dist/{loading-icon-9d1c486a.js → loading-icon-4be51b70.js} +1 -1
- package/dist/loading.min.js +1 -1
- package/dist/loading.rtl.min.js +1 -1
- package/dist/modal.min.js +2 -2
- package/dist/modal.rtl.min.js +2 -2
- package/dist/multi-select.min.js +1 -1
- package/dist/multi-select.rtl.min.js +1 -1
- package/dist/notification.min.js +1 -1
- package/dist/notification.rtl.min.js +1 -1
- package/dist/number-input.min.js +2 -2
- package/dist/number-input.rtl.min.js +2 -2
- package/dist/overflow-menu.min.js +2 -2
- package/dist/overflow-menu.rtl.min.js +2 -2
- package/dist/pagination.min.js +1 -1
- package/dist/pagination.rtl.min.js +1 -1
- package/dist/progress-indicator.min.js +2 -12
- package/dist/progress-indicator.rtl.min.js +2 -12
- package/dist/radio-button.min.js +1 -1
- package/dist/radio-button.rtl.min.js +1 -1
- package/dist/{search-e6781408.js → search-7746f7ab.js} +1 -1
- package/dist/{search-f36f74c2.js → search-dc317efe.js} +1 -1
- package/dist/search.min.js +1 -1
- package/dist/search.rtl.min.js +1 -1
- package/dist/select.min.js +1 -1
- package/dist/select.rtl.min.js +1 -1
- package/dist/skeleton-placeholder.min.js +1 -1
- package/dist/skeleton-placeholder.rtl.min.js +1 -1
- package/dist/skeleton-text.min.js +1 -1
- package/dist/skeleton-text.rtl.min.js +1 -1
- package/dist/skip-to-content.min.js +1 -1
- package/dist/skip-to-content.rtl.min.js +1 -1
- package/dist/slider.min.js +1 -1
- package/dist/slider.rtl.min.js +1 -1
- package/dist/structured-list.min.js +1 -1
- package/dist/structured-list.rtl.min.js +1 -1
- package/dist/tabs.min.js +2 -2
- package/dist/tabs.rtl.min.js +2 -2
- package/dist/tag.min.js +1 -1
- package/dist/tag.rtl.min.js +1 -1
- package/dist/textarea.min.js +1 -1
- package/dist/textarea.rtl.min.js +1 -1
- package/dist/tile.min.js +1 -1
- package/dist/tile.rtl.min.js +1 -1
- package/dist/toggle.min.js +2 -2
- package/dist/toggle.rtl.min.js +2 -2
- package/dist/tooltip.min.js +2 -2
- package/dist/tooltip.rtl.min.js +2 -2
- package/dist/ui-shell.min.js +2 -2
- package/dist/ui-shell.rtl.min.js +2 -2
- package/es/components/accordion/accordion-item.js +19 -1
- package/es/components/accordion/accordion-item.js.map +1 -1
- package/es/components/accordion/accordion.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-overflow-menu.js +5 -1
- package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb.js +6 -1
- package/es/components/breadcrumb/breadcrumb.js.map +1 -1
- package/es/components/button/button-skeleton.js +21 -1
- package/es/components/button/button-skeleton.js.map +1 -1
- package/es/components/button/button.js +34 -2
- package/es/components/button/button.js.map +1 -1
- package/es/components/checkbox/checkbox.js +18 -1
- package/es/components/checkbox/checkbox.js.map +1 -1
- package/es/components/code-snippet/code-snippet-skeleton.js +5 -1
- package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
- package/es/components/code-snippet/code-snippet.js +26 -5
- package/es/components/code-snippet/code-snippet.js.map +1 -1
- package/es/components/combo-box/combo-box.js +23 -2
- package/es/components/combo-box/combo-box.js.map +1 -1
- package/es/components/content-switcher/content-switcher-item.js +11 -1
- package/es/components/content-switcher/content-switcher-item.js.map +1 -1
- package/es/components/content-switcher/content-switcher.js +7 -1
- package/es/components/content-switcher/content-switcher.js.map +1 -1
- package/es/components/copy-button/copy-button.js +15 -2
- package/es/components/copy-button/copy-button.js.map +1 -1
- package/es/components/data-table/table-batch-actions.js +15 -1
- package/es/components/data-table/table-batch-actions.js.map +1 -1
- package/es/components/data-table/table-body.js.map +1 -1
- package/es/components/data-table/table-cell-skeleton.js.map +1 -1
- package/es/components/data-table/table-cell.js.map +1 -1
- package/es/components/data-table/table-expand-row.js +10 -1
- package/es/components/data-table/table-expand-row.js.map +1 -1
- package/es/components/data-table/table-expanded-row.js +7 -1
- package/es/components/data-table/table-expanded-row.js.map +1 -1
- package/es/components/data-table/table-head.js.map +1 -1
- package/es/components/data-table/table-header-cell.js +12 -1
- package/es/components/data-table/table-header-cell.js.map +1 -1
- package/es/components/data-table/table-row.js +22 -1
- package/es/components/data-table/table-row.js.map +1 -1
- package/es/components/data-table/table-toolbar-content.js.map +1 -1
- package/es/components/data-table/table-toolbar-search.js +8 -1
- package/es/components/data-table/table-toolbar-search.js.map +1 -1
- package/es/components/data-table/table-toolbar.js.map +1 -1
- package/es/components/data-table/table.js.map +1 -1
- package/es/components/date-picker/date-picker-input-skeleton.js +4 -1
- package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
- package/es/components/date-picker/date-picker-input.js +30 -2
- package/es/components/date-picker/date-picker-input.js.map +1 -1
- package/es/components/date-picker/date-picker.js +12 -1
- package/es/components/date-picker/date-picker.js.map +1 -1
- package/es/components/dropdown/dropdown-item.js +6 -1
- package/es/components/dropdown/dropdown-item.js.map +1 -1
- package/es/components/dropdown/dropdown-skeleton.js +8 -1
- package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
- package/es/components/dropdown/dropdown.js +72 -4
- package/es/components/dropdown/dropdown.js.map +1 -1
- package/es/components/file-uploader/drop-container.js +16 -1
- package/es/components/file-uploader/drop-container.js.map +1 -1
- package/es/components/file-uploader/file-uploader-item.js +29 -3
- package/es/components/file-uploader/file-uploader-item.js.map +1 -1
- package/es/components/file-uploader/file-uploader.js +12 -1
- package/es/components/file-uploader/file-uploader.js.map +1 -1
- package/es/components/floating-menu/floating-menu.d.ts +1 -1
- package/es/components/floating-menu/floating-menu.js +5 -2
- package/es/components/floating-menu/floating-menu.js.map +1 -1
- package/es/components/form/form-item.js.map +1 -1
- package/es/components/inline-loading/inline-loading.js +14 -3
- package/es/components/inline-loading/inline-loading.js.map +1 -1
- package/es/components/input/input.d.ts +1 -1
- package/es/components/input/input.js +48 -4
- package/es/components/input/input.js.map +1 -1
- package/es/components/link/link.js +26 -3
- package/es/components/link/link.js.map +1 -1
- package/es/components/list/list-item.js +8 -1
- package/es/components/list/list-item.js.map +1 -1
- package/es/components/list/ordered-list.js +5 -1
- package/es/components/list/ordered-list.js.map +1 -1
- package/es/components/list/unordered-list.js +5 -1
- package/es/components/list/unordered-list.js.map +1 -1
- package/es/components/loading/loading-icon.js +16 -1
- package/es/components/loading/loading-icon.js.map +1 -1
- package/es/components/loading/loading.js.map +1 -1
- package/es/components/modal/modal-body.js.map +1 -1
- package/es/components/modal/modal-close-button.js +9 -1
- package/es/components/modal/modal-close-button.js.map +1 -1
- package/es/components/modal/modal-footer.js +5 -1
- package/es/components/modal/modal-footer.js.map +1 -1
- package/es/components/modal/modal-header.js.map +1 -1
- package/es/components/modal/modal-heading.js.map +1 -1
- package/es/components/modal/modal-label.js.map +1 -1
- package/es/components/modal/modal.js +20 -1
- package/es/components/modal/modal.js.map +1 -1
- package/es/components/multi-select/multi-select-item.js +19 -1
- package/es/components/multi-select/multi-select-item.js.map +1 -1
- package/es/components/multi-select/multi-select.js +35 -3
- package/es/components/multi-select/multi-select.js.map +1 -1
- package/es/components/notification/inline-notification.js +27 -3
- package/es/components/notification/inline-notification.js.map +1 -1
- package/es/components/notification/toast-notification.js +21 -2
- package/es/components/notification/toast-notification.js.map +1 -1
- package/es/components/number-input/number-input-skeleton.js +4 -1
- package/es/components/number-input/number-input-skeleton.js.map +1 -1
- package/es/components/number-input/number-input.d.ts +1 -1
- package/es/components/number-input/number-input.js +80 -6
- package/es/components/number-input/number-input.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu-item.js +16 -1
- package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.js +5 -1
- package/es/components/overflow-menu/overflow-menu.js.map +1 -1
- package/es/components/pagination/page-sizes-select.js +14 -1
- package/es/components/pagination/page-sizes-select.js.map +1 -1
- package/es/components/pagination/pages-select.js +25 -2
- package/es/components/pagination/pages-select.js.map +1 -1
- package/es/components/pagination/pagination.js +30 -1
- package/es/components/pagination/pagination.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator.js.map +1 -1
- package/es/components/progress-indicator/progress-step-skeleton.js +10 -1
- package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
- package/es/components/progress-indicator/progress-step.js +19 -2
- package/es/components/progress-indicator/progress-step.js.map +1 -1
- package/es/components/radio-button/radio-button-group.js.map +1 -1
- package/es/components/radio-button/radio-button-skeleton.js +4 -1
- package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
- package/es/components/radio-button/radio-button.js +14 -1
- package/es/components/radio-button/radio-button.js.map +1 -1
- package/es/components/search/search-skeleton.js +4 -1
- package/es/components/search/search-skeleton.js.map +1 -1
- package/es/components/search/search.js +25 -1
- package/es/components/search/search.js.map +1 -1
- package/es/components/select/select.js +58 -4
- package/es/components/select/select.js.map +1 -1
- package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
- package/es/components/skeleton-text/skeleton-text.js.map +1 -1
- package/es/components/skip-to-content/skip-to-content.js +5 -1
- package/es/components/skip-to-content/skip-to-content.js.map +1 -1
- package/es/components/slider/slider-input.js +12 -1
- package/es/components/slider/slider-input.js.map +1 -1
- package/es/components/slider/slider-skeleton.js +12 -1
- package/es/components/slider/slider-skeleton.js.map +1 -1
- package/es/components/slider/slider.js +45 -1
- package/es/components/slider/slider.js.map +1 -1
- package/es/components/structured-list/structured-list-body.js.map +1 -1
- package/es/components/structured-list/structured-list-cell.js.map +1 -1
- package/es/components/structured-list/structured-list-head.js.map +1 -1
- package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
- package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
- package/es/components/structured-list/structured-list-header-row.js +4 -1
- package/es/components/structured-list/structured-list-header-row.js.map +1 -1
- package/es/components/structured-list/structured-list-row.js +14 -1
- package/es/components/structured-list/structured-list-row.js.map +1 -1
- package/es/components/structured-list/structured-list.js +3 -1
- package/es/components/structured-list/structured-list.js.map +1 -1
- package/es/components/tabs/tab-skeleton.js.map +1 -1
- package/es/components/tabs/tab.js +11 -1
- package/es/components/tabs/tab.js.map +1 -1
- package/es/components/tabs/tabs-skeleton.js +8 -1
- package/es/components/tabs/tabs-skeleton.js.map +1 -1
- package/es/components/tabs/tabs.js +26 -1
- package/es/components/tabs/tabs.js.map +1 -1
- package/es/components/tag/filter-tag.js +6 -1
- package/es/components/tag/filter-tag.js.map +1 -1
- package/es/components/tag/tag.css.js +1 -1
- package/es/components/tag/tag.js.map +1 -1
- package/es/components/textarea/textarea-skeleton.js +4 -1
- package/es/components/textarea/textarea-skeleton.js.map +1 -1
- package/es/components/textarea/textarea.js +32 -1
- package/es/components/textarea/textarea.js.map +1 -1
- package/es/components/tile/expandable-tile.js +17 -1
- package/es/components/tile/expandable-tile.js.map +1 -1
- package/es/components/tile/selectable-tile.js +17 -1
- package/es/components/tile/selectable-tile.js.map +1 -1
- package/es/components/tile/tile-group.js.map +1 -1
- package/es/components/tile/tile.js.map +1 -1
- package/es/components/toggle/toggle.js +33 -2
- package/es/components/toggle/toggle.js.map +1 -1
- package/es/components/tooltip/tooltip-body.js +4 -1
- package/es/components/tooltip/tooltip-body.js.map +1 -1
- package/es/components/tooltip/tooltip-definition.js +8 -1
- package/es/components/tooltip/tooltip-definition.js.map +1 -1
- package/es/components/tooltip/tooltip-footer.js.map +1 -1
- package/es/components/tooltip/tooltip-icon.js +11 -1
- package/es/components/tooltip/tooltip-icon.js.map +1 -1
- package/es/components/tooltip/tooltip.js +4 -1
- package/es/components/tooltip/tooltip.js.map +1 -1
- package/es/components/ui-shell/header-menu-button.js +10 -1
- package/es/components/ui-shell/header-menu-button.js.map +1 -1
- package/es/components/ui-shell/header-menu.js +19 -1
- package/es/components/ui-shell/header-menu.js.map +1 -1
- package/es/components/ui-shell/header-name.js +10 -2
- package/es/components/ui-shell/header-name.js.map +1 -1
- package/es/components/ui-shell/header-nav-item.js +11 -1
- package/es/components/ui-shell/header-nav-item.js.map +1 -1
- package/es/components/ui-shell/header-nav.js +9 -1
- package/es/components/ui-shell/header-nav.js.map +1 -1
- package/es/components/ui-shell/header.js.map +1 -1
- package/es/components/ui-shell/side-nav-items.js.map +1 -1
- package/es/components/ui-shell/side-nav-link.js +16 -1
- package/es/components/ui-shell/side-nav-link.js.map +1 -1
- package/es/components/ui-shell/side-nav-menu-item.js +7 -1
- package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
- package/es/components/ui-shell/side-nav-menu.js +30 -1
- package/es/components/ui-shell/side-nav-menu.js.map +1 -1
- package/es/components/ui-shell/side-nav.js.map +1 -1
- package/es/globals/internal/storybook-cdn.d.ts +1 -1
- package/es/globals/internal/storybook-cdn.js +2 -2
- package/es/globals/internal/storybook-cdn.js.map +1 -1
- package/package.json +4 -3
- package/scss/components/tag/tag.scss +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-container.js","names":["classMap","html","property","LitElement","settings","HostListenerMixin","HostListener","ifNonEmpty","styles","carbonElement","customElement","FORM_ELEMENT_COLOR_SCHEME","TILE_COLOR_SCHEME","prefix","dropEffects","dragover","dragleave","BXFileDropContainer","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","_handleChange","event","_this$shadowRoot","addedFiles","_getFiles","eventChange","selectorInput","dispatchEvent","CustomEvent","bubbles","composed","detail","fileInput","shadowRoot","querySelector","decorators","_handleDrag","preventDefault","disabled","dataTransfer","type","dropEffect","_active","requestUpdate","_ref","files","target","accept","test","Array","from","acceptedTypes","Set","split","prototype","filter","call","name","mimeType","_fileExtensionRegExp$","fileExtensionRegExp","hasFileExtension","fileExtension","undefined","exec","has","Boolean","reflect","render","multiple","active","handleChange","labelClasses","dropareaClasses","_t","_","static"],"sources":["components/file-uploader/drop-container.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { html, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\nconst { prefix } = settings;\n\n/**\n * The value to set to `event.dataTransfer.dropEffect`, keyed by the event nane.\n */\nconst dropEffects = {\n dragover: 'copy',\n dragleave: 'move',\n};\n\n/**\n * File drop container.\n *\n * @element bx-file-drop-container\n * @fires bx-file-drop-container-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-drop-container`)\nclass BXFileDropContainer extends HostListenerMixin(LitElement) {\n /**\n * `true` to show the active state of this UI.\n */\n private _active = false;\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const addedFiles = this._getFiles(event);\n const { eventChange, selectorInput } = this\n .constructor as typeof BXFileDropContainer;\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n const fileInput = this?.shadowRoot?.querySelector(selectorInput);\n if (fileInput) {\n (fileInput as HTMLInputElement).value = ''; // carbon-web-components#904\n }\n }\n\n /**\n * Handles `dragover`, `dragleave` and `drop` events.\n *\n * @param event The event.\n */\n @HostListener('dragover')\n @HostListener('dragleave')\n @HostListener('drop')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleDrag(event: DragEvent) {\n event.preventDefault(); // Prevents page navigation upon dropping\n if (this.disabled) {\n return;\n }\n const { dataTransfer, type } = event;\n const dropEffect = dropEffects[type];\n if (dataTransfer && dropEffect) {\n dataTransfer.dropEffect = dropEffect;\n }\n this._active = type === 'dragover';\n if (type === 'drop') {\n this._handleChange(event);\n }\n this.requestUpdate();\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event: Event | DragEvent) {\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(' '));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : fileExtensionRegExp.exec(name) ?? [];\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n _active: active,\n _handleChange: handleChange,\n } = this;\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const dropareaClasses = classMap({\n [`${prefix}--file__drop-container`]: true,\n [`${prefix}--file__drop-container--drag-over`]: active,\n });\n return html`\n <label class=\"${labelClasses}\" for=\"file\" tabindex=\"0\">\n <div class=\"${dropareaClasses}\" role=\"button\">\n <slot></slot>\n <input\n id=\"file\"\n type=\"file\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(accept)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n @change=\"${handleChange}\" />\n </div>\n </label>\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-drop-container-changed`;\n }\n\n /**\n * A selector that will return the file `<input>`.\n */\n static get selectorInput() {\n return `.${prefix}--file-input`;\n }\n\n static styles = styles;\n}\n\nexport default BXFileDropContainer;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"drop-container.js","names":["classMap","html","property","LitElement","settings","HostListenerMixin","HostListener","ifNonEmpty","styles","carbonElement","customElement","FORM_ELEMENT_COLOR_SCHEME","TILE_COLOR_SCHEME","prefix","dropEffects","dragover","dragleave","BXFileDropContainer","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","_handleChange","event","_this$shadowRoot","addedFiles","_getFiles","eventChange","selectorInput","dispatchEvent","CustomEvent","bubbles","composed","detail","fileInput","shadowRoot","querySelector","decorators","_handleDrag","preventDefault","disabled","dataTransfer","type","dropEffect","_active","requestUpdate","_ref","files","target","accept","test","Array","from","acceptedTypes","Set","split","prototype","filter","call","name","mimeType","_fileExtensionRegExp$","fileExtensionRegExp","hasFileExtension","fileExtension","undefined","exec","has","Boolean","reflect","render","multiple","active","handleChange","labelClasses","dropareaClasses","_t","_","static"],"sources":["components/file-uploader/drop-container.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { html, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\nconst { prefix } = settings;\n\n/**\n * The value to set to `event.dataTransfer.dropEffect`, keyed by the event nane.\n */\nconst dropEffects = {\n dragover: 'copy',\n dragleave: 'move',\n};\n\n/**\n * File drop container.\n *\n * @element bx-file-drop-container\n * @fires bx-file-drop-container-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-drop-container`)\nclass BXFileDropContainer extends HostListenerMixin(LitElement) {\n /**\n * `true` to show the active state of this UI.\n */\n private _active = false;\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const addedFiles = this._getFiles(event);\n const { eventChange, selectorInput } = this\n .constructor as typeof BXFileDropContainer;\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n const fileInput = this?.shadowRoot?.querySelector(selectorInput);\n if (fileInput) {\n (fileInput as HTMLInputElement).value = ''; // carbon-web-components#904\n }\n }\n\n /**\n * Handles `dragover`, `dragleave` and `drop` events.\n *\n * @param event The event.\n */\n @HostListener('dragover')\n @HostListener('dragleave')\n @HostListener('drop')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleDrag(event: DragEvent) {\n event.preventDefault(); // Prevents page navigation upon dropping\n if (this.disabled) {\n return;\n }\n const { dataTransfer, type } = event;\n const dropEffect = dropEffects[type];\n if (dataTransfer && dropEffect) {\n dataTransfer.dropEffect = dropEffect;\n }\n this._active = type === 'dragover';\n if (type === 'drop') {\n this._handleChange(event);\n }\n this.requestUpdate();\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event: Event | DragEvent) {\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(' '));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : fileExtensionRegExp.exec(name) ?? [];\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n _active: active,\n _handleChange: handleChange,\n } = this;\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const dropareaClasses = classMap({\n [`${prefix}--file__drop-container`]: true,\n [`${prefix}--file__drop-container--drag-over`]: active,\n });\n return html`\n <label class=\"${labelClasses}\" for=\"file\" tabindex=\"0\">\n <div class=\"${dropareaClasses}\" role=\"button\">\n <slot></slot>\n <input\n id=\"file\"\n type=\"file\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(accept)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n @change=\"${handleChange}\" />\n </div>\n </label>\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-drop-container-changed`;\n }\n\n /**\n * A selector that will return the file `<input>`.\n */\n static get selectorInput() {\n return `.${prefix}--file-input`;\n }\n\n static styles = styles;\n}\n\nexport default BXFileDropContainer;\n"],"mappings":"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"}
|
|
@@ -80,7 +80,16 @@ let BXFileUploaderItem = _decorate([customElement(`${prefix}-file-uploader-item`
|
|
|
80
80
|
invalid,
|
|
81
81
|
_handleClickDeleteButton: handleClickDeleteButton
|
|
82
82
|
} = this;
|
|
83
|
-
return html(_t || (_t = _`
|
|
83
|
+
return html(_t || (_t = _`
|
|
84
|
+
${0}
|
|
85
|
+
<button
|
|
86
|
+
type="button"
|
|
87
|
+
aria-label="${0}"
|
|
88
|
+
class="${0}--file-close"
|
|
89
|
+
@click="${0}">
|
|
90
|
+
${0}
|
|
91
|
+
</button>
|
|
92
|
+
`), !invalid ? undefined : WarningFilled16({
|
|
84
93
|
class: `${prefix}--file-invalid`
|
|
85
94
|
}), deleteAssistiveText, prefix, handleClickDeleteButton, Close16());
|
|
86
95
|
}
|
|
@@ -95,7 +104,11 @@ let BXFileUploaderItem = _decorate([customElement(`${prefix}-file-uploader-item`
|
|
|
95
104
|
const {
|
|
96
105
|
uploadingAssistiveText
|
|
97
106
|
} = this;
|
|
98
|
-
return html(_t2 || (_t2 = _`
|
|
107
|
+
return html(_t2 || (_t2 = _`
|
|
108
|
+
<bx-loading
|
|
109
|
+
assistive-text="${0}"
|
|
110
|
+
type="${0}"></bx-loading>
|
|
111
|
+
`), uploadingAssistiveText, LOADING_TYPE.SMALL);
|
|
99
112
|
}
|
|
100
113
|
|
|
101
114
|
/**
|
|
@@ -229,7 +242,20 @@ let BXFileUploaderItem = _decorate([customElement(`${prefix}-file-uploader-item`
|
|
|
229
242
|
const {
|
|
230
243
|
validityMessage
|
|
231
244
|
} = this;
|
|
232
|
-
return html(_t3 || (_t3 = _`
|
|
245
|
+
return html(_t3 || (_t3 = _`
|
|
246
|
+
<p class="${0}--file-filename"><slot></slot></p>
|
|
247
|
+
<span class="${0}--file__state-container"
|
|
248
|
+
>${0}</span
|
|
249
|
+
>
|
|
250
|
+
<div class="${0}--form-requirement">
|
|
251
|
+
<div class="${0}--form-requirement__title">
|
|
252
|
+
<slot name="validity-message">${0}</slot>
|
|
253
|
+
</div>
|
|
254
|
+
<p class="${0}--form-requirement__supplement">
|
|
255
|
+
<slot name="validity-message-supplement"></slot>
|
|
256
|
+
</p>
|
|
257
|
+
</div>
|
|
258
|
+
`), prefix, prefix, this._renderStatus(), prefix, prefix, validityMessage, prefix);
|
|
233
259
|
}
|
|
234
260
|
|
|
235
261
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-uploader-item.js","names":["html","property","LitElement","CheckmarkFilled16","Close16","WarningFilled16","settings","LOADING_TYPE","FILE_UPLOADER_ITEM_SIZE","FILE_UPLOADER_ITEM_STATE","styles","carbonElement","customElement","prefix","BXFileUploaderItem","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_handleClickDeleteButton","init","bubbles","cancelable","composed","eventBeforeDelete","eventDelete","dispatchEvent","CustomEvent","_renderEditing","deleteAssistiveText","invalid","handleClickDeleteButton","_t","_","undefined","class","_renderUploading","uploadingAssistiveText","_t2","SMALL","_renderUploaded","uploadedAssistiveText","_renderStatus","state","EDITING","UPLOADING","UPLOADED","decorators","attribute","type","Boolean","reflect","REGULAR","render","validityMessage","_t3","static"],"sources":["components/file-uploader/file-uploader-item.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement } from 'lit-element';\nimport CheckmarkFilled16 from '@carbon/icons/lib/checkmark--filled/16';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport WarningFilled16 from '@carbon/icons/lib/warning--filled/16';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { LOADING_TYPE } from '../loading/loading';\nimport { FILE_UPLOADER_ITEM_SIZE, FILE_UPLOADER_ITEM_STATE } from './defs';\nimport styles from './file-uploader.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { FILE_UPLOADER_ITEM_SIZE, FILE_UPLOADER_ITEM_STATE };\n\nconst { prefix } = settings;\n\n/**\n * File uploader item.\n *\n * @element bx-file-uploader-item\n * @slot validity-message The validity message.\n * @slot validity-message-supplement The supplemental validity message.\n * @fires bx-file-uploader-item-beingdeleted\n * The custom event fired before this file uploader item is being deleted upon a user gesture.\n * Cancellation of this event stops the user-initiated action of deleting this file uploader item.\n * @fires bx-file-uploader-item-deleted - The custom event fired after this file uploader item is deleted upon a user gesture.\n */\n@customElement(`${prefix}-file-uploader-item`)\nclass BXFileUploaderItem extends LitElement {\n /**\n * Handles `click` event on the delete button.\n */\n private _handleClickDeleteButton() {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n };\n const { eventBeforeDelete, eventDelete } = this\n .constructor as typeof BXFileUploaderItem;\n if (this.dispatchEvent(new CustomEvent(eventBeforeDelete, init))) {\n this.dispatchEvent(new CustomEvent(eventDelete, init));\n }\n }\n\n /**\n * @returns The content showing the editing UI of this file uploader item.\n */\n private _renderEditing() {\n const {\n deleteAssistiveText,\n invalid,\n _handleClickDeleteButton: handleClickDeleteButton,\n } = this;\n return html`\n ${!invalid\n ? undefined\n : WarningFilled16({ class: `${prefix}--file-invalid` })}\n <button\n type=\"button\"\n aria-label=\"${deleteAssistiveText}\"\n class=\"${prefix}--file-close\"\n @click=\"${handleClickDeleteButton}\">\n ${Close16()}\n </button>\n `;\n }\n\n /**\n * @returns The content showing this file uploader's file uploading status as in progress.\n */\n private _renderUploading() {\n const { uploadingAssistiveText } = this;\n return html`\n <bx-loading\n assistive-text=\"${uploadingAssistiveText}\"\n type=\"${LOADING_TYPE.SMALL}\"></bx-loading>\n `;\n }\n\n /**\n * @returns The content showing this file uploader's file uploading status as complete.\n */\n private _renderUploaded() {\n const { uploadedAssistiveText } = this;\n return CheckmarkFilled16({\n class: `${prefix}--file-complete`,\n 'aria-label': uploadedAssistiveText,\n });\n }\n\n /**\n * @returns The content showing this file uploader's status.\n */\n private _renderStatus() {\n const { state } = this;\n switch (state) {\n case FILE_UPLOADER_ITEM_STATE.EDITING:\n return this._renderEditing();\n case FILE_UPLOADER_ITEM_STATE.UPLOADING:\n return this._renderUploading();\n case FILE_UPLOADER_ITEM_STATE.UPLOADED:\n return this._renderUploaded();\n default:\n return undefined;\n }\n }\n\n /**\n * The `aria-label` attribute for the icon to delete this file uploader item.\n */\n @property({ attribute: 'delete-assistive-text' })\n deleteAssistiveText = 'Delete this file';\n\n /**\n * Controls the invalid state and visibility of the `validityMessage`.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * The size of this file uploader item.\n */\n @property({ reflect: true })\n size = FILE_UPLOADER_ITEM_SIZE.REGULAR;\n\n /**\n * The state of this file uploader item.\n */\n @property({ reflect: true })\n state = FILE_UPLOADER_ITEM_STATE.UPLOADING;\n\n /**\n * The `aria-label` attribute for the icon to indicate file uploading is in progress.\n */\n @property({ attribute: 'uploading-assistive-text' })\n uploadingAssistiveText = 'Uploading';\n\n /**\n * The `aria-label` attribute for the icon to indicate file uploading is complete.\n */\n @property({ attribute: 'uploaded-assistive-text' })\n uploadedAssistiveText = 'Uploaded';\n\n /**\n * The validity message.\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n render() {\n const { validityMessage } = this;\n return html`\n <p class=\"${prefix}--file-filename\"><slot></slot></p>\n <span class=\"${prefix}--file__state-container\"\n >${this._renderStatus()}</span\n >\n <div class=\"${prefix}--form-requirement\">\n <div class=\"${prefix}--form-requirement__title\">\n <slot name=\"validity-message\">${validityMessage}</slot>\n </div>\n <p class=\"${prefix}--form-requirement__supplement\">\n <slot name=\"validity-message-supplement\"></slot>\n </p>\n </div>\n `;\n }\n\n /**\n * The name of the custom event fired before this file uplodaer item is being deleted upon a user gesture.\n * Cancellation of this event stops the user-initiated action of deleting this file uploader item.\n */\n static get eventBeforeDelete() {\n return `${prefix}-file-uploader-item-beingdeleted`;\n }\n\n /**\n * The name of the custom event fired after this file uplodaer item is deleted upon a user gesture.\n */\n static get eventDelete() {\n return `${prefix}-file-uploader-item-deleted`;\n }\n\n static styles = styles;\n}\n\nexport default BXFileUploaderItem;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file-uploader-item.js","names":["html","property","LitElement","CheckmarkFilled16","Close16","WarningFilled16","settings","LOADING_TYPE","FILE_UPLOADER_ITEM_SIZE","FILE_UPLOADER_ITEM_STATE","styles","carbonElement","customElement","prefix","BXFileUploaderItem","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_handleClickDeleteButton","init","bubbles","cancelable","composed","eventBeforeDelete","eventDelete","dispatchEvent","CustomEvent","_renderEditing","deleteAssistiveText","invalid","handleClickDeleteButton","_t","_","undefined","class","_renderUploading","uploadingAssistiveText","_t2","SMALL","_renderUploaded","uploadedAssistiveText","_renderStatus","state","EDITING","UPLOADING","UPLOADED","decorators","attribute","type","Boolean","reflect","REGULAR","render","validityMessage","_t3","static"],"sources":["components/file-uploader/file-uploader-item.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement } from 'lit-element';\nimport CheckmarkFilled16 from '@carbon/icons/lib/checkmark--filled/16';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport WarningFilled16 from '@carbon/icons/lib/warning--filled/16';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { LOADING_TYPE } from '../loading/loading';\nimport { FILE_UPLOADER_ITEM_SIZE, FILE_UPLOADER_ITEM_STATE } from './defs';\nimport styles from './file-uploader.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { FILE_UPLOADER_ITEM_SIZE, FILE_UPLOADER_ITEM_STATE };\n\nconst { prefix } = settings;\n\n/**\n * File uploader item.\n *\n * @element bx-file-uploader-item\n * @slot validity-message The validity message.\n * @slot validity-message-supplement The supplemental validity message.\n * @fires bx-file-uploader-item-beingdeleted\n * The custom event fired before this file uploader item is being deleted upon a user gesture.\n * Cancellation of this event stops the user-initiated action of deleting this file uploader item.\n * @fires bx-file-uploader-item-deleted - The custom event fired after this file uploader item is deleted upon a user gesture.\n */\n@customElement(`${prefix}-file-uploader-item`)\nclass BXFileUploaderItem extends LitElement {\n /**\n * Handles `click` event on the delete button.\n */\n private _handleClickDeleteButton() {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n };\n const { eventBeforeDelete, eventDelete } = this\n .constructor as typeof BXFileUploaderItem;\n if (this.dispatchEvent(new CustomEvent(eventBeforeDelete, init))) {\n this.dispatchEvent(new CustomEvent(eventDelete, init));\n }\n }\n\n /**\n * @returns The content showing the editing UI of this file uploader item.\n */\n private _renderEditing() {\n const {\n deleteAssistiveText,\n invalid,\n _handleClickDeleteButton: handleClickDeleteButton,\n } = this;\n return html`\n ${!invalid\n ? undefined\n : WarningFilled16({ class: `${prefix}--file-invalid` })}\n <button\n type=\"button\"\n aria-label=\"${deleteAssistiveText}\"\n class=\"${prefix}--file-close\"\n @click=\"${handleClickDeleteButton}\">\n ${Close16()}\n </button>\n `;\n }\n\n /**\n * @returns The content showing this file uploader's file uploading status as in progress.\n */\n private _renderUploading() {\n const { uploadingAssistiveText } = this;\n return html`\n <bx-loading\n assistive-text=\"${uploadingAssistiveText}\"\n type=\"${LOADING_TYPE.SMALL}\"></bx-loading>\n `;\n }\n\n /**\n * @returns The content showing this file uploader's file uploading status as complete.\n */\n private _renderUploaded() {\n const { uploadedAssistiveText } = this;\n return CheckmarkFilled16({\n class: `${prefix}--file-complete`,\n 'aria-label': uploadedAssistiveText,\n });\n }\n\n /**\n * @returns The content showing this file uploader's status.\n */\n private _renderStatus() {\n const { state } = this;\n switch (state) {\n case FILE_UPLOADER_ITEM_STATE.EDITING:\n return this._renderEditing();\n case FILE_UPLOADER_ITEM_STATE.UPLOADING:\n return this._renderUploading();\n case FILE_UPLOADER_ITEM_STATE.UPLOADED:\n return this._renderUploaded();\n default:\n return undefined;\n }\n }\n\n /**\n * The `aria-label` attribute for the icon to delete this file uploader item.\n */\n @property({ attribute: 'delete-assistive-text' })\n deleteAssistiveText = 'Delete this file';\n\n /**\n * Controls the invalid state and visibility of the `validityMessage`.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * The size of this file uploader item.\n */\n @property({ reflect: true })\n size = FILE_UPLOADER_ITEM_SIZE.REGULAR;\n\n /**\n * The state of this file uploader item.\n */\n @property({ reflect: true })\n state = FILE_UPLOADER_ITEM_STATE.UPLOADING;\n\n /**\n * The `aria-label` attribute for the icon to indicate file uploading is in progress.\n */\n @property({ attribute: 'uploading-assistive-text' })\n uploadingAssistiveText = 'Uploading';\n\n /**\n * The `aria-label` attribute for the icon to indicate file uploading is complete.\n */\n @property({ attribute: 'uploaded-assistive-text' })\n uploadedAssistiveText = 'Uploaded';\n\n /**\n * The validity message.\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n render() {\n const { validityMessage } = this;\n return html`\n <p class=\"${prefix}--file-filename\"><slot></slot></p>\n <span class=\"${prefix}--file__state-container\"\n >${this._renderStatus()}</span\n >\n <div class=\"${prefix}--form-requirement\">\n <div class=\"${prefix}--form-requirement__title\">\n <slot name=\"validity-message\">${validityMessage}</slot>\n </div>\n <p class=\"${prefix}--form-requirement__supplement\">\n <slot name=\"validity-message-supplement\"></slot>\n </p>\n </div>\n `;\n }\n\n /**\n * The name of the custom event fired before this file uplodaer item is being deleted upon a user gesture.\n * Cancellation of this event stops the user-initiated action of deleting this file uploader item.\n */\n static get eventBeforeDelete() {\n return `${prefix}-file-uploader-item-beingdeleted`;\n }\n\n /**\n * The name of the custom event fired after this file uplodaer item is deleted upon a user gesture.\n */\n static get eventDelete() {\n return `${prefix}-file-uploader-item-deleted`;\n }\n\n static styles = styles;\n}\n\nexport default BXFileUploaderItem;\n"],"mappings":"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"}
|
|
@@ -69,7 +69,18 @@ let BXFileUploader = _decorate([customElement(`${prefix}-file-uploader`)], funct
|
|
|
69
69
|
helperText,
|
|
70
70
|
labelText
|
|
71
71
|
} = this;
|
|
72
|
-
return html(_t || (_t = _`
|
|
72
|
+
return html(_t || (_t = _`
|
|
73
|
+
<strong class="${0}--file--label"
|
|
74
|
+
><slot name="label-text">${0}</slot></strong
|
|
75
|
+
>
|
|
76
|
+
<p class="${0}--label-description">
|
|
77
|
+
<slot name="helperText-text">${0}</slot>
|
|
78
|
+
</p>
|
|
79
|
+
<slot name="drop-container"></slot>
|
|
80
|
+
<div class="${0}--file-container">
|
|
81
|
+
<slot></slot>
|
|
82
|
+
</div>
|
|
83
|
+
`), prefix, labelText, prefix, helperText, prefix);
|
|
73
84
|
}
|
|
74
85
|
}, {
|
|
75
86
|
kind: "field",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-uploader.js","names":["html","property","LitElement","settings","styles","carbonElement","customElement","prefix","BXFileUploader","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","decorators","attribute","key","value","render","helperText","labelText","_t","_","static"],"sources":["components/file-uploader/file-uploader.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport styles from './file-uploader.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * The shell UI for file uploader.\n *\n * @element bx-file-uploader\n * @slot helper-text The helper text.\n * @slot label-text The label text.\n */\n@customElement(`${prefix}-file-uploader`)\nclass BXFileUploader extends LitElement {\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n render() {\n const { helperText, labelText } = this;\n return html`\n <strong class=\"${prefix}--file--label\"\n ><slot name=\"label-text\">${labelText}</slot></strong\n >\n <p class=\"${prefix}--label-description\">\n <slot name=\"helperText-text\">${helperText}</slot>\n </p>\n <slot name=\"drop-container\"></slot>\n <div class=\"${prefix}--file-container\">\n <slot></slot>\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXFileUploader;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,aAAa;AACxD,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,OAAOC,MAAM,MAAM,0BAAsB;AACzC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGJ,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AANA,IAQMK,cAAc,GAAAC,SAAA,EADnBH,aAAa,CAAE,GAAEC,MAAO,gBAAe,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAAzC,MACMH,cAAc,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EA8BxC;EAAC;IAAAI,CAAA,EA9BKN,cAAc;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIjBhB,QAAQ,CAAC;QAAEiB,SAAS,EAAE;MAAc,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAJ,IAAA;MAAAC,UAAA,GAKdhB,QAAQ,CAAC;QAAEiB,SAAS,EAAE;MAAa,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAJ,IAAA;MAAAG,GAAA;MAAAC,KAAA;MAVd;AACF;AACA;;MAIE;AACF;AACA;;MAIE,SAAAC,OAAA,EAAS;QACP,MAAM;UAAEC,UAAU;UAAEC;QAAU,CAAC,GAAG,IAAI;QACtC,OAAOvB,IAAI,CAAAwB,EAAA,KAAAA,EAAA,GAAAC,
|
|
1
|
+
{"version":3,"file":"file-uploader.js","names":["html","property","LitElement","settings","styles","carbonElement","customElement","prefix","BXFileUploader","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","decorators","attribute","key","value","render","helperText","labelText","_t","_","static"],"sources":["components/file-uploader/file-uploader.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport styles from './file-uploader.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * The shell UI for file uploader.\n *\n * @element bx-file-uploader\n * @slot helper-text The helper text.\n * @slot label-text The label text.\n */\n@customElement(`${prefix}-file-uploader`)\nclass BXFileUploader extends LitElement {\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n render() {\n const { helperText, labelText } = this;\n return html`\n <strong class=\"${prefix}--file--label\"\n ><slot name=\"label-text\">${labelText}</slot></strong\n >\n <p class=\"${prefix}--label-description\">\n <slot name=\"helperText-text\">${helperText}</slot>\n </p>\n <slot name=\"drop-container\"></slot>\n <div class=\"${prefix}--file-container\">\n <slot></slot>\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXFileUploader;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,aAAa;AACxD,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,OAAOC,MAAM,MAAM,0BAAsB;AACzC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGJ,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AANA,IAQMK,cAAc,GAAAC,SAAA,EADnBH,aAAa,CAAE,GAAEC,MAAO,gBAAe,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAAzC,MACMH,cAAc,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EA8BxC;EAAC;IAAAI,CAAA,EA9BKN,cAAc;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIjBhB,QAAQ,CAAC;QAAEiB,SAAS,EAAE;MAAc,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAJ,IAAA;MAAAC,UAAA,GAKdhB,QAAQ,CAAC;QAAEiB,SAAS,EAAE;MAAa,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAJ,IAAA;MAAAG,GAAA;MAAAC,KAAA;MAVd;AACF;AACA;;MAIE;AACF;AACA;;MAIE,SAAAC,OAAA,EAAS;QACP,MAAM;UAAEC,UAAU;UAAEC;QAAU,CAAC,GAAG,IAAI;QACtC,OAAOvB,IAAI,CAAAwB,EAAA,KAAAA,EAAA,GAAAC,CAAC;AAChB,uBAAqB,CAAS;AAC9B,mCAAiC,CAAY;AAC7C;AACA,kBAAgB,CAAS;AACzB,uCAAqC,CAAa;AAClD;AACA;AACA,oBAAkB,CAAS;AAC3B;AACA;AACA,KAAI,GAVmBlB,MAAM,EACMgB,SAAS,EAE1BhB,MAAM,EACee,UAAU,EAG7Bf,MAAM;MAIxB;IAAC;MAAAS,IAAA;MAAAU,MAAA;MAAAP,GAAA;MAAAC,MAAA;QAAA,OAEehB,MAAM;MAAA;IAAA;EAAA;AAAA,GA7BKF,UAAU;AAgCvC,eAAeM,cAAc"}
|
|
@@ -2,7 +2,7 @@ import _decorate from "@babel/runtime/helpers/esm/decorate";
|
|
|
2
2
|
/**
|
|
3
3
|
* @license
|
|
4
4
|
*
|
|
5
|
-
* Copyright IBM Corp. 2019,
|
|
5
|
+
* Copyright IBM Corp. 2019, 2024
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -196,7 +196,9 @@ let BXFloatingMenu = _decorate(null, function (_initialize, _HostListenerMixin)
|
|
|
196
196
|
const {
|
|
197
197
|
left: refLeft = 0,
|
|
198
198
|
top: refTop = 0,
|
|
199
|
-
right: refRight = 0
|
|
199
|
+
right: refRight = 0
|
|
200
|
+
} = triggerPosition;
|
|
201
|
+
let {
|
|
200
202
|
bottom: refBottom = 0
|
|
201
203
|
} = triggerPosition;
|
|
202
204
|
const {
|
|
@@ -208,6 +210,7 @@ let BXFloatingMenu = _decorate(null, function (_initialize, _HostListenerMixin)
|
|
|
208
210
|
right: containerRight = 0,
|
|
209
211
|
top: containerTop = 0
|
|
210
212
|
} = container.getBoundingClientRect();
|
|
213
|
+
refBottom = refBottom - containerTop;
|
|
211
214
|
const refCenterHorizontal = (refLeft + refRight) / 2;
|
|
212
215
|
const refCenterVertical = (refTop + refBottom) / 2;
|
|
213
216
|
const containerComputedStyle = container.ownerDocument.defaultView.getComputedStyle(container);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floating-menu.js","names":["LitElement","HostListener","FocusMixin","HostListenerMixin","FLOATING_MENU_ALIGNMENT","FLOATING_MENU_DIRECTION","FLOATING_MENU_DIRECTION_GROUP","FLOATING_MENU_POSITION_DIRECTION","observeResize","observer","elem","observe","release","unobserve","closestComposed","selector","found","closest","host","getRootNode","BXFloatingMenu","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","ResizeObserver","container","open","parent","position","direction","start","top","style","RTL","decorators","relatedTarget","contains","HTMLElement","prototype","focus","call","alignmentDirection","LEFT","VERTICAL","TOP","HORIZONTAL","RIGHT","BOTTOM","selectorContainer","ownerDocument","body","triggerPosition","TypeError","left","refLeft","refTop","right","refRight","bottom","refBottom","width","height","getBoundingClientRect","containerLeft","containerRight","containerTop","refCenterHorizontal","refCenterVertical","containerComputedStyle","defaultView","getComputedStyle","positionDirection","getPropertyValue","isRtl","containerStartFromViewport","innerWidth","refStartFromContainer","refEndFromContainer","refCenterHorizontalFromContainer","refTopFromContainer","refCenterVerticalFromContainer","Error","alignment","Object","values","indexOf","alignmentStart","START","CENTER","END","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","Number","exec","navigator","userAgent","disconnectedCallback","_hObserveResizeContainer","_hObserveResizeParent","updated","changedProperties","has","parentElement","appendChild","_this$parent","_resizeObserver","static"],"sources":["components/floating-menu/floating-menu.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement } from 'lit-element';\nimport HostListener from '../../globals/decorators/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport Handle from '../../globals/internal/handle';\nimport {\n FLOATING_MENU_ALIGNMENT,\n FLOATING_MENU_DIRECTION,\n FLOATING_MENU_DIRECTION_GROUP,\n FLOATING_MENU_POSITION_DIRECTION,\n} from './defs';\nimport BXFloatingMenuTrigger from './floating-menu-trigger';\n\nexport {\n FLOATING_MENU_ALIGNMENT,\n FLOATING_MENU_DIRECTION,\n FLOATING_MENU_DIRECTION_GROUP,\n FLOATING_MENU_POSITION_DIRECTION,\n};\n\n/**\n * Position of floating menu, or trigger button of floating menu.\n */\nexport interface FloatingMenuPosition {\n /**\n * The LTR/RTL direction used for positioning floating menu.\n */\n direction: FLOATING_MENU_POSITION_DIRECTION;\n\n /**\n * The start position (Left position for LTR, right position for RTL).\n */\n start: number;\n\n /**\n * The top position.\n */\n top: number;\n}\n\n/**\n * Observes resize of the given element with the given resize observer.\n *\n * @param observer The resize observer.\n * @param elem The element to observe the resize.\n */\nconst observeResize = (observer: ResizeObserver, elem: Element) => {\n observer.observe(elem);\n return {\n release() {\n observer.unobserve(elem);\n return null;\n },\n } as Handle;\n};\n\n/**\n * @param elem The starting element.\n * @param selector The CSS selector.\n * @returns {Element}\n * The closest ancestor node of the given element that matches the given selector, crossing Shadow DOM boundary.\n */\nconst closestComposed = (elem: Element, selector: string) => {\n const found = elem.closest(selector);\n if (found) {\n return found;\n }\n const { host } = elem.getRootNode() as ShadowRoot;\n if (host) {\n return closestComposed(host, selector);\n }\n return null;\n};\n\n/**\n * Floating menu.\n */\nabstract class BXFloatingMenu extends HostListenerMixin(\n FocusMixin(LitElement)\n) {\n /**\n * The handle for observing resize of the element containing the trigger button.\n */\n private _hObserveResizeParent: Handle | null = null;\n\n /**\n * The handle for observing resize of the floating menu container.\n */\n private _hObserveResizeContainer: Handle | null = null;\n\n /**\n * The `ResizeObserver` instance for observing element resizes for re-positioning floating menu position.\n */\n // TODO: Wait for `.d.ts` update to support `ResizeObserver`\n // @ts-ignore\n private _resizeObserver = new ResizeObserver(() => {\n const { container, open, parent, position } = this;\n if (container && open && parent) {\n const { direction, start, top } = position;\n this.style[\n direction !== FLOATING_MENU_POSITION_DIRECTION.RTL ? 'left' : 'right'\n ] = `${start}px`;\n this.style.top = `${top}px`;\n }\n });\n\n @HostListener('focusout')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = ({ relatedTarget }: FocusEvent) => {\n if (!this.contains(relatedTarget as Node)) {\n const { parent } = this;\n if (parent) {\n parent.open = false;\n HTMLElement.prototype.focus.call(this.parent); // SVGElement in IE11 does not have `.focus()` method\n }\n }\n };\n\n /**\n * The DOM element, typically a custom element in this library, launching this floating menu.\n */\n protected parent: BXFloatingMenuTrigger | null = null;\n\n /**\n * How the menu is aligned to the trigger button.\n */\n abstract alignment: FLOATING_MENU_ALIGNMENT;\n\n /**\n * The menu direction.\n */\n abstract direction: FLOATING_MENU_DIRECTION;\n\n /**\n * `true` if the menu should be open.\n */\n abstract open: boolean;\n\n /**\n * The horizontal/vertical direction with regard to how the menu is aligned to the trigger button.\n */\n get alignmentDirection() {\n return {\n [FLOATING_MENU_DIRECTION.LEFT]: FLOATING_MENU_DIRECTION_GROUP.VERTICAL,\n [FLOATING_MENU_DIRECTION.TOP]: FLOATING_MENU_DIRECTION_GROUP.HORIZONTAL,\n [FLOATING_MENU_DIRECTION.RIGHT]: FLOATING_MENU_DIRECTION_GROUP.VERTICAL,\n [FLOATING_MENU_DIRECTION.BOTTOM]:\n FLOATING_MENU_DIRECTION_GROUP.HORIZONTAL,\n }[this.direction];\n }\n\n /**\n * The DOM element to put this menu into.\n */\n get container() {\n return (\n closestComposed(\n this,\n (this.constructor as typeof BXFloatingMenu).selectorContainer\n ) || this.ownerDocument!.body\n );\n }\n\n /**\n * The position of this floating menu.\n */\n get position(): FloatingMenuPosition {\n const { triggerPosition } = this.parent!;\n if (!triggerPosition) {\n throw new TypeError('Missing information of trigger button position.');\n }\n\n const { container } = this;\n const {\n left: refLeft = 0,\n top: refTop = 0,\n right: refRight = 0,\n bottom: refBottom = 0,\n } = triggerPosition;\n const { width, height } = this.getBoundingClientRect();\n const {\n left: containerLeft = 0,\n right: containerRight = 0,\n top: containerTop = 0,\n } = container.getBoundingClientRect();\n const refCenterHorizontal = (refLeft + refRight) / 2;\n const refCenterVertical = (refTop + refBottom) / 2;\n\n const containerComputedStyle =\n container.ownerDocument!.defaultView!.getComputedStyle(container);\n const positionDirection = containerComputedStyle.getPropertyValue(\n 'direction'\n ) as FLOATING_MENU_POSITION_DIRECTION;\n const isRtl = positionDirection === FLOATING_MENU_POSITION_DIRECTION.RTL;\n const containerStartFromViewport = !isRtl\n ? containerLeft\n : container.ownerDocument!.defaultView!.innerWidth - containerRight;\n const refStartFromContainer = !isRtl\n ? refLeft - containerLeft\n : containerRight - refRight;\n const refEndFromContainer = !isRtl\n ? refRight - containerLeft\n : containerRight - refLeft;\n const refCenterHorizontalFromContainer = !isRtl\n ? refCenterHorizontal - containerLeft\n : containerRight - refCenterHorizontal;\n const refTopFromContainer = refTop - containerTop;\n const refCenterVerticalFromContainer = refCenterVertical - containerTop;\n\n if (\n (container !== this.ownerDocument!.body ||\n containerStartFromViewport !== 0 ||\n containerTop !== 0) &&\n containerComputedStyle.getPropertyValue('position') === 'static'\n ) {\n throw new Error(\n 'Floating menu container must not have `position:static`.'\n );\n }\n\n const { alignment, alignmentDirection, direction } = this;\n if (Object.values(FLOATING_MENU_ALIGNMENT).indexOf(alignment) < 0) {\n throw new Error(`Wrong menu alignment: ${alignment}`);\n }\n if (Object.values(FLOATING_MENU_DIRECTION).indexOf(direction) < 0) {\n throw new Error(`Wrong menu position direction: ${direction}`);\n }\n\n const alignmentStart = {\n [FLOATING_MENU_DIRECTION_GROUP.HORIZONTAL]: {\n [FLOATING_MENU_ALIGNMENT.START]: () => refStartFromContainer,\n [FLOATING_MENU_ALIGNMENT.CENTER]: () =>\n refCenterHorizontalFromContainer - width / 2,\n [FLOATING_MENU_ALIGNMENT.END]: () => refEndFromContainer - width,\n },\n [FLOATING_MENU_DIRECTION_GROUP.VERTICAL]: {\n [FLOATING_MENU_ALIGNMENT.START]: () => refTopFromContainer,\n [FLOATING_MENU_ALIGNMENT.CENTER]: () =>\n refCenterVerticalFromContainer - height / 2,\n [FLOATING_MENU_ALIGNMENT.END]: () => refBottom - height,\n },\n }[alignmentDirection][alignment]();\n\n const { start, top } = {\n [FLOATING_MENU_DIRECTION.LEFT]: () => ({\n start: refStartFromContainer - width,\n top: alignmentStart,\n }),\n [FLOATING_MENU_DIRECTION.TOP]: () => ({\n start: alignmentStart,\n top: refTopFromContainer - height,\n }),\n [FLOATING_MENU_DIRECTION.RIGHT]: () => ({\n start: refEndFromContainer,\n top: alignmentStart,\n }),\n [FLOATING_MENU_DIRECTION.BOTTOM]: () => ({\n start: alignmentStart,\n top: refBottom,\n }),\n }[direction]();\n\n return {\n direction: positionDirection,\n start,\n top,\n };\n }\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n disconnectedCallback() {\n if (this._hObserveResizeContainer) {\n this._hObserveResizeContainer = this._hObserveResizeContainer.release();\n }\n if (this._hObserveResizeParent) {\n this._hObserveResizeParent = this._hObserveResizeParent.release();\n }\n }\n\n updated(changedProperties) {\n const { container, open, parent } = this;\n if (\n (changedProperties.has('alignment') ||\n changedProperties.has('direction') ||\n changedProperties.has('open')) &&\n open\n ) {\n if (!parent) {\n this.parent = this.parentElement as BXFloatingMenuTrigger;\n container.appendChild(this);\n }\n // Note: `this.position` cannot be referenced until `this.parent` is set\n const { direction, start, top } = this.position;\n this.style[\n direction !== FLOATING_MENU_POSITION_DIRECTION.RTL ? 'left' : 'right'\n ] = `${start}px`;\n this.style.top = `${top}px`;\n }\n if (changedProperties.has('open')) {\n if (this._hObserveResizeContainer) {\n this._hObserveResizeContainer = this._hObserveResizeContainer.release();\n }\n if (this._hObserveResizeParent) {\n this._hObserveResizeParent = this._hObserveResizeParent.release();\n }\n if (open) {\n const { parentElement } = this.parent ?? {};\n this._hObserveResizeContainer = observeResize(\n this._resizeObserver,\n container\n );\n if (parentElement) {\n this._hObserveResizeParent = observeResize(\n this._resizeObserver,\n parentElement\n );\n }\n }\n }\n }\n\n /**\n * A constant indicating that this class is a floating menu.\n */\n static FLOATING_MENU = true;\n\n /**\n * The CSS selector to find the element to put this floating menu in.\n */\n static get selectorContainer() {\n return '[data-floating-menu-container],bx-modal';\n }\n}\n\nexport default BXFloatingMenu;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"floating-menu.js","names":["LitElement","HostListener","FocusMixin","HostListenerMixin","FLOATING_MENU_ALIGNMENT","FLOATING_MENU_DIRECTION","FLOATING_MENU_DIRECTION_GROUP","FLOATING_MENU_POSITION_DIRECTION","observeResize","observer","elem","observe","release","unobserve","closestComposed","selector","found","closest","host","getRootNode","BXFloatingMenu","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","ResizeObserver","container","open","parent","position","direction","start","top","style","RTL","decorators","relatedTarget","contains","HTMLElement","prototype","focus","call","alignmentDirection","LEFT","VERTICAL","TOP","HORIZONTAL","RIGHT","BOTTOM","selectorContainer","ownerDocument","body","triggerPosition","TypeError","left","refLeft","refTop","right","refRight","bottom","refBottom","width","height","getBoundingClientRect","containerLeft","containerRight","containerTop","refCenterHorizontal","refCenterVertical","containerComputedStyle","defaultView","getComputedStyle","positionDirection","getPropertyValue","isRtl","containerStartFromViewport","innerWidth","refStartFromContainer","refEndFromContainer","refCenterHorizontalFromContainer","refTopFromContainer","refCenterVerticalFromContainer","Error","alignment","Object","values","indexOf","alignmentStart","START","CENTER","END","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","Number","exec","navigator","userAgent","disconnectedCallback","_hObserveResizeContainer","_hObserveResizeParent","updated","changedProperties","has","parentElement","appendChild","_this$parent","_resizeObserver","static"],"sources":["components/floating-menu/floating-menu.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement } from 'lit-element';\nimport HostListener from '../../globals/decorators/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport Handle from '../../globals/internal/handle';\nimport {\n FLOATING_MENU_ALIGNMENT,\n FLOATING_MENU_DIRECTION,\n FLOATING_MENU_DIRECTION_GROUP,\n FLOATING_MENU_POSITION_DIRECTION,\n} from './defs';\nimport BXFloatingMenuTrigger from './floating-menu-trigger';\n\nexport {\n FLOATING_MENU_ALIGNMENT,\n FLOATING_MENU_DIRECTION,\n FLOATING_MENU_DIRECTION_GROUP,\n FLOATING_MENU_POSITION_DIRECTION,\n};\n\n/**\n * Position of floating menu, or trigger button of floating menu.\n */\nexport interface FloatingMenuPosition {\n /**\n * The LTR/RTL direction used for positioning floating menu.\n */\n direction: FLOATING_MENU_POSITION_DIRECTION;\n\n /**\n * The start position (Left position for LTR, right position for RTL).\n */\n start: number;\n\n /**\n * The top position.\n */\n top: number;\n}\n\n/**\n * Observes resize of the given element with the given resize observer.\n *\n * @param observer The resize observer.\n * @param elem The element to observe the resize.\n */\nconst observeResize = (observer: ResizeObserver, elem: Element) => {\n observer.observe(elem);\n return {\n release() {\n observer.unobserve(elem);\n return null;\n },\n } as Handle;\n};\n\n/**\n * @param elem The starting element.\n * @param selector The CSS selector.\n * @returns {Element}\n * The closest ancestor node of the given element that matches the given selector, crossing Shadow DOM boundary.\n */\nconst closestComposed = (elem: Element, selector: string) => {\n const found = elem.closest(selector);\n if (found) {\n return found;\n }\n const { host } = elem.getRootNode() as ShadowRoot;\n if (host) {\n return closestComposed(host, selector);\n }\n return null;\n};\n\n/**\n * Floating menu.\n */\nabstract class BXFloatingMenu extends HostListenerMixin(\n FocusMixin(LitElement)\n) {\n /**\n * The handle for observing resize of the element containing the trigger button.\n */\n private _hObserveResizeParent: Handle | null = null;\n\n /**\n * The handle for observing resize of the floating menu container.\n */\n private _hObserveResizeContainer: Handle | null = null;\n\n /**\n * The `ResizeObserver` instance for observing element resizes for re-positioning floating menu position.\n */\n // TODO: Wait for `.d.ts` update to support `ResizeObserver`\n // @ts-ignore\n private _resizeObserver = new ResizeObserver(() => {\n const { container, open, parent, position } = this;\n if (container && open && parent) {\n const { direction, start, top } = position;\n this.style[\n direction !== FLOATING_MENU_POSITION_DIRECTION.RTL ? 'left' : 'right'\n ] = `${start}px`;\n this.style.top = `${top}px`;\n }\n });\n\n @HostListener('focusout')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = ({ relatedTarget }: FocusEvent) => {\n if (!this.contains(relatedTarget as Node)) {\n const { parent } = this;\n if (parent) {\n parent.open = false;\n HTMLElement.prototype.focus.call(this.parent); // SVGElement in IE11 does not have `.focus()` method\n }\n }\n };\n\n /**\n * The DOM element, typically a custom element in this library, launching this floating menu.\n */\n protected parent: BXFloatingMenuTrigger | null = null;\n\n /**\n * How the menu is aligned to the trigger button.\n */\n abstract alignment: FLOATING_MENU_ALIGNMENT;\n\n /**\n * The menu direction.\n */\n abstract direction: FLOATING_MENU_DIRECTION;\n\n /**\n * `true` if the menu should be open.\n */\n abstract open: boolean;\n\n /**\n * The horizontal/vertical direction with regard to how the menu is aligned to the trigger button.\n */\n get alignmentDirection() {\n return {\n [FLOATING_MENU_DIRECTION.LEFT]: FLOATING_MENU_DIRECTION_GROUP.VERTICAL,\n [FLOATING_MENU_DIRECTION.TOP]: FLOATING_MENU_DIRECTION_GROUP.HORIZONTAL,\n [FLOATING_MENU_DIRECTION.RIGHT]: FLOATING_MENU_DIRECTION_GROUP.VERTICAL,\n [FLOATING_MENU_DIRECTION.BOTTOM]:\n FLOATING_MENU_DIRECTION_GROUP.HORIZONTAL,\n }[this.direction];\n }\n\n /**\n * The DOM element to put this menu into.\n */\n get container() {\n return (\n closestComposed(\n this,\n (this.constructor as typeof BXFloatingMenu).selectorContainer\n ) || this.ownerDocument!.body\n );\n }\n\n /**\n * The position of this floating menu.\n */\n get position(): FloatingMenuPosition {\n const { triggerPosition } = this.parent!;\n if (!triggerPosition) {\n throw new TypeError('Missing information of trigger button position.');\n }\n\n const { container } = this;\n const {\n left: refLeft = 0,\n top: refTop = 0,\n right: refRight = 0,\n } = triggerPosition;\n let { bottom: refBottom = 0 } = triggerPosition;\n const { width, height } = this.getBoundingClientRect();\n const {\n left: containerLeft = 0,\n right: containerRight = 0,\n top: containerTop = 0,\n } = container.getBoundingClientRect();\n refBottom = refBottom - containerTop;\n\n const refCenterHorizontal = (refLeft + refRight) / 2;\n const refCenterVertical = (refTop + refBottom) / 2;\n\n const containerComputedStyle =\n container.ownerDocument!.defaultView!.getComputedStyle(container);\n const positionDirection = containerComputedStyle.getPropertyValue(\n 'direction'\n ) as FLOATING_MENU_POSITION_DIRECTION;\n const isRtl = positionDirection === FLOATING_MENU_POSITION_DIRECTION.RTL;\n const containerStartFromViewport = !isRtl\n ? containerLeft\n : container.ownerDocument!.defaultView!.innerWidth - containerRight;\n const refStartFromContainer = !isRtl\n ? refLeft - containerLeft\n : containerRight - refRight;\n const refEndFromContainer = !isRtl\n ? refRight - containerLeft\n : containerRight - refLeft;\n const refCenterHorizontalFromContainer = !isRtl\n ? refCenterHorizontal - containerLeft\n : containerRight - refCenterHorizontal;\n const refTopFromContainer = refTop - containerTop;\n const refCenterVerticalFromContainer = refCenterVertical - containerTop;\n\n if (\n (container !== this.ownerDocument!.body ||\n containerStartFromViewport !== 0 ||\n containerTop !== 0) &&\n containerComputedStyle.getPropertyValue('position') === 'static'\n ) {\n throw new Error(\n 'Floating menu container must not have `position:static`.'\n );\n }\n\n const { alignment, alignmentDirection, direction } = this;\n if (Object.values(FLOATING_MENU_ALIGNMENT).indexOf(alignment) < 0) {\n throw new Error(`Wrong menu alignment: ${alignment}`);\n }\n if (Object.values(FLOATING_MENU_DIRECTION).indexOf(direction) < 0) {\n throw new Error(`Wrong menu position direction: ${direction}`);\n }\n\n const alignmentStart = {\n [FLOATING_MENU_DIRECTION_GROUP.HORIZONTAL]: {\n [FLOATING_MENU_ALIGNMENT.START]: () => refStartFromContainer,\n [FLOATING_MENU_ALIGNMENT.CENTER]: () =>\n refCenterHorizontalFromContainer - width / 2,\n [FLOATING_MENU_ALIGNMENT.END]: () => refEndFromContainer - width,\n },\n [FLOATING_MENU_DIRECTION_GROUP.VERTICAL]: {\n [FLOATING_MENU_ALIGNMENT.START]: () => refTopFromContainer,\n [FLOATING_MENU_ALIGNMENT.CENTER]: () =>\n refCenterVerticalFromContainer - height / 2,\n [FLOATING_MENU_ALIGNMENT.END]: () => refBottom - height,\n },\n }[alignmentDirection][alignment]();\n\n const { start, top } = {\n [FLOATING_MENU_DIRECTION.LEFT]: () => ({\n start: refStartFromContainer - width,\n top: alignmentStart,\n }),\n [FLOATING_MENU_DIRECTION.TOP]: () => ({\n start: alignmentStart,\n top: refTopFromContainer - height,\n }),\n [FLOATING_MENU_DIRECTION.RIGHT]: () => ({\n start: refEndFromContainer,\n top: alignmentStart,\n }),\n [FLOATING_MENU_DIRECTION.BOTTOM]: () => ({\n start: alignmentStart,\n top: refBottom,\n }),\n }[direction]();\n\n return {\n direction: positionDirection,\n start,\n top,\n };\n }\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n disconnectedCallback() {\n if (this._hObserveResizeContainer) {\n this._hObserveResizeContainer = this._hObserveResizeContainer.release();\n }\n if (this._hObserveResizeParent) {\n this._hObserveResizeParent = this._hObserveResizeParent.release();\n }\n }\n\n updated(changedProperties) {\n const { container, open, parent } = this;\n if (\n (changedProperties.has('alignment') ||\n changedProperties.has('direction') ||\n changedProperties.has('open')) &&\n open\n ) {\n if (!parent) {\n this.parent = this.parentElement as BXFloatingMenuTrigger;\n container.appendChild(this);\n }\n // Note: `this.position` cannot be referenced until `this.parent` is set\n const { direction, start, top } = this.position;\n this.style[\n direction !== FLOATING_MENU_POSITION_DIRECTION.RTL ? 'left' : 'right'\n ] = `${start}px`;\n this.style.top = `${top}px`;\n }\n if (changedProperties.has('open')) {\n if (this._hObserveResizeContainer) {\n this._hObserveResizeContainer = this._hObserveResizeContainer.release();\n }\n if (this._hObserveResizeParent) {\n this._hObserveResizeParent = this._hObserveResizeParent.release();\n }\n if (open) {\n const { parentElement } = this.parent ?? {};\n this._hObserveResizeContainer = observeResize(\n this._resizeObserver,\n container\n );\n if (parentElement) {\n this._hObserveResizeParent = observeResize(\n this._resizeObserver,\n parentElement\n );\n }\n }\n }\n }\n\n /**\n * A constant indicating that this class is a floating menu.\n */\n static FLOATING_MENU = true;\n\n /**\n * The CSS selector to find the element to put this floating menu in.\n */\n static get selectorContainer() {\n return '[data-floating-menu-container],bx-modal';\n }\n}\n\nexport default BXFloatingMenu;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-item.js","names":["settings","LitElement","html","carbonElement","customElement","styles","prefix","BXFormItem","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","render","_t","_","static","default"],"sources":["components/form/form-item.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { LitElement, html } from 'lit-element';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport styles from './form-item.scss';\n\nconst { prefix } = settings;\n\n/**\n * Presentational element for form items\n *\n * @element bx-form-item\n */\n@customElement(`${prefix}-form-item`)\nexport default class BXFormItem extends LitElement {\n render() {\n return html` <slot></slot> `;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,UAAU,EAAEC,IAAI,QAAQ,aAAa;AAC9C,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AACxF,OAAOC,MAAM,MAAM,sBAAkB;AAErC,MAAM;EAAEC;AAAO,CAAC,GAAGN,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AAJA,IAMqBO,UAAU,GAAAC,SAAA,EAD9BJ,aAAa,CAAE,GAAEE,MAAO,YAAW,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAArC,MACqBH,UAAU,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAMnD;EAAC;IAAAI,CAAA,EANoBN,UAAU;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAC7B,SAAAC,OAAA,EAAS;QACP,OAAOhB,IAAI,CAAAiB,EAAA,KAAAA,EAAA,GAAAC,
|
|
1
|
+
{"version":3,"file":"form-item.js","names":["settings","LitElement","html","carbonElement","customElement","styles","prefix","BXFormItem","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","render","_t","_","static","default"],"sources":["components/form/form-item.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { LitElement, html } from 'lit-element';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport styles from './form-item.scss';\n\nconst { prefix } = settings;\n\n/**\n * Presentational element for form items\n *\n * @element bx-form-item\n */\n@customElement(`${prefix}-form-item`)\nexport default class BXFormItem extends LitElement {\n render() {\n return html` <slot></slot> `;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,UAAU,EAAEC,IAAI,QAAQ,aAAa;AAC9C,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AACxF,OAAOC,MAAM,MAAM,sBAAkB;AAErC,MAAM;EAAEC;AAAO,CAAC,GAAGN,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AAJA,IAMqBO,UAAU,GAAAC,SAAA,EAD9BJ,aAAa,CAAE,GAAEE,MAAO,YAAW,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAArC,MACqBH,UAAU,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAMnD;EAAC;IAAAI,CAAA,EANoBN,UAAU;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAC7B,SAAAC,OAAA,EAAS;QACP,OAAOhB,IAAI,CAAAiB,EAAA,KAAAA,EAAA,GAAAC,CAAC,iBAAe;MAC7B;IAAC;MAAAL,IAAA;MAAAM,MAAA;MAAAL,GAAA;MAAAC,MAAA;QAAA,OAEeZ,MAAM;MAAA;IAAA;EAAA;AAAA,GALgBJ,UAAU;AAAA,SAA7BM,UAAU,IAAAe,OAAA"}
|
|
@@ -70,7 +70,11 @@ let BXInlineLoading = _decorate([customElement(`${prefix}-inline-loading`)], fun
|
|
|
70
70
|
[`${prefix}--loading--small`]: true,
|
|
71
71
|
[`${prefix}--loading--stop`]: status === INLINE_LOADING_STATE.INACTIVE
|
|
72
72
|
});
|
|
73
|
-
return html(_t || (_t = _`
|
|
73
|
+
return html(_t || (_t = _`
|
|
74
|
+
<div class="${0}">
|
|
75
|
+
${0}
|
|
76
|
+
</div>
|
|
77
|
+
`), classes, getLoadingIcon({
|
|
74
78
|
type: LOADING_TYPE.SMALL
|
|
75
79
|
}));
|
|
76
80
|
}
|
|
@@ -103,8 +107,15 @@ let BXInlineLoading = _decorate([customElement(`${prefix}-inline-loading`)], fun
|
|
|
103
107
|
key: "render",
|
|
104
108
|
value: function render() {
|
|
105
109
|
const statusIconResult = this._renderIcon();
|
|
106
|
-
const statusIconWrapperResult = !statusIconResult ? undefined : html(_t2 || (_t2 = _`
|
|
107
|
-
|
|
110
|
+
const statusIconWrapperResult = !statusIconResult ? undefined : html(_t2 || (_t2 = _`
|
|
111
|
+
<div class="${0}--inline-loading__animation">
|
|
112
|
+
${0}
|
|
113
|
+
</div>
|
|
114
|
+
`), prefix, statusIconResult);
|
|
115
|
+
return html(_t3 || (_t3 = _`
|
|
116
|
+
${0}
|
|
117
|
+
<p class="${0}--inline-loading__text"><slot></slot></p>
|
|
118
|
+
`), statusIconWrapperResult, prefix);
|
|
108
119
|
}
|
|
109
120
|
}, {
|
|
110
121
|
kind: "field",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-loading.js","names":["html","property","LitElement","classMap","CheckmarkFilled16","ErrorFilled16","settings","LOADING_TYPE","getLoadingIcon","INLINE_LOADING_STATE","styles","carbonElement","customElement","prefix","BXInlineLoading","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_renderIcon","status","ERROR","class","FINISHED","INACTIVE","ACTIVE","classes","_t","_","type","SMALL","undefined","decorators","reflect","connectedCallback","hasAttribute","setAttribute","_get","_getPrototypeOf","prototype","call","render","statusIconResult","statusIconWrapperResult","_t2","_t3","static"],"sources":["components/inline-loading/inline-loading.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement } from 'lit-element';\nimport { classMap } from 'lit-html/directives/class-map';\nimport CheckmarkFilled16 from '@carbon/icons/lib/checkmark--filled/16';\nimport ErrorFilled16 from '@carbon/icons/lib/error--filled/16';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport LOADING_TYPE from '../loading/types';\nimport getLoadingIcon from '../loading/loading-icon';\nimport { INLINE_LOADING_STATE } from './defs';\nimport styles from './inline-loading.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { INLINE_LOADING_STATE };\n\nconst { prefix } = settings;\n\n/**\n * Lnline loading spinner.\n *\n * @element bx-inline-loading\n */\n@customElement(`${prefix}-inline-loading`)\nclass BXInlineLoading extends LitElement {\n /**\n * @returns The template for the status icon.\n */\n private _renderIcon() {\n const { status } = this;\n if (status === INLINE_LOADING_STATE.ERROR) {\n return ErrorFilled16({\n class: `${prefix}--inline-loading--error`,\n });\n }\n if (status === INLINE_LOADING_STATE.FINISHED) {\n return CheckmarkFilled16({\n class: `${prefix}--inline-loading__checkmark-container ${prefix}--inline-loading__svg`,\n });\n }\n if (\n status === INLINE_LOADING_STATE.INACTIVE ||\n status === INLINE_LOADING_STATE.ACTIVE\n ) {\n const classes = classMap({\n [`${prefix}--loading`]: true,\n [`${prefix}--loading--small`]: true,\n [`${prefix}--loading--stop`]: status === INLINE_LOADING_STATE.INACTIVE,\n });\n return html`\n <div class=\"${classes}\">\n ${getLoadingIcon({ type: LOADING_TYPE.SMALL })}\n </div>\n `;\n }\n return undefined;\n }\n\n /**\n * The loading status.\n */\n @property({ reflect: true })\n status = INLINE_LOADING_STATE.ACTIVE;\n\n connectedCallback() {\n if (!this.hasAttribute('aria-live')) {\n this.setAttribute('aria-live', 'assertive');\n }\n super.connectedCallback();\n }\n\n render() {\n const statusIconResult = this._renderIcon();\n const statusIconWrapperResult = !statusIconResult\n ? undefined\n : html`\n <div class=\"${prefix}--inline-loading__animation\">\n ${statusIconResult}\n </div>\n `;\n return html`\n ${statusIconWrapperResult}\n <p class=\"${prefix}--inline-loading__text\"><slot></slot></p>\n `;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXInlineLoading;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,aAAa;AACxD,SAASC,QAAQ,QAAQ,+BAA+B;AACxD,OAAOC,iBAAiB,MAAM,kCAAwC;AACtE,OAAOC,aAAa,MAAM,8BAAoC;AAC9D,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,OAAOC,cAAc,MAAM,yBAAyB;AACpD,SAASC,oBAAoB,QAAQ,QAAQ;AAC7C,OAAOC,MAAM,MAAM,2BAAuB;AAC1C,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,SAASH,oBAAoB;AAE7B,MAAM;EAAEI;AAAO,CAAC,GAAGP,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AAJA,IAMMQ,eAAe,GAAAC,SAAA,EADpBH,aAAa,CAAE,GAAEC,MAAO,iBAAgB,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAA1C,MACMH,eAAe,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EA+DzC;EAAC;IAAAI,CAAA,EA/DKN,eAAe;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA;MACnB;AACF;AACA;MACE,SAAAC,YAAA,EAAsB;QACpB,MAAM;UAAEC;QAAO,CAAC,GAAG,IAAI;QACvB,IAAIA,MAAM,KAAKjB,oBAAoB,CAACkB,KAAK,EAAE;UACzC,OAAOtB,aAAa,CAAC;YACnBuB,KAAK,EAAG,GAAEf,MAAO;UACnB,CAAC,CAAC;QACJ;QACA,IAAIa,MAAM,KAAKjB,oBAAoB,CAACoB,QAAQ,EAAE;UAC5C,OAAOzB,iBAAiB,CAAC;YACvBwB,KAAK,EAAG,GAAEf,MAAO,yCAAwCA,MAAO;UAClE,CAAC,CAAC;QACJ;QACA,IACEa,MAAM,KAAKjB,oBAAoB,CAACqB,QAAQ,IACxCJ,MAAM,KAAKjB,oBAAoB,CAACsB,MAAM,EACtC;UACA,MAAMC,OAAO,GAAG7B,QAAQ,CAAC;YACvB,CAAE,GAAEU,MAAO,WAAU,GAAG,IAAI;YAC5B,CAAE,GAAEA,MAAO,kBAAiB,GAAG,IAAI;YACnC,CAAE,GAAEA,MAAO,iBAAgB,GAAGa,MAAM,KAAKjB,oBAAoB,CAACqB;UAChE,CAAC,CAAC;UACF,OAAO9B,IAAI,CAAAiC,EAAA,KAAAA,EAAA,GAAAC,
|
|
1
|
+
{"version":3,"file":"inline-loading.js","names":["html","property","LitElement","classMap","CheckmarkFilled16","ErrorFilled16","settings","LOADING_TYPE","getLoadingIcon","INLINE_LOADING_STATE","styles","carbonElement","customElement","prefix","BXInlineLoading","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_renderIcon","status","ERROR","class","FINISHED","INACTIVE","ACTIVE","classes","_t","_","type","SMALL","undefined","decorators","reflect","connectedCallback","hasAttribute","setAttribute","_get","_getPrototypeOf","prototype","call","render","statusIconResult","statusIconWrapperResult","_t2","_t3","static"],"sources":["components/inline-loading/inline-loading.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement } from 'lit-element';\nimport { classMap } from 'lit-html/directives/class-map';\nimport CheckmarkFilled16 from '@carbon/icons/lib/checkmark--filled/16';\nimport ErrorFilled16 from '@carbon/icons/lib/error--filled/16';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport LOADING_TYPE from '../loading/types';\nimport getLoadingIcon from '../loading/loading-icon';\nimport { INLINE_LOADING_STATE } from './defs';\nimport styles from './inline-loading.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { INLINE_LOADING_STATE };\n\nconst { prefix } = settings;\n\n/**\n * Lnline loading spinner.\n *\n * @element bx-inline-loading\n */\n@customElement(`${prefix}-inline-loading`)\nclass BXInlineLoading extends LitElement {\n /**\n * @returns The template for the status icon.\n */\n private _renderIcon() {\n const { status } = this;\n if (status === INLINE_LOADING_STATE.ERROR) {\n return ErrorFilled16({\n class: `${prefix}--inline-loading--error`,\n });\n }\n if (status === INLINE_LOADING_STATE.FINISHED) {\n return CheckmarkFilled16({\n class: `${prefix}--inline-loading__checkmark-container ${prefix}--inline-loading__svg`,\n });\n }\n if (\n status === INLINE_LOADING_STATE.INACTIVE ||\n status === INLINE_LOADING_STATE.ACTIVE\n ) {\n const classes = classMap({\n [`${prefix}--loading`]: true,\n [`${prefix}--loading--small`]: true,\n [`${prefix}--loading--stop`]: status === INLINE_LOADING_STATE.INACTIVE,\n });\n return html`\n <div class=\"${classes}\">\n ${getLoadingIcon({ type: LOADING_TYPE.SMALL })}\n </div>\n `;\n }\n return undefined;\n }\n\n /**\n * The loading status.\n */\n @property({ reflect: true })\n status = INLINE_LOADING_STATE.ACTIVE;\n\n connectedCallback() {\n if (!this.hasAttribute('aria-live')) {\n this.setAttribute('aria-live', 'assertive');\n }\n super.connectedCallback();\n }\n\n render() {\n const statusIconResult = this._renderIcon();\n const statusIconWrapperResult = !statusIconResult\n ? undefined\n : html`\n <div class=\"${prefix}--inline-loading__animation\">\n ${statusIconResult}\n </div>\n `;\n return html`\n ${statusIconWrapperResult}\n <p class=\"${prefix}--inline-loading__text\"><slot></slot></p>\n `;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXInlineLoading;\n"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ let _ = t => t,
|
|
|
6
6
|
/**
|
|
7
7
|
* @license
|
|
8
8
|
*
|
|
9
|
-
* Copyright IBM Corp. 2019,
|
|
9
|
+
* Copyright IBM Corp. 2019, 2024
|
|
10
10
|
*
|
|
11
11
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
12
12
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -409,9 +409,53 @@ let BXInput = _decorate([customElement(`${prefix}-input`)], function (_initializ
|
|
|
409
409
|
[`${prefix}--tooltip--${this.tooltipDirection}`]: this.tooltipDirection,
|
|
410
410
|
[`${prefix}--tooltip--align-${this.tooltipAlignment}`]: this.tooltipAlignment
|
|
411
411
|
});
|
|
412
|
-
const passwordButtonLabel = html(_t || (_t = _`
|
|
413
|
-
|
|
414
|
-
|
|
412
|
+
const passwordButtonLabel = html(_t || (_t = _`
|
|
413
|
+
<span class="${0}--assistive-text">
|
|
414
|
+
${0}
|
|
415
|
+
</span>
|
|
416
|
+
`), prefix, passwordIsVisible ? this.hidePasswordLabel : this.showPasswordLabel);
|
|
417
|
+
const passwordVisibilityButton = () => html(_t2 || (_t2 = _`
|
|
418
|
+
<button
|
|
419
|
+
type="button"
|
|
420
|
+
class="${0}"
|
|
421
|
+
?disabled="${0}"
|
|
422
|
+
@click="${0}">
|
|
423
|
+
${0} ${0}
|
|
424
|
+
</button>
|
|
425
|
+
`), passwordVisibilityToggleClasses, this.disabled, this.handleTogglePasswordVisibility, !this.disabled && passwordButtonLabel, passwordVisibilityIcon);
|
|
426
|
+
return html(_t3 || (_t3 = _`
|
|
427
|
+
<label class="${0}" for="input">
|
|
428
|
+
<slot name="label-text"> ${0} </slot>
|
|
429
|
+
</label>
|
|
430
|
+
<div
|
|
431
|
+
class="${0}--text-input__field-wrapper"
|
|
432
|
+
?data-invalid="${0}">
|
|
433
|
+
${0}
|
|
434
|
+
<input
|
|
435
|
+
autocomplete="${0}"
|
|
436
|
+
?autofocus="${0}"
|
|
437
|
+
class="${0}"
|
|
438
|
+
?data-invalid="${0}"
|
|
439
|
+
?disabled="${0}"
|
|
440
|
+
aria-describedby="helper-text"
|
|
441
|
+
id="input"
|
|
442
|
+
name="${0}"
|
|
443
|
+
pattern="${0}"
|
|
444
|
+
placeholder="${0}"
|
|
445
|
+
?readonly="${0}"
|
|
446
|
+
?required="${0}"
|
|
447
|
+
type="${0}"
|
|
448
|
+
.value="${0}"
|
|
449
|
+
@input="${0}" />
|
|
450
|
+
${0}
|
|
451
|
+
</div>
|
|
452
|
+
<div class="${0}" id="helper-text">
|
|
453
|
+
<slot name="helper-text"> ${0} </slot>
|
|
454
|
+
</div>
|
|
455
|
+
<div class="${0}--form-requirement">
|
|
456
|
+
<slot name="validity-message"> ${0} </slot>
|
|
457
|
+
</div>
|
|
458
|
+
`), labelClasses, this.labelText, prefix, this.invalid, this.invalid ? invalidIcon : null, this.autocomplete, this.autofocus, inputClasses, this.invalid, this.disabled, ifNonEmpty(this.name), ifNonEmpty(this.pattern), ifNonEmpty(this.placeholder), this.readonly, this.required, ifNonEmpty(this.type), this.value, handleInput, this.showPasswordVisibilityToggle && (this.type === INPUT_TYPE.PASSWORD || this.type === INPUT_TYPE.TEXT) ? passwordVisibilityButton() : null, helperTextClasses, this.helperText, prefix, this.validityMessage);
|
|
415
459
|
}
|
|
416
460
|
}, {
|
|
417
461
|
kind: "field",
|