@schukai/monster 3.65.0 → 3.65.21
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 +48 -327
- package/README.md +44 -40
- package/package.json +1 -48
- package/source/components/constants.mjs +10 -3
- package/source/components/datatable/change-button.mjs +18 -11
- package/source/components/datatable/columnbar.mjs +10 -1
- package/source/components/datatable/constants.mjs +11 -4
- package/source/components/datatable/dataset.mjs +212 -203
- 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 +220 -218
- package/source/components/datatable/datatable.mjs +754 -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 +15 -11
- package/source/components/datatable/pagination.mjs +18 -9
- package/source/components/datatable/save-button.mjs +280 -270
- package/source/components/datatable/status.mjs +15 -5
- 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 +16 -7
- package/source/components/datatable/stylesheet/datasource.mjs +16 -7
- package/source/components/datatable/stylesheet/datatable.mjs +16 -7
- 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 +254 -249
- 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 +10 -15
- 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 +6 -6
- 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/stylesheet/action-button.mjs +16 -7
- package/source/components/form/stylesheet/api-button.mjs +16 -7
- package/source/components/form/stylesheet/button-bar.mjs +16 -7
- package/source/components/form/stylesheet/button.mjs +16 -7
- package/source/components/form/stylesheet/confirm-button.mjs +16 -7
- 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 +16 -7
- package/source/components/form/stylesheet/form.mjs +16 -7
- 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 +4 -6
- package/source/components/host/config-manager.mjs +2 -0
- package/source/components/host/constants.mjs +2 -0
- package/source/components/host/details.mjs +5 -8
- 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 +16 -7
- package/source/components/host/stylesheet/overlay.mjs +16 -7
- 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 +4 -3
- package/source/components/layout/details.mjs +2 -0
- package/source/components/layout/panel.mjs +179 -169
- package/source/components/layout/popper.mjs +324 -320
- package/source/components/layout/split-panel.mjs +329 -303
- package/source/components/layout/stylesheet/collapse.mjs +16 -7
- package/source/components/layout/stylesheet/details.mjs +16 -7
- package/source/components/layout/stylesheet/panel.mjs +16 -7
- package/source/components/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 +39 -24
- package/source/components/layout/width-toggle.mjs +148 -138
- package/source/components/navigation/style/table-of-content.pcss +20 -5
- package/source/components/navigation/stylesheet/table-of-content.mjs +17 -8
- package/source/components/navigation/table-of-content.mjs +394 -266
- 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 +16 -7
- package/source/components/style/mixin/form.pcss +0 -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 +16 -7
- 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 +95 -87
- 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 +2 -1
- package/source/dom/resource/data.mjs +133 -123
- 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 -4
- 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 +3 -9
- 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 +10 -3
- 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 +10 -3
- 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/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 +2036 -1189
- package/example/components/form/button.mjs +0 -10
- package/example/components/form/field-set.mjs +0 -4
- 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/namespace.mjs +0 -13
- 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
|
@@ -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 { createPopper } from "@popperjs/core";
|
|
9
17
|
import { extend } from "../../data/extend.mjs";
|
|
@@ -225,7 +233,7 @@ class Tabs extends CustomElement {
|
|
|
225
233
|
accept: "text/html",
|
|
226
234
|
},
|
|
227
235
|
},
|
|
228
|
-
|
|
236
|
+
|
|
229
237
|
features: {
|
|
230
238
|
openDelay: null,
|
|
231
239
|
},
|
|
@@ -296,40 +304,47 @@ class Tabs extends CustomElement {
|
|
|
296
304
|
|
|
297
305
|
/**
|
|
298
306
|
* A function that activates a tab based on the provided name.
|
|
299
|
-
*
|
|
307
|
+
*
|
|
300
308
|
* The tabs have to be named with the `data-monster-name` attribute.
|
|
301
309
|
*
|
|
302
310
|
* @param {type} idOrName - the name or id of the tab to activate
|
|
303
311
|
* @return {Tabs} - The current instance
|
|
304
312
|
*/
|
|
305
313
|
activeTab(idOrName) {
|
|
306
|
-
|
|
307
314
|
let found = false;
|
|
308
|
-
|
|
315
|
+
|
|
309
316
|
getSlottedElements.call(this).forEach((node) => {
|
|
310
317
|
if (found === true) {
|
|
311
|
-
return
|
|
318
|
+
return;
|
|
312
319
|
}
|
|
313
|
-
|
|
320
|
+
|
|
314
321
|
if (node.getAttribute("data-monster-name") === idOrName) {
|
|
315
|
-
this.shadowRoot
|
|
322
|
+
this.shadowRoot
|
|
323
|
+
.querySelector(
|
|
324
|
+
`[data-monster-tab-reference="${node.getAttribute("id")}"]`,
|
|
325
|
+
)
|
|
326
|
+
.click();
|
|
316
327
|
found = true;
|
|
317
328
|
}
|
|
318
|
-
|
|
329
|
+
|
|
319
330
|
if (node.getAttribute("id") === idOrName) {
|
|
320
|
-
this.shadowRoot
|
|
331
|
+
this.shadowRoot
|
|
332
|
+
.querySelector(
|
|
333
|
+
`[data-monster-tab-reference="${node.getAttribute("id")}"]`,
|
|
334
|
+
)
|
|
335
|
+
.click();
|
|
321
336
|
found = true;
|
|
322
337
|
}
|
|
323
|
-
})
|
|
324
|
-
|
|
325
|
-
return this
|
|
338
|
+
});
|
|
339
|
+
|
|
340
|
+
return this;
|
|
326
341
|
}
|
|
327
342
|
|
|
328
343
|
/**
|
|
329
344
|
* A function that returns the name or id of the currently active tab.
|
|
330
|
-
*
|
|
345
|
+
*
|
|
331
346
|
* The tabs have to be named with the `data-monster-name` attribute.
|
|
332
|
-
*
|
|
347
|
+
*
|
|
333
348
|
* @returns {string|null}
|
|
334
349
|
*/
|
|
335
350
|
getActiveTab() {
|
|
@@ -338,8 +353,8 @@ class Tabs extends CustomElement {
|
|
|
338
353
|
if (node.matches(".active") === true) {
|
|
339
354
|
if (node.hasAttribute("data-monster-name")) {
|
|
340
355
|
return node.getAttribute("data-monster-name");
|
|
341
|
-
}
|
|
342
|
-
|
|
356
|
+
}
|
|
357
|
+
|
|
343
358
|
return node.getAttribute("id");
|
|
344
359
|
}
|
|
345
360
|
}
|
|
@@ -583,17 +598,17 @@ function show(element) {
|
|
|
583
598
|
|
|
584
599
|
if (id === reference) {
|
|
585
600
|
node.classList.add("active");
|
|
586
|
-
|
|
601
|
+
|
|
587
602
|
const openDelay = parseInt(this.getOption("features.openDelay"), 10);
|
|
588
|
-
|
|
589
|
-
if(!isNaN(openDelay) && openDelay>0) {
|
|
603
|
+
|
|
604
|
+
if (!isNaN(openDelay) && openDelay > 0) {
|
|
590
605
|
node.style.visibility = "hidden";
|
|
591
606
|
|
|
592
607
|
setTimeout(() => {
|
|
593
608
|
node.style.visibility = "visible";
|
|
594
609
|
}, openDelay);
|
|
595
|
-
}
|
|
596
|
-
|
|
610
|
+
}
|
|
611
|
+
|
|
597
612
|
// get all data- from button and filter out data-monster-attributes and data-monster-insert
|
|
598
613
|
const data = {};
|
|
599
614
|
const mask = [
|
|
@@ -1,22 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
|
|
3
|
+
* Node module: @schukai/monster
|
|
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
|
+
*
|
|
3
12
|
* SPDX-License-Identifier: AGPL-3.0
|
|
4
13
|
*/
|
|
5
14
|
|
|
6
|
-
import {addAttributeToken} from "../../dom/attributes.mjs";
|
|
7
|
-
import {ATTRIBUTE_ERRORMESSAGE} from "../../dom/constants.mjs";
|
|
15
|
+
import { addAttributeToken } from "../../dom/attributes.mjs";
|
|
16
|
+
import { ATTRIBUTE_ERRORMESSAGE } from "../../dom/constants.mjs";
|
|
8
17
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
18
|
+
assembleMethodSymbol,
|
|
19
|
+
CustomElement,
|
|
20
|
+
registerCustomElement,
|
|
12
21
|
} from "../../dom/customelement.mjs";
|
|
13
|
-
import {fireCustomEvent} from "../../dom/events.mjs";
|
|
14
|
-
import {Observer} from "../../types/observer.mjs";
|
|
15
|
-
import {WidthToggleStyleSheet} from "./stylesheet/width-toggle.mjs";
|
|
16
|
-
import {instanceSymbol} from "../../constants.mjs";
|
|
17
|
-
import {internalSymbol} from "../../constants.mjs";
|
|
22
|
+
import { fireCustomEvent } from "../../dom/events.mjs";
|
|
23
|
+
import { Observer } from "../../types/observer.mjs";
|
|
24
|
+
import { WidthToggleStyleSheet } from "./stylesheet/width-toggle.mjs";
|
|
25
|
+
import { instanceSymbol } from "../../constants.mjs";
|
|
26
|
+
import { internalSymbol } from "../../constants.mjs";
|
|
18
27
|
|
|
19
|
-
export {WidthToggle, MODE_SMALL, MODE_WIDE};
|
|
28
|
+
export { WidthToggle, MODE_SMALL, MODE_WIDE };
|
|
20
29
|
|
|
21
30
|
/**
|
|
22
31
|
* @private
|
|
@@ -79,152 +88,153 @@ const MODE_WIDE = "wide";
|
|
|
79
88
|
* @fires Monster.Components.Layout.event:monster-dimension-changed
|
|
80
89
|
*/
|
|
81
90
|
class WidthToggle extends CustomElement {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
91
|
+
/**
|
|
92
|
+
* This method is called by the `instanceof` operator.
|
|
93
|
+
* @returns {symbol}
|
|
94
|
+
*/
|
|
95
|
+
static get [instanceSymbol]() {
|
|
96
|
+
return Symbol.for(
|
|
97
|
+
"@schukai/monster/components/layout/width-toggle@@instance",
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* To set the options via the html tag the attribute `data-monster-options` must be used.
|
|
103
|
+
* @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
|
|
104
|
+
*
|
|
105
|
+
* The individual configuration values can be found in the table.
|
|
106
|
+
*
|
|
107
|
+
* @property {Object} templates Template definitions
|
|
108
|
+
* @property {string} templates.main Main template
|
|
109
|
+
* @property {string} splitType Split type (vertical or horizontal)
|
|
110
|
+
* @property {string} dimension Dimension
|
|
111
|
+
* @property {string} dimension.initial Initial dimension of the start panel
|
|
112
|
+
* @property {string} dimension.max Maximum dimension of the start panel (in percentage)
|
|
113
|
+
* @property {string} dimension.min Minimum dimension of the start panel (in percentage)
|
|
114
|
+
*/
|
|
115
|
+
get defaults() {
|
|
116
|
+
return Object.assign({}, super.defaults, {
|
|
117
|
+
templates: {
|
|
118
|
+
main: getTemplate(),
|
|
119
|
+
},
|
|
120
|
+
width: {
|
|
121
|
+
small: "40%",
|
|
122
|
+
wide: "95%",
|
|
123
|
+
},
|
|
124
|
+
default: MODE_SMALL,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
*
|
|
130
|
+
* @returns {Monster.Components.Host.Viewer}
|
|
131
|
+
*/
|
|
132
|
+
[assembleMethodSymbol]() {
|
|
133
|
+
super[assembleMethodSymbol]();
|
|
134
|
+
|
|
135
|
+
initControlReferences.call(this);
|
|
136
|
+
initEventHandler.call(this);
|
|
137
|
+
applyContainerWidth.call(this, this.getOption("default"));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Check if the dimension is a percentage and within a valid range, then set the dimension option.
|
|
142
|
+
*
|
|
143
|
+
* @param {string} mode - The mode of the panel. Possible values are "wide" or "small".
|
|
144
|
+
* @return {Object} - Returns the current object instance for chaining.
|
|
145
|
+
* @throws {Error} - If the mode is not supported.
|
|
146
|
+
*/
|
|
147
|
+
setWidth(mode) {
|
|
148
|
+
applyContainerWidth.call(this, mode);
|
|
149
|
+
return this;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
*
|
|
154
|
+
* @return {string}
|
|
155
|
+
*/
|
|
156
|
+
static getTag() {
|
|
157
|
+
return "monster-width-toggle";
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* @return {CSSStyleSheet[]}
|
|
162
|
+
*/
|
|
163
|
+
static getCSSStyleSheet() {
|
|
164
|
+
return [WidthToggleStyleSheet];
|
|
165
|
+
}
|
|
158
166
|
}
|
|
159
167
|
|
|
160
|
-
|
|
161
168
|
/**
|
|
162
169
|
* Set the dimensions of the panel based on the split type.
|
|
163
170
|
* @param {string} mode - The mode of the panel. Possible values are "wide" or "small".
|
|
164
171
|
* @fires Monster.Components.Layout.event:monster-dimension-changed
|
|
165
172
|
*/
|
|
166
173
|
function applyContainerWidth(mode) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
}
|
|
193
|
-
|
|
174
|
+
const width = this.getOption("width." + mode);
|
|
175
|
+
if (!width) {
|
|
176
|
+
addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, e.message);
|
|
177
|
+
throw new Error("unsupported mode");
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
switch (mode) {
|
|
181
|
+
case MODE_SMALL:
|
|
182
|
+
case MODE_WIDE:
|
|
183
|
+
this[toggleElementSymbol].style.right =
|
|
184
|
+
"calc( 50% - (" + width + " / 2) + 1rem)";
|
|
185
|
+
this[toggleElementSymbol].setAttribute("data-monster-state", mode);
|
|
186
|
+
this[insideElementSymbol].style.width = width;
|
|
187
|
+
|
|
188
|
+
fireCustomEvent(this, "monster-dimension-changed", {
|
|
189
|
+
controller: this,
|
|
190
|
+
dimension: width,
|
|
191
|
+
});
|
|
192
|
+
break;
|
|
193
|
+
|
|
194
|
+
default:
|
|
195
|
+
const error = new Error("unsupported mode");
|
|
196
|
+
addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, error.message);
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
194
199
|
}
|
|
195
200
|
|
|
196
|
-
|
|
197
201
|
/**
|
|
198
202
|
* @private
|
|
199
203
|
* @return {Select}
|
|
200
204
|
* @throws {Error} no shadow-root is defined
|
|
201
205
|
*/
|
|
202
206
|
function initControlReferences() {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
207
|
+
if (!this.shadowRoot) {
|
|
208
|
+
throw new Error("no shadow-root is defined");
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
this[widthToggleElementSymbol] = this.shadowRoot.querySelector(
|
|
212
|
+
"[data-monster-role=control]",
|
|
213
|
+
);
|
|
214
|
+
this[toggleElementSymbol] = this.shadowRoot.querySelector(
|
|
215
|
+
"[data-monster-role=toggle]",
|
|
216
|
+
);
|
|
217
|
+
this[insideElementSymbol] = this.shadowRoot.querySelector(
|
|
218
|
+
"[data-monster-role=inside]",
|
|
219
|
+
);
|
|
212
220
|
}
|
|
213
221
|
|
|
214
222
|
/**
|
|
215
223
|
* @private
|
|
216
224
|
*/
|
|
217
225
|
function initEventHandler() {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
226
|
+
const self = this;
|
|
227
|
+
|
|
228
|
+
this[toggleElementSymbol].addEventListener("click", function () {
|
|
229
|
+
const mode =
|
|
230
|
+
self[toggleElementSymbol].getAttribute("data-monster-state") ===
|
|
231
|
+
MODE_SMALL
|
|
232
|
+
? MODE_WIDE
|
|
233
|
+
: MODE_SMALL;
|
|
234
|
+
applyContainerWidth.call(self, mode);
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
return this;
|
|
228
238
|
}
|
|
229
239
|
|
|
230
240
|
/**
|
|
@@ -232,8 +242,8 @@ function initEventHandler() {
|
|
|
232
242
|
* @return {string}
|
|
233
243
|
*/
|
|
234
244
|
function getTemplate() {
|
|
235
|
-
|
|
236
|
-
|
|
245
|
+
// language=HTML
|
|
246
|
+
return `
|
|
237
247
|
<div data-monster-role="control" part="control">
|
|
238
248
|
<div part="container" data-monster-role="container">
|
|
239
249
|
<div part="toggle" data-monster-role="toggle" data-monster-state="wide"></div>
|
|
@@ -9,15 +9,23 @@
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
.navigation {
|
|
12
|
+
|
|
13
|
+
&.left {
|
|
14
|
+
left: 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&.right {
|
|
18
|
+
right: 40px;
|
|
19
|
+
}
|
|
12
20
|
|
|
13
21
|
box-sizing: border-box;
|
|
14
22
|
position: absolute;
|
|
15
23
|
top: 0;
|
|
16
24
|
display: block;
|
|
17
|
-
cursor: pointer;
|
|
18
|
-
width: 20px;
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
width: 20px;
|
|
19
27
|
|
|
20
|
-
transition: top 0.2s ease, visibility 0.
|
|
28
|
+
transition: top 0.2s ease, visibility 0.3s ease;
|
|
21
29
|
|
|
22
30
|
& [data-monster-role="navigation-list"] {
|
|
23
31
|
|
|
@@ -42,6 +50,13 @@
|
|
|
42
50
|
border-left: 1px dotted var(--monster-color-primary-2);
|
|
43
51
|
margin-top: 0;
|
|
44
52
|
}
|
|
53
|
+
|
|
54
|
+
& div.footer {
|
|
55
|
+
display: flex;
|
|
56
|
+
gap: 5px;
|
|
57
|
+
padding: 5px 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
45
60
|
}
|
|
46
61
|
|
|
47
62
|
& [data-monster-role=navigation-control] {
|
|
@@ -52,8 +67,8 @@
|
|
|
52
67
|
display: flex;
|
|
53
68
|
height: 0;
|
|
54
69
|
|
|
55
|
-
background-color: var(--monster-
|
|
56
|
-
margin-bottom:
|
|
70
|
+
background-color: var(--monster-color-primary-1);
|
|
71
|
+
margin-bottom: 3px;
|
|
57
72
|
|
|
58
73
|
&.level-h1 {
|
|
59
74
|
height: 6px;
|