@schukai/monster 3.64.1 → 3.65.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +92 -318
- package/README.md +44 -40
- package/package.json +1 -47
- package/source/components/constants.mjs +10 -3
- package/source/components/datatable/change-button.mjs +12 -5
- package/source/components/datatable/columnbar.mjs +10 -1
- package/source/components/datatable/constants.mjs +11 -4
- package/source/components/datatable/dataset.mjs +10 -1
- package/source/components/datatable/datasource/dom.mjs +14 -1
- package/source/components/datatable/datasource/rest.mjs +10 -1
- package/source/components/datatable/datasource.mjs +10 -1
- package/source/components/datatable/datatable/header.mjs +12 -3
- package/source/components/datatable/datatable.mjs +757 -752
- package/source/components/datatable/embedded-pagination.mjs +10 -1
- package/source/components/datatable/filter/abstract-base.mjs +10 -1
- package/source/components/datatable/filter/date-range.mjs +10 -1
- package/source/components/datatable/filter/input.mjs +10 -1
- package/source/components/datatable/filter/range.mjs +10 -1
- package/source/components/datatable/filter/select.mjs +11 -4
- package/source/components/datatable/filter/settings.mjs +14 -0
- package/source/components/datatable/filter/util.mjs +14 -0
- package/source/components/datatable/filter-button.mjs +10 -1
- package/source/components/datatable/filter.mjs +11 -3
- package/source/components/datatable/pagination.mjs +14 -5
- package/source/components/datatable/save-button.mjs +279 -270
- package/source/components/datatable/status.mjs +10 -1
- package/source/components/datatable/style/dataset.pcss +1 -0
- package/source/components/datatable/style/datatable.pcss +1 -0
- package/source/components/datatable/stylesheet/change-button.mjs +16 -7
- package/source/components/datatable/stylesheet/column-bar.mjs +16 -7
- package/source/components/datatable/stylesheet/dataset.mjs +17 -8
- package/source/components/datatable/stylesheet/datasource.mjs +16 -7
- package/source/components/datatable/stylesheet/datatable.mjs +17 -8
- package/source/components/datatable/stylesheet/embedded-pagination.mjs +16 -7
- package/source/components/datatable/stylesheet/filter-button.mjs +16 -7
- package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +16 -7
- package/source/components/datatable/stylesheet/filter-date-range.mjs +16 -7
- package/source/components/datatable/stylesheet/filter-range.mjs +16 -7
- package/source/components/datatable/stylesheet/filter.mjs +16 -7
- package/source/components/datatable/stylesheet/pagination.mjs +16 -7
- package/source/components/datatable/stylesheet/save-button.mjs +16 -7
- package/source/components/datatable/stylesheet/select-filter.mjs +16 -7
- package/source/components/datatable/stylesheet/status.mjs +16 -7
- package/source/components/datatable/util.mjs +16 -8
- package/source/components/form/action-button.mjs +11 -3
- package/source/components/form/api-button.mjs +11 -3
- package/source/components/form/button-bar.mjs +11 -3
- package/source/components/form/button.mjs +37 -50
- package/source/components/form/confirm-button.mjs +11 -3
- package/source/components/form/constants.mjs +10 -3
- package/source/components/form/context-error.mjs +69 -52
- package/source/components/form/context-help.mjs +11 -3
- package/source/components/form/field-set.mjs +295 -0
- package/source/components/form/form.mjs +12 -4
- package/source/components/form/message-state-button.mjs +11 -3
- package/source/components/form/popper-button.mjs +11 -3
- package/source/components/form/popper.mjs +13 -480
- package/source/components/form/reload.mjs +12 -4
- package/source/components/form/select.mjs +44 -33
- package/source/components/form/shadow-reload.mjs +11 -3
- package/source/components/form/state-button.mjs +11 -3
- package/source/components/form/style/field-set.pcss +13 -0
- package/source/components/form/stylesheet/action-button.mjs +16 -7
- package/source/components/form/stylesheet/api-button.mjs +16 -7
- package/source/components/form/stylesheet/button-bar.mjs +17 -8
- package/source/components/form/stylesheet/button.mjs +16 -7
- package/source/components/form/stylesheet/confirm-button.mjs +17 -8
- package/source/components/form/stylesheet/context-error.mjs +16 -7
- package/source/components/form/stylesheet/context-help.mjs +16 -7
- package/source/components/form/stylesheet/field-set.mjs +40 -0
- package/source/components/form/stylesheet/form.mjs +17 -8
- package/source/components/form/stylesheet/message-state-button.mjs +16 -7
- package/source/components/form/stylesheet/popper-button.mjs +16 -7
- package/source/components/form/stylesheet/select.mjs +16 -7
- package/source/components/form/stylesheet/state-button.mjs +16 -7
- package/source/components/form/stylesheet/toggle-switch.mjs +16 -7
- package/source/components/form/stylesheet/tree-select.mjs +16 -7
- package/source/components/form/tabs.mjs +12 -8
- package/source/components/form/template.mjs +11 -3
- package/source/components/form/toggle-switch.mjs +12 -8
- package/source/components/form/tree-select.mjs +10 -3
- package/source/components/form/types/state.mjs +10 -3
- package/source/components/form/util/fetch.mjs +10 -3
- package/source/components/form/util/floating-ui.mjs +10 -3
- package/source/components/form/util/popper.mjs +10 -3
- package/source/components/host/call-button.mjs +10 -1
- package/source/components/host/collapse.mjs +15 -519
- package/source/components/host/config-manager.mjs +10 -1
- package/source/components/host/constants.mjs +11 -4
- package/source/components/host/details.mjs +14 -256
- package/source/components/host/host.mjs +10 -1
- package/source/components/host/overlay.mjs +10 -1
- package/source/components/host/stylesheet/call-button.mjs +16 -7
- package/source/components/host/stylesheet/config-manager.mjs +16 -7
- package/source/components/host/stylesheet/host.mjs +17 -8
- package/source/components/host/stylesheet/overlay.mjs +17 -8
- package/source/components/host/stylesheet/toggle-button.mjs +16 -7
- package/source/components/host/stylesheet/viewer.mjs +16 -7
- package/source/components/host/toggle-button.mjs +10 -1
- package/source/components/host/util.mjs +14 -0
- package/source/components/host/viewer.mjs +10 -1
- package/source/components/layout/collapse.mjs +543 -0
- package/source/components/layout/details.mjs +273 -0
- package/source/components/layout/panel.mjs +179 -169
- package/source/components/layout/popper.mjs +480 -0
- package/source/components/layout/split-panel.mjs +329 -303
- package/source/components/{host → layout}/stylesheet/collapse.mjs +16 -7
- package/source/components/{host → layout}/stylesheet/details.mjs +16 -7
- package/source/components/layout/stylesheet/panel.mjs +16 -7
- package/source/components/{form → layout}/stylesheet/popper.mjs +16 -7
- package/source/components/layout/stylesheet/split-panel.mjs +16 -7
- package/source/components/layout/stylesheet/tabs.mjs +16 -7
- package/source/components/layout/stylesheet/width-toggle.mjs +16 -7
- package/source/components/layout/tabs.mjs +38 -23
- package/source/components/layout/width-toggle.mjs +150 -140
- package/source/components/navigation/style/table-of-content.pcss +99 -0
- package/source/components/navigation/stylesheet/table-of-content.mjs +40 -0
- package/source/components/navigation/table-of-content.mjs +546 -0
- package/source/components/notify/constants.mjs +10 -3
- package/source/components/notify/message.mjs +16 -9
- package/source/components/notify/notify.mjs +11 -4
- package/source/components/notify/stylesheet/message.mjs +16 -7
- package/source/components/notify/stylesheet/notify.mjs +16 -7
- package/source/components/state/log/entry.mjs +10 -1
- package/source/components/state/log.mjs +10 -1
- package/source/components/state/state.mjs +10 -1
- package/source/components/state/stylesheet/log.mjs +16 -7
- package/source/components/state/stylesheet/state.mjs +17 -8
- package/source/components/style/link.pcss +0 -1
- package/source/components/style/mixin/form.pcss +0 -1
- package/source/components/style/mixin/typography.pcss +7 -7
- package/source/components/style/typography.pcss +1 -1
- package/source/components/stylesheet/badge.mjs +16 -7
- package/source/components/stylesheet/border.mjs +16 -7
- package/source/components/stylesheet/button.mjs +16 -7
- package/source/components/stylesheet/card.mjs +16 -7
- package/source/components/stylesheet/color.mjs +16 -7
- package/source/components/stylesheet/common.mjs +16 -7
- package/source/components/stylesheet/control.mjs +16 -7
- package/source/components/stylesheet/data-grid.mjs +16 -7
- package/source/components/stylesheet/display.mjs +16 -7
- package/source/components/stylesheet/floating-ui.mjs +16 -7
- package/source/components/stylesheet/form.mjs +16 -7
- package/source/components/stylesheet/host.mjs +16 -7
- package/source/components/stylesheet/icons.mjs +16 -7
- package/source/components/stylesheet/link.mjs +16 -7
- package/source/components/stylesheet/mixin/badge.mjs +16 -7
- package/source/components/stylesheet/mixin/button.mjs +16 -7
- package/source/components/stylesheet/mixin/form.mjs +16 -7
- package/source/components/stylesheet/mixin/hover.mjs +16 -7
- package/source/components/stylesheet/mixin/icon.mjs +16 -7
- package/source/components/stylesheet/mixin/media.mjs +16 -7
- package/source/components/stylesheet/mixin/property.mjs +16 -7
- package/source/components/stylesheet/mixin/skeleton.mjs +16 -7
- package/source/components/stylesheet/mixin/spinner.mjs +16 -7
- package/source/components/stylesheet/mixin/typography.mjs +16 -7
- package/source/components/stylesheet/normalize.mjs +16 -7
- package/source/components/stylesheet/popper.mjs +16 -7
- package/source/components/stylesheet/property.mjs +16 -7
- package/source/components/stylesheet/ripple.mjs +16 -7
- package/source/components/stylesheet/skeleton.mjs +16 -7
- package/source/components/stylesheet/space.mjs +16 -7
- package/source/components/stylesheet/spinner.mjs +16 -7
- package/source/components/stylesheet/table.mjs +16 -7
- package/source/components/stylesheet/theme.mjs +16 -7
- package/source/components/stylesheet/tree-menu.mjs +10 -3
- package/source/components/stylesheet/typography.mjs +17 -8
- package/source/components/tree-menu/stylesheet/tree-menu.mjs +16 -7
- package/source/components/tree-menu/tree-menu.mjs +19 -8
- package/source/constants.mjs +10 -6
- package/source/constraints/abstract.mjs +10 -3
- package/source/constraints/abstractoperator.mjs +10 -3
- package/source/constraints/andoperator.mjs +10 -3
- package/source/constraints/invalid.mjs +10 -3
- package/source/constraints/isarray.mjs +10 -3
- package/source/constraints/isobject.mjs +10 -3
- package/source/constraints/oroperator.mjs +10 -3
- package/source/constraints/valid.mjs +10 -3
- package/source/data/buildmap.mjs +10 -3
- package/source/data/buildtree.mjs +10 -3
- package/source/data/datasource/dom.mjs +10 -3
- package/source/data/datasource/server/restapi/data-fetch-error.mjs +10 -3
- package/source/data/datasource/server/restapi/writeerror.mjs +10 -3
- package/source/data/datasource/server/restapi.mjs +10 -3
- package/source/data/datasource/server/webconnect.mjs +10 -3
- package/source/data/datasource/server.mjs +10 -3
- package/source/data/datasource/storage/localstorage.mjs +10 -3
- package/source/data/datasource/storage/sessionstorage.mjs +10 -3
- package/source/data/datasource/storage.mjs +10 -3
- package/source/data/datasource.mjs +10 -3
- package/source/data/diff.mjs +10 -3
- package/source/data/extend.mjs +10 -3
- package/source/data/pathfinder.mjs +10 -3
- package/source/data/pipe.mjs +10 -3
- package/source/data/transformer.mjs +34 -10
- package/source/dom/assembler.mjs +10 -3
- package/source/dom/attributes.mjs +10 -3
- package/source/dom/constants.mjs +10 -3
- package/source/dom/customcontrol.mjs +11 -4
- package/source/dom/customelement.mjs +31 -17
- package/source/dom/dimension.mjs +10 -3
- package/source/dom/events.mjs +10 -3
- package/source/dom/focusmanager.mjs +10 -3
- package/source/dom/locale.mjs +10 -3
- package/source/dom/ready.mjs +11 -4
- package/source/dom/resource/data.mjs +10 -3
- package/source/dom/resource/link/stylesheet.mjs +10 -3
- package/source/dom/resource/link.mjs +10 -3
- package/source/dom/resource/script.mjs +10 -3
- package/source/dom/resource.mjs +10 -3
- package/source/dom/resourcemanager.mjs +10 -3
- package/source/dom/slotted.mjs +14 -0
- package/source/dom/template.mjs +124 -136
- package/source/dom/theme.mjs +10 -3
- package/source/dom/updater.mjs +10 -3
- package/source/dom/util/extract-keys.mjs +10 -3
- package/source/dom/util/init-options-from-attributes.mjs +68 -61
- package/source/dom/util/set-option-from-attribute.mjs +10 -3
- package/source/dom/util.mjs +11 -4
- package/source/dom/worker/factory.mjs +10 -3
- package/source/i18n/formatter.mjs +10 -3
- package/source/i18n/locale.mjs +10 -3
- package/source/i18n/provider.mjs +10 -3
- package/source/i18n/providers/embed.mjs +10 -3
- package/source/i18n/providers/fetch.mjs +10 -3
- package/source/i18n/translations.mjs +10 -3
- package/source/logging/handler/console.mjs +10 -3
- package/source/logging/handler.mjs +10 -3
- package/source/logging/logentry.mjs +10 -3
- package/source/logging/logger.mjs +10 -3
- package/source/math/random.mjs +10 -3
- package/source/monster.mjs +8 -93
- package/source/net/webconnect/message.mjs +10 -3
- package/source/net/webconnect.mjs +20 -5
- package/source/text/bracketed-key-value-hash.mjs +10 -3
- package/source/text/formatter.mjs +10 -3
- package/source/text/generate-range-comparison-expression.mjs +10 -3
- package/source/text/util.mjs +14 -0
- package/source/types/base.mjs +10 -3
- package/source/types/basewithoptions.mjs +10 -3
- package/source/types/binary.mjs +10 -3
- package/source/types/dataurl.mjs +10 -3
- package/source/types/global.mjs +14 -7
- package/source/types/id.mjs +10 -3
- package/source/types/internal.mjs +11 -3
- package/source/types/is.mjs +10 -3
- package/source/types/mediatype.mjs +10 -3
- package/source/types/node.mjs +10 -3
- package/source/types/nodelist.mjs +10 -3
- package/source/types/noderecursiveiterator.mjs +10 -3
- package/source/types/observablequeue.mjs +10 -3
- package/source/types/observer.mjs +10 -3
- package/source/types/observerlist.mjs +10 -3
- package/source/types/proxyobserver.mjs +14 -5
- package/source/types/queue.mjs +10 -3
- package/source/types/randomid.mjs +10 -3
- package/source/types/regex.mjs +10 -3
- package/source/types/stack.mjs +10 -3
- package/source/types/tokenlist.mjs +10 -3
- package/source/types/typeof.mjs +10 -3
- package/source/types/uniquequeue.mjs +10 -3
- package/source/types/uuid.mjs +10 -3
- package/source/types/validate.mjs +10 -3
- package/source/types/version.mjs +11 -4
- package/source/util/clone.mjs +10 -3
- package/source/util/comparator.mjs +10 -3
- package/source/util/deadmansswitch.mjs +10 -3
- package/source/util/freeze.mjs +10 -3
- package/source/util/processing.mjs +10 -3
- package/source/util/runtime.mjs +10 -7
- package/source/util/sleep.mjs +10 -10
- package/source/util/trimspaces.mjs +10 -3
- package/test/cases/data/datasource/server/websocket.mjs +7 -9
- package/test/cases/data/transformer.mjs +47 -15
- package/test/cases/dom/customcontrol.mjs +0 -1
- package/test/cases/dom/customelement.mjs +1 -3
- package/test/cases/dom/template.mjs +3 -1
- package/test/cases/monster.mjs +1 -1
- package/test/util/jsdom.mjs +8 -7
- package/test/util/websocket.mjs +5 -1
- package/test/web/import.js +2 -1
- package/test/web/puppeteer.mjs +111 -0
- package/test/web/test.html +2 -2
- package/test/web/tests.js +2039 -1192
- package/example/components/form/button.mjs +0 -10
- package/example/components/form/select.mjs +0 -25
- package/example/components/form/toggle-switch.mjs +0 -7
- package/example/components/form/tree-select.mjs +0 -27
- package/example/components/host/host.mjs +0 -0
- package/example/components/notify/message.mjs +0 -4
- package/example/components/notify/notify.mjs +0 -4
- package/example/components/state/log.mjs +0 -0
- package/example/components/state/state.mjs +0 -0
- package/example/constraints/andoperator.mjs +0 -17
- package/example/constraints/invalid.mjs +0 -6
- package/example/constraints/isarray.mjs +0 -11
- package/example/constraints/isobject.mjs +0 -12
- package/example/constraints/oroperator.mjs +0 -15
- package/example/constraints/valid.mjs +0 -6
- package/example/data/buildmap.mjs +0 -67
- package/example/data/datasource/server/restapi.mjs +0 -20
- package/example/data/datasource/server/webconnect.mjs +0 -9
- package/example/data/datasource.mjs +0 -7
- package/example/data/diff.mjs +0 -39
- package/example/data/pathfinder-1.mjs +0 -23
- package/example/data/pathfinder-2.mjs +0 -19
- package/example/data/pipe.mjs +0 -14
- package/example/data/transformer.mjs +0 -9
- package/example/dom/customelement.mjs +0 -14
- package/example/dom/theme.mjs +0 -5
- package/example/dom/updater.mjs +0 -23
- package/example/i18n/formatter.mjs +0 -10
- package/example/i18n/providers/embed.mjs +0 -5
- package/example/i18n/providers/fetch.mjs +0 -5
- package/example/i18n/translations.mjs +0 -20
- package/example/net/webconnect.mjs +0 -16
- package/example/types/basewithoptions.mjs +0 -10
- package/example/types/is-1.mjs +0 -5
- package/example/types/is-10.mjs +0 -6
- package/example/types/is-2.mjs +0 -4
- package/example/types/is-3.mjs +0 -4
- package/example/types/is-4.mjs +0 -5
- package/example/types/is-5.mjs +0 -4
- package/example/types/is-6.mjs +0 -4
- package/example/types/is-7.mjs +0 -4
- package/example/types/is-8.mjs +0 -4
- package/example/types/is-9.mjs +0 -6
- package/example/types/noderecursiveiterator.mjs +0 -32
- package/example/types/observer.mjs +0 -9
- package/example/types/proxyobserver.mjs +0 -25
- package/example/types/queue.mjs +0 -20
- package/example/types/tokenlist-1.mjs +0 -4
- package/example/types/tokenlist-2.mjs +0 -7
- package/example/types/tokenlist-3.mjs +0 -5
- package/example/types/tokenlist-4.mjs +0 -5
- package/example/types/tokenlist-5.mjs +0 -5
- package/example/types/typeof.mjs +0 -9
- package/example/types/version-1.mjs +0 -6
- package/example/types/version-2.mjs +0 -3
- package/example/util/comparator.mjs +0 -10
- package/example/util/deadmansswitch.mjs +0 -9
- package/example/util/processing.mjs +0 -17
- package/source/components/datatable/datasource/namespace.mjs +0 -13
- package/source/components/datatable/datatable/namespace.mjs +0 -13
- package/source/components/datatable/events.mjs +0 -24
- package/source/components/datatable/filter/namespace.mjs +0 -13
- package/source/components/datatable/namespace.mjs +0 -11
- package/source/components/datatable/stylesheet/namespace.mjs +0 -13
- package/source/components/events.mjs +0 -17
- package/source/components/form/events.mjs +0 -108
- package/source/components/form/form-field.mjs +0 -341
- package/source/components/form/namespace.mjs +0 -13
- package/source/components/form/style/form-field.pcss +0 -4
- package/source/components/form/stylesheet/form-field.mjs +0 -31
- package/source/components/form/stylesheet/namespace.mjs +0 -13
- package/source/components/form/types/namespace.mjs +0 -13
- package/source/components/form/util/namespace.mjs +0 -13
- package/source/components/host/events.mjs +0 -131
- package/source/components/host/namespace.mjs +0 -13
- package/source/components/host/stylesheet/namespace.mjs +0 -13
- package/source/components/layout/events.mjs +0 -30
- package/source/components/layout/namespace.mjs +0 -13
- package/source/components/namespace.mjs +0 -14
- package/source/components/notify/events.mjs +0 -15
- package/source/components/notify/namespace.mjs +0 -15
- package/source/components/notify/stylesheet/namespace.mjs +0 -15
- package/source/components/state/log/namespace.mjs +0 -13
- package/source/components/state/namespace.mjs +0 -13
- package/source/components/stylesheet/namespace.mjs +0 -13
- package/source/components/tree-menu/namespace.mjs +0 -13
- package/source/components/tree-menu/stylesheet/namespace.mjs +0 -13
- package/source/constraints/namespace.mjs +0 -13
- package/source/data/datasource/namespace.mjs +0 -13
- package/source/data/datasource/server/namespace.mjs +0 -13
- package/source/data/datasource/server/restapi/namespace.mjs +0 -13
- package/source/data/datasource/storage/namespace.mjs +0 -13
- package/source/data/namespace.mjs +0 -13
- package/source/dom/namespace.mjs +0 -13
- package/source/dom/resource/link/namespace.mjs +0 -13
- package/source/dom/resource/namespace.mjs +0 -13
- package/source/dom/util/namespace.mjs +0 -13
- package/source/dom/worker/namespace.mjs +0 -13
- package/source/i18n/namespace.mjs +0 -13
- package/source/i18n/providers/namespace.mjs +0 -13
- package/source/logging/handler/namespace.mjs +0 -11
- package/source/logging/namespace.mjs +0 -13
- package/source/math/namespace.mjs +0 -13
- package/source/net/namespace.mjs +0 -13
- package/source/net/webconnect/namespace.mjs +0 -13
- package/source/text/namespace.mjs +0 -13
- package/source/types/namespace.mjs +0 -13
- package/source/util/namespace.mjs +0 -13
- /package/source/components/{host → layout}/style/collapse.pcss +0 -0
- /package/source/components/{host → layout}/style/details.pcss +0 -0
- /package/source/components/{form → layout}/style/popper.pcss +0 -0
|
@@ -1,491 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright schukai GmbH and
|
|
2
|
+
* Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
|
|
3
3
|
* Node module: @schukai/monster
|
|
4
|
-
* This file is licensed under the AGPLv3 License.
|
|
5
|
-
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
6
|
-
*/
|
|
7
|
-
import { instanceSymbol } from "../../constants.mjs";
|
|
8
|
-
import {
|
|
9
|
-
addAttributeToken,
|
|
10
|
-
removeAttributeToken,
|
|
11
|
-
} from "../../dom/attributes.mjs";
|
|
12
|
-
import { ATTRIBUTE_ROLE } from "../../dom/constants.mjs";
|
|
13
|
-
import {
|
|
14
|
-
assembleMethodSymbol,
|
|
15
|
-
registerCustomElement,
|
|
16
|
-
} from "../../dom/customelement.mjs";
|
|
17
|
-
import { fireCustomEvent } from "../../dom/events.mjs";
|
|
18
|
-
import { getDocument } from "../../dom/util.mjs";
|
|
19
|
-
import { DeadMansSwitch } from "../../util/deadmansswitch.mjs";
|
|
20
|
-
import { Button } from "./button.mjs";
|
|
21
|
-
import { STYLE_DISPLAY_MODE_BLOCK } from "./constants.mjs";
|
|
22
|
-
import { positionPopper } from "./util/floating-ui.mjs";
|
|
23
|
-
import { CustomControl } from "../../dom/customcontrol.mjs";
|
|
24
|
-
import { PopperStyleSheet } from "./stylesheet/popper.mjs";
|
|
25
|
-
import { isArray } from "../../types/is.mjs";
|
|
26
|
-
|
|
27
|
-
export { Popper };
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @private
|
|
31
|
-
* @type {symbol}
|
|
32
|
-
*/
|
|
33
|
-
const timerCallbackSymbol = Symbol("timerCallback");
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* local symbol
|
|
37
|
-
* @private
|
|
38
|
-
* @type {symbol}
|
|
39
|
-
*/
|
|
40
|
-
const resizeObserverSymbol = Symbol("resizeObserver");
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* local symbol
|
|
44
|
-
* @private
|
|
45
|
-
* @type {symbol}
|
|
46
|
-
*/
|
|
47
|
-
const closeEventHandler = Symbol("closeEventHandler");
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* @private
|
|
51
|
-
* @type {symbol}
|
|
52
|
-
*/
|
|
53
|
-
const controlElementSymbol = Symbol("controlElement");
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* @private
|
|
57
|
-
* @type {symbol}
|
|
58
|
-
*/
|
|
59
|
-
const buttonElementSymbol = Symbol("buttonElement");
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* local symbol
|
|
63
|
-
* @private
|
|
64
|
-
* @type {symbol}
|
|
65
|
-
*/
|
|
66
|
-
const popperElementSymbol = Symbol("popperElement");
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* local symbol
|
|
70
|
-
* @private
|
|
71
|
-
* @type {symbol}
|
|
72
|
-
*/
|
|
73
|
-
const arrowElementSymbol = Symbol("arrowElement");
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* This action callback executes the actions when a button is clicked.
|
|
77
|
-
*
|
|
78
|
-
* @callback Monster.Components.Form~exampleActionCallback
|
|
79
|
-
* @param {Event} e Event
|
|
80
|
-
* @memberOf Monster.Components.Form
|
|
81
|
-
* @this {CustomControl}
|
|
82
|
-
*/
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* The Popper ist an element that can be used to display a popper.
|
|
86
4
|
*
|
|
87
|
-
*
|
|
5
|
+
* This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
|
|
6
|
+
* The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
88
7
|
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
8
|
+
* For those who do not wish to adhere to the AGPLv3, a commercial license is available.
|
|
9
|
+
* Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
|
|
10
|
+
* For more information about purchasing a commercial license, please contact schukai GmbH.
|
|
91
11
|
*
|
|
92
|
-
*
|
|
93
|
-
* Javascript via the `document.createElement('monster-popper');` method.
|
|
94
|
-
*
|
|
95
|
-
* ```html
|
|
96
|
-
* <monster-popper></monster-popper>
|
|
97
|
-
* ```
|
|
98
|
-
*
|
|
99
|
-
* Or you can create this CustomControl directly in Javascript:
|
|
100
|
-
*
|
|
101
|
-
* ```js
|
|
102
|
-
* import {Popper} from '@schukai/component-form/source/popper.js';
|
|
103
|
-
* document.createElement('monster-popper');
|
|
104
|
-
* ```
|
|
105
|
-
*
|
|
106
|
-
* @startuml popper.png
|
|
107
|
-
* skinparam monochrome true
|
|
108
|
-
* skinparam shadowing false
|
|
109
|
-
* HTMLElement <|-- CustomElement
|
|
110
|
-
* CustomElement <|-- CustomControl
|
|
111
|
-
* CustomControl <|-- Popper
|
|
112
|
-
* @enduml
|
|
113
|
-
*
|
|
114
|
-
* @copyright schukai GmbH
|
|
115
|
-
* @memberOf Monster.Components.Form
|
|
116
|
-
* @summary A popper button
|
|
117
|
-
*/
|
|
118
|
-
class Popper extends CustomControl {
|
|
119
|
-
/**
|
|
120
|
-
* This method is called by the `instanceof` operator.
|
|
121
|
-
* @returns {symbol}
|
|
122
|
-
*/
|
|
123
|
-
static get [instanceSymbol]() {
|
|
124
|
-
return Symbol.for("@schukai/monster/components/form/popper@@instance");
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* To set the options via the html tag the attribute `data-monster-options` must be used.
|
|
129
|
-
* @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
|
|
130
|
-
*
|
|
131
|
-
* The individual configuration values can be found in the table.
|
|
132
|
-
*
|
|
133
|
-
* @property {Object} templates - The templates for the control.
|
|
134
|
-
* @property {string} templates.main - The main template.
|
|
135
|
-
* @property {string} mode - The mode of the popper. Possible values are `click`, `enter` `hover`, `manual`, `focus`, "auto" or a combination of them.
|
|
136
|
-
* @property {string} content - The content of the popper.
|
|
137
|
-
* @property {object} popper - The popper options.
|
|
138
|
-
* @property {string} popper.placement - The placement of the popper. Possible values are `top`, `bottom`, `left` and `right`.
|
|
139
|
-
* @property {Array<function>} popper.middleware - The middleware functions of the popper.
|
|
140
|
-
* @property {Array<function>} popper.middlewareInit - The middleware init functions of the popper.
|
|
141
|
-
* @property {Object} features - The features of the popper.
|
|
142
|
-
* @property {boolean} features.preventPropagateOpenEvents - Prevents the open event from being sent.
|
|
143
|
-
* @extends {Button}
|
|
144
|
-
*/
|
|
145
|
-
get defaults() {
|
|
146
|
-
return Object.assign({}, super.defaults, {
|
|
147
|
-
templates: {
|
|
148
|
-
main: getTemplate(),
|
|
149
|
-
},
|
|
150
|
-
mode: "hover focus",
|
|
151
|
-
content: "<slot>Should I Stay or Should I Go?</slot>",
|
|
152
|
-
popper: {
|
|
153
|
-
placement: "top",
|
|
154
|
-
middleware: ["autoPlacement", "offset:10", "arrow"],
|
|
155
|
-
},
|
|
156
|
-
features: {
|
|
157
|
-
preventOpenEventSent: false,
|
|
158
|
-
},
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
*
|
|
164
|
-
* @return {Monster.Components.Form.Popper}
|
|
165
|
-
*/
|
|
166
|
-
[assembleMethodSymbol]() {
|
|
167
|
-
super[assembleMethodSymbol]();
|
|
168
|
-
initControlReferences.call(this);
|
|
169
|
-
initEventHandler.call(this);
|
|
170
|
-
|
|
171
|
-
return this;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* @return {string}
|
|
176
|
-
*/
|
|
177
|
-
static getTag() {
|
|
178
|
-
return "monster-popper";
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* @return {Array<CSSStyleSheet>}
|
|
183
|
-
*/
|
|
184
|
-
static getCSSStyleSheet() {
|
|
185
|
-
return [PopperStyleSheet];
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* @return {void}
|
|
190
|
-
*/
|
|
191
|
-
connectedCallback() {
|
|
192
|
-
super.connectedCallback();
|
|
193
|
-
|
|
194
|
-
const document = getDocument();
|
|
195
|
-
|
|
196
|
-
for (const [, type] of Object.entries(["click", "touch"])) {
|
|
197
|
-
// close on outside ui-events
|
|
198
|
-
document.addEventListener(type, this[closeEventHandler]);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
updatePopper.call(this);
|
|
202
|
-
attachResizeObserver.call(this);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* @return {void}
|
|
207
|
-
*/
|
|
208
|
-
disconnectedCallback() {
|
|
209
|
-
super.disconnectedCallback();
|
|
210
|
-
|
|
211
|
-
// close on outside ui-events
|
|
212
|
-
for (const [, type] of Object.entries(["click", "touch"])) {
|
|
213
|
-
document.removeEventListener(type, this[closeEventHandler]);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
disconnectResizeObserver.call(this);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
*
|
|
221
|
-
* @return {Monster.Components.Form.Popper}
|
|
222
|
-
*/
|
|
223
|
-
showDialog() {
|
|
224
|
-
show.call(this);
|
|
225
|
-
return this;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
*
|
|
230
|
-
* @return {Monster.Components.Form.Popper}
|
|
231
|
-
*/
|
|
232
|
-
hideDialog() {
|
|
233
|
-
hide.call(this);
|
|
234
|
-
return this;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
*
|
|
239
|
-
* @return {Monster.Components.Form.Popper}
|
|
240
|
-
*/
|
|
241
|
-
toggleDialog() {
|
|
242
|
-
if (this[popperElementSymbol].style.display === STYLE_DISPLAY_MODE_BLOCK) {
|
|
243
|
-
this.hideDialog();
|
|
244
|
-
} else {
|
|
245
|
-
this.showDialog();
|
|
246
|
-
}
|
|
247
|
-
return this;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
/**
|
|
252
|
-
* @private
|
|
253
|
-
* @return {Monster.Components.Form.Popper}
|
|
254
|
-
*/
|
|
255
|
-
function initEventHandler() {
|
|
256
|
-
this[closeEventHandler] = (event) => {
|
|
257
|
-
const path = event.composedPath();
|
|
258
|
-
|
|
259
|
-
for (const [, element] of Object.entries(path)) {
|
|
260
|
-
if (element === this) {
|
|
261
|
-
return;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
hide.call(this);
|
|
265
|
-
};
|
|
266
|
-
|
|
267
|
-
let modes = null;
|
|
268
|
-
const modeOption = this.getOption("mode");
|
|
269
|
-
if (typeof modeOption === "string") {
|
|
270
|
-
modes = modeOption.split(" ");
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
if (
|
|
274
|
-
modes === null ||
|
|
275
|
-
modes === undefined ||
|
|
276
|
-
isArray(modes) === false ||
|
|
277
|
-
modes.length === 0
|
|
278
|
-
) {
|
|
279
|
-
modes = ["manual"];
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
for (const [, mode] of Object.entries(modes)) {
|
|
283
|
-
initEventHandlerByMode.call(this, mode);
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
return this;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
/**
|
|
290
|
-
* @private
|
|
291
|
-
* @param mode
|
|
292
|
-
* @return {Monster.Components.Form.Popper}
|
|
293
|
-
* @throws Error
|
|
294
|
-
*/
|
|
295
|
-
function initEventHandlerByMode(mode) {
|
|
296
|
-
switch (mode) {
|
|
297
|
-
case "manual":
|
|
298
|
-
break;
|
|
299
|
-
|
|
300
|
-
case "focus":
|
|
301
|
-
this[buttonElementSymbol].addEventListener("focus", (event) => {
|
|
302
|
-
if (this.getOption("features.preventOpenEventSent") === true) {
|
|
303
|
-
event.preventDefault();
|
|
304
|
-
}
|
|
305
|
-
this.showDialog();
|
|
306
|
-
});
|
|
307
|
-
this[buttonElementSymbol].addEventListener("blur", (event) => {
|
|
308
|
-
if (this.getOption("features.preventOpenEventSent") === true) {
|
|
309
|
-
event.preventDefault();
|
|
310
|
-
}
|
|
311
|
-
this.hideDialog();
|
|
312
|
-
});
|
|
313
|
-
break;
|
|
314
|
-
|
|
315
|
-
case "click":
|
|
316
|
-
this[buttonElementSymbol].addEventListener("click", (event) => {
|
|
317
|
-
if (this.getOption("features.preventOpenEventSent") === true) {
|
|
318
|
-
event.preventDefault();
|
|
319
|
-
}
|
|
320
|
-
this.toggleDialog();
|
|
321
|
-
});
|
|
322
|
-
break;
|
|
323
|
-
case "enter":
|
|
324
|
-
this[buttonElementSymbol].addEventListener("mouseenter", (event) => {
|
|
325
|
-
if (this.getOption("features.preventOpenEventSent") === true) {
|
|
326
|
-
event.preventDefault();
|
|
327
|
-
}
|
|
328
|
-
this.showDialog();
|
|
329
|
-
});
|
|
330
|
-
break;
|
|
331
|
-
|
|
332
|
-
case "auto": // is hover
|
|
333
|
-
this[buttonElementSymbol].addEventListener("mouseenter", (event) => {
|
|
334
|
-
if (this.getOption("features.preventOpenEventSent") === true) {
|
|
335
|
-
event.preventDefault();
|
|
336
|
-
}
|
|
337
|
-
this.showDialog();
|
|
338
|
-
});
|
|
339
|
-
this[buttonElementSymbol].addEventListener("mouseleave", (event) => {
|
|
340
|
-
if (this.getOption("features.preventOpenEventSent") === true) {
|
|
341
|
-
event.preventDefault();
|
|
342
|
-
}
|
|
343
|
-
this.hideDialog();
|
|
344
|
-
});
|
|
345
|
-
break;
|
|
346
|
-
default:
|
|
347
|
-
throw new Error(`Unknown mode ${mode}`);
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
/**
|
|
352
|
-
* @private
|
|
353
|
-
*/
|
|
354
|
-
function attachResizeObserver() {
|
|
355
|
-
// against flickering
|
|
356
|
-
this[resizeObserverSymbol] = new ResizeObserver((entries) => {
|
|
357
|
-
if (this[timerCallbackSymbol] instanceof DeadMansSwitch) {
|
|
358
|
-
try {
|
|
359
|
-
this[timerCallbackSymbol].touch();
|
|
360
|
-
return;
|
|
361
|
-
} catch (e) {
|
|
362
|
-
delete this[timerCallbackSymbol];
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
this[timerCallbackSymbol] = new DeadMansSwitch(200, () => {
|
|
367
|
-
updatePopper.call(this);
|
|
368
|
-
});
|
|
369
|
-
});
|
|
370
|
-
|
|
371
|
-
this[resizeObserverSymbol].observe(this.parentElement);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
function disconnectResizeObserver() {
|
|
375
|
-
if (this[resizeObserverSymbol] instanceof ResizeObserver) {
|
|
376
|
-
this[resizeObserverSymbol].disconnect();
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
/**
|
|
381
|
-
* @private
|
|
382
|
-
*/
|
|
383
|
-
function hide() {
|
|
384
|
-
const self = this;
|
|
385
|
-
|
|
386
|
-
fireCustomEvent(self, "monster-popper-hide", {
|
|
387
|
-
self,
|
|
388
|
-
});
|
|
389
|
-
|
|
390
|
-
self[popperElementSymbol].style.display = "none";
|
|
391
|
-
removeAttributeToken(self[controlElementSymbol], "class", "open");
|
|
392
|
-
|
|
393
|
-
setTimeout(() => {
|
|
394
|
-
fireCustomEvent(self, "monster-popper-hidden", {
|
|
395
|
-
self,
|
|
396
|
-
});
|
|
397
|
-
}, 0);
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
/**
|
|
401
|
-
* @private
|
|
402
|
-
* @this PopperButton
|
|
403
|
-
*/
|
|
404
|
-
function show() {
|
|
405
|
-
const self = this;
|
|
406
|
-
|
|
407
|
-
if (self.getOption("disabled", false) === true) {
|
|
408
|
-
return;
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
if (self[popperElementSymbol].style.display === STYLE_DISPLAY_MODE_BLOCK) {
|
|
412
|
-
return;
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
fireCustomEvent(self, "monster-popper-open", {
|
|
416
|
-
self,
|
|
417
|
-
});
|
|
418
|
-
|
|
419
|
-
self[popperElementSymbol].style.visibility = "hidden";
|
|
420
|
-
self[popperElementSymbol].style.display = STYLE_DISPLAY_MODE_BLOCK;
|
|
421
|
-
|
|
422
|
-
addAttributeToken(self[controlElementSymbol], "class", "open");
|
|
423
|
-
updatePopper.call(self);
|
|
424
|
-
|
|
425
|
-
setTimeout(() => {
|
|
426
|
-
fireCustomEvent(self, "monster-popper-opened", {
|
|
427
|
-
self,
|
|
428
|
-
});
|
|
429
|
-
}, 0);
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
/**
|
|
433
|
-
* @private
|
|
12
|
+
* SPDX-License-Identifier: AGPL-3.0
|
|
434
13
|
*/
|
|
435
|
-
function updatePopper() {
|
|
436
|
-
if (this[popperElementSymbol].style.display !== STYLE_DISPLAY_MODE_BLOCK) {
|
|
437
|
-
return;
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
if (this.getOption("disabled", false) === true) {
|
|
441
|
-
return;
|
|
442
|
-
}
|
|
443
14
|
|
|
444
|
-
|
|
445
|
-
this,
|
|
446
|
-
this[controlElementSymbol],
|
|
447
|
-
this[popperElementSymbol],
|
|
448
|
-
this.getOption("popper", {}),
|
|
449
|
-
);
|
|
450
|
-
}
|
|
15
|
+
import { Popper as NewPopper } from "../layout/popper.mjs";
|
|
451
16
|
|
|
452
|
-
|
|
453
|
-
* @private
|
|
454
|
-
* @return {Monster.Components.Form.Popper}
|
|
455
|
-
*/
|
|
456
|
-
function initControlReferences() {
|
|
457
|
-
this[controlElementSymbol] = this.shadowRoot.querySelector(
|
|
458
|
-
`[${ATTRIBUTE_ROLE}=control]`,
|
|
459
|
-
);
|
|
460
|
-
this[buttonElementSymbol] = this.shadowRoot.querySelector(
|
|
461
|
-
`[${ATTRIBUTE_ROLE}=button]`,
|
|
462
|
-
);
|
|
463
|
-
this[popperElementSymbol] = this.shadowRoot.querySelector(
|
|
464
|
-
`[${ATTRIBUTE_ROLE}=popper]`,
|
|
465
|
-
);
|
|
466
|
-
this[arrowElementSymbol] = this.shadowRoot.querySelector(
|
|
467
|
-
`[${ATTRIBUTE_ROLE}=arrow]`,
|
|
468
|
-
);
|
|
469
|
-
return this;
|
|
470
|
-
}
|
|
17
|
+
export { Popper };
|
|
471
18
|
|
|
472
19
|
/**
|
|
473
|
-
* @
|
|
474
|
-
* @
|
|
20
|
+
* @since 1.10.0
|
|
21
|
+
* @copyright schukai GmbH
|
|
22
|
+
* @deprecated since 3.65.0 use {@link Monster.Components.Layout.Popper}
|
|
475
23
|
*/
|
|
476
|
-
|
|
477
|
-
// language=HTML
|
|
478
|
-
return `
|
|
479
|
-
<div data-monster-role="control" part="control">
|
|
480
|
-
<slot name="button" data-monster-role="button"></slot>
|
|
481
|
-
|
|
482
|
-
<div data-monster-role="popper" part="popper" tabindex="-1" class="monster-color-primary-1">
|
|
483
|
-
<div data-monster-role="arrow"></div>
|
|
484
|
-
<div part="content" class="flex" data-monster-replace="path:content">
|
|
485
|
-
</div>
|
|
486
|
-
</div>
|
|
487
|
-
</div>
|
|
488
|
-
`;
|
|
489
|
-
}
|
|
490
|
-
|
|
491
|
-
registerCustomElement(Popper);
|
|
24
|
+
class Popper extends NewPopper {}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright schukai GmbH and
|
|
2
|
+
* Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
|
|
3
3
|
* Node module: @schukai/monster
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
|
|
6
|
+
* The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
7
|
+
*
|
|
8
|
+
* For those who do not wish to adhere to the AGPLv3, a commercial license is available.
|
|
9
|
+
* Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
|
|
10
|
+
* For more information about purchasing a commercial license, please contact schukai GmbH.
|
|
11
|
+
*
|
|
12
|
+
* SPDX-License-Identifier: AGPL-3.0
|
|
6
13
|
*/
|
|
14
|
+
|
|
7
15
|
import { instanceSymbol } from "../../constants.mjs";
|
|
8
16
|
import { addAttributeToken } from "../../dom/attributes.mjs";
|
|
9
17
|
import {
|
|
@@ -164,7 +172,7 @@ class Reload extends CustomElement {
|
|
|
164
172
|
}
|
|
165
173
|
|
|
166
174
|
/**
|
|
167
|
-
*
|
|
175
|
+
* @return {void}
|
|
168
176
|
*/
|
|
169
177
|
[initMethodSymbol]() {
|
|
170
178
|
super[initMethodSymbol]();
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright schukai GmbH and
|
|
2
|
+
* Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
|
|
3
3
|
* Node module: @schukai/monster
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
|
|
6
|
+
* The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
7
|
+
*
|
|
8
|
+
* For those who do not wish to adhere to the AGPLv3, a commercial license is available.
|
|
9
|
+
* Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
|
|
10
|
+
* For more information about purchasing a commercial license, please contact schukai GmbH.
|
|
11
|
+
*
|
|
12
|
+
* SPDX-License-Identifier: AGPL-3.0
|
|
6
13
|
*/
|
|
14
|
+
|
|
7
15
|
import { instanceSymbol } from "../../constants.mjs";
|
|
8
16
|
import { internalSymbol } from "../../constants.mjs";
|
|
9
17
|
import { buildMap } from "../../data/buildmap.mjs";
|
|
@@ -656,31 +664,34 @@ class Select extends CustomControl {
|
|
|
656
664
|
if (url !== undefined && url !== null) {
|
|
657
665
|
url = validateString(url);
|
|
658
666
|
}
|
|
659
|
-
|
|
667
|
+
|
|
660
668
|
hide.call(this);
|
|
661
669
|
|
|
662
670
|
return new Promise((resolve, reject) => {
|
|
663
|
-
fetchData
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
671
|
+
fetchData
|
|
672
|
+
.call(this, url)
|
|
673
|
+
.then((map) => {
|
|
674
|
+
if (
|
|
675
|
+
isObject(map) ||
|
|
676
|
+
isArray(map) ||
|
|
677
|
+
map instanceof Set ||
|
|
678
|
+
map instanceof Map
|
|
679
|
+
) {
|
|
680
|
+
this.importOptions(map);
|
|
681
|
+
setTimeout(() => {
|
|
682
|
+
setStatusOrRemoveBadges.call(this, "closed");
|
|
683
|
+
resolve();
|
|
684
|
+
}, 10);
|
|
685
|
+
return;
|
|
686
|
+
}
|
|
677
687
|
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
688
|
+
setStatusOrRemoveBadges.call(this, "error");
|
|
689
|
+
reject(new Error("invalid response"));
|
|
690
|
+
})
|
|
691
|
+
.catch((e) => {
|
|
692
|
+
setStatusOrRemoveBadges.call(this, "error");
|
|
693
|
+
reject(e);
|
|
694
|
+
});
|
|
684
695
|
});
|
|
685
696
|
}
|
|
686
697
|
|
|
@@ -1961,15 +1972,15 @@ function fetchData(url) {
|
|
|
1961
1972
|
|
|
1962
1973
|
const fetchOptions = this.getOption("fetch", {});
|
|
1963
1974
|
|
|
1964
|
-
let delayWatch=false;
|
|
1965
|
-
|
|
1975
|
+
let delayWatch = false;
|
|
1976
|
+
|
|
1966
1977
|
// if fetch short time, do not show loading badge, because of flickering
|
|
1967
1978
|
setTimeout(() => {
|
|
1968
|
-
if(delayWatch===true) return;
|
|
1979
|
+
if (delayWatch === true) return;
|
|
1969
1980
|
setStatusOrRemoveBadges.call(this, "loading");
|
|
1970
|
-
delayWatch=true;
|
|
1971
|
-
},500);
|
|
1972
|
-
|
|
1981
|
+
delayWatch = true;
|
|
1982
|
+
}, 500);
|
|
1983
|
+
|
|
1973
1984
|
url = new Formatter({ filter: this.getOption("filter.defaultValue") }).format(
|
|
1974
1985
|
url,
|
|
1975
1986
|
);
|
|
@@ -1978,7 +1989,7 @@ function fetchData(url) {
|
|
|
1978
1989
|
return global
|
|
1979
1990
|
.fetch(url, fetchOptions)
|
|
1980
1991
|
.then((response) => {
|
|
1981
|
-
delayWatch=true;
|
|
1992
|
+
delayWatch = true;
|
|
1982
1993
|
const contentType = response.headers.get("content-type");
|
|
1983
1994
|
if (contentType && contentType.indexOf("application/json") !== -1) {
|
|
1984
1995
|
return response.text();
|
|
@@ -1994,7 +2005,7 @@ function fetchData(url) {
|
|
|
1994
2005
|
}
|
|
1995
2006
|
})
|
|
1996
2007
|
.catch((e) => {
|
|
1997
|
-
delayWatch=true;
|
|
2008
|
+
delayWatch = true;
|
|
1998
2009
|
throw e;
|
|
1999
2010
|
});
|
|
2000
2011
|
}
|
|
@@ -2004,7 +2015,7 @@ function fetchData(url) {
|
|
|
2004
2015
|
*/
|
|
2005
2016
|
function hide() {
|
|
2006
2017
|
this[popperElementSymbol].style.display = "none";
|
|
2007
|
-
setStatusOrRemoveBadges.call(this,"closed");
|
|
2018
|
+
setStatusOrRemoveBadges.call(this, "closed");
|
|
2008
2019
|
removeAttributeToken(this[controlElementSymbol], "class", "open");
|
|
2009
2020
|
}
|
|
2010
2021
|
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright schukai GmbH and
|
|
2
|
+
* Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
|
|
3
3
|
* Node module: @schukai/monster
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
|
|
6
|
+
* The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
7
|
+
*
|
|
8
|
+
* For those who do not wish to adhere to the AGPLv3, a commercial license is available.
|
|
9
|
+
* Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
|
|
10
|
+
* For more information about purchasing a commercial license, please contact schukai GmbH.
|
|
11
|
+
*
|
|
12
|
+
* SPDX-License-Identifier: AGPL-3.0
|
|
6
13
|
*/
|
|
14
|
+
|
|
7
15
|
import { instanceSymbol } from "../../constants.mjs";
|
|
8
16
|
import { registerCustomElement } from "../../dom/customelement.mjs";
|
|
9
17
|
import { Reload } from "./reload.mjs";
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright schukai GmbH and
|
|
2
|
+
* Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
|
|
3
3
|
* Node module: @schukai/monster
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
|
|
6
|
+
* The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
|
|
7
|
+
*
|
|
8
|
+
* For those who do not wish to adhere to the AGPLv3, a commercial license is available.
|
|
9
|
+
* Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
|
|
10
|
+
* For more information about purchasing a commercial license, please contact schukai GmbH.
|
|
11
|
+
*
|
|
12
|
+
* SPDX-License-Identifier: AGPL-3.0
|
|
6
13
|
*/
|
|
14
|
+
|
|
7
15
|
import { instanceSymbol } from "../../constants.mjs";
|
|
8
16
|
import { registerCustomElement } from "../../dom/customelement.mjs";
|
|
9
17
|
import { isInteger } from "../../types/is.mjs";
|