@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,5 +1,14 @@
|
|
|
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
|
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
/**
|
|
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
|
+
*
|
|
12
|
+
* SPDX-License-Identifier: AGPL-3.0
|
|
13
|
+
*/
|
|
14
|
+
|
|
1
15
|
import { getWindow } from "../../dom/util.mjs";
|
|
2
16
|
|
|
3
17
|
export { generateUniqueConfigKey };
|
|
@@ -1,5 +1,14 @@
|
|
|
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
|
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
* For those who do not wish to adhere to the AGPLv3, a commercial license is available.
|
|
9
9
|
* Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
|
|
10
10
|
* For more information about purchasing a commercial license, please contact schukai GmbH.
|
|
11
|
+
*
|
|
12
|
+
* SPDX-License-Identifier: AGPL-3.0
|
|
11
13
|
*/
|
|
12
14
|
|
|
13
15
|
import {
|
|
@@ -78,7 +80,7 @@ const detailsDecoElementSymbol = Symbol("detailsDecoElement");
|
|
|
78
80
|
const nameSymbol = Symbol("name");
|
|
79
81
|
|
|
80
82
|
/**
|
|
81
|
-
* The Collapse component is used to show
|
|
83
|
+
* The Collapse component is used to show the details.
|
|
82
84
|
*
|
|
83
85
|
* <img src="./images/collapse.png">
|
|
84
86
|
*
|
|
@@ -183,11 +185,10 @@ class Collapse extends CustomElement {
|
|
|
183
185
|
initStateFromHostConfig.call(this);
|
|
184
186
|
initResizeObserver.call(this);
|
|
185
187
|
initEventHandler.call(this);
|
|
186
|
-
|
|
188
|
+
|
|
187
189
|
if (this.getOption("openByDefault")) {
|
|
188
190
|
this.open();
|
|
189
191
|
}
|
|
190
|
-
|
|
191
192
|
}
|
|
192
193
|
|
|
193
194
|
/**
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
* For those who do not wish to adhere to the AGPLv3, a commercial license is available.
|
|
9
9
|
* Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
|
|
10
10
|
* For more information about purchasing a commercial license, please contact schukai GmbH.
|
|
11
|
+
*
|
|
12
|
+
* SPDX-License-Identifier: AGPL-3.0
|
|
11
13
|
*/
|
|
12
14
|
|
|
13
15
|
import {
|
|
@@ -1,19 +1,28 @@
|
|
|
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
15
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
16
|
+
assembleMethodSymbol,
|
|
17
|
+
CustomElement,
|
|
18
|
+
registerCustomElement,
|
|
10
19
|
} from "../../dom/customelement.mjs";
|
|
11
|
-
import {DeadMansSwitch} from "../../util/deadmansswitch.mjs";
|
|
20
|
+
import { DeadMansSwitch } from "../../util/deadmansswitch.mjs";
|
|
12
21
|
|
|
13
|
-
import {PanelStyleSheet} from "./stylesheet/panel.mjs";
|
|
14
|
-
import {instanceSymbol} from "../../constants.mjs";
|
|
22
|
+
import { PanelStyleSheet } from "./stylesheet/panel.mjs";
|
|
23
|
+
import { instanceSymbol } from "../../constants.mjs";
|
|
15
24
|
|
|
16
|
-
export {Panel};
|
|
25
|
+
export { Panel };
|
|
17
26
|
|
|
18
27
|
/**
|
|
19
28
|
* @private
|
|
@@ -66,178 +75,179 @@ const timerCallbackSymbol = Symbol("timerCallback");
|
|
|
66
75
|
* @summary A simple panel component
|
|
67
76
|
*/
|
|
68
77
|
class Panel extends CustomElement {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
-
static getCSSStyleSheet() {
|
|
148
|
-
return [PanelStyleSheet];
|
|
149
|
-
}
|
|
78
|
+
/**
|
|
79
|
+
* This method is called by the `instanceof` operator.
|
|
80
|
+
* @returns {symbol}
|
|
81
|
+
*/
|
|
82
|
+
static get [instanceSymbol]() {
|
|
83
|
+
return Symbol.for("@schukai/monster/components/layout/panel");
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* To set the options via the html tag the attribute `data-monster-options` must be used.
|
|
88
|
+
* @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
|
|
89
|
+
*
|
|
90
|
+
* The individual configuration values can be found in the table.
|
|
91
|
+
*
|
|
92
|
+
* @property {Object} templates Template definitions
|
|
93
|
+
* @property {string} templates.main Main template
|
|
94
|
+
* @property {string} heightAdjustment Height adjustment
|
|
95
|
+
*/
|
|
96
|
+
get defaults() {
|
|
97
|
+
return Object.assign({}, super.defaults, {
|
|
98
|
+
templates: {
|
|
99
|
+
main: getTemplate(),
|
|
100
|
+
},
|
|
101
|
+
heightAdjustment: 4,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
*
|
|
107
|
+
* @returns {Monster.Components.Host.Viewer}
|
|
108
|
+
*/
|
|
109
|
+
[assembleMethodSymbol]() {
|
|
110
|
+
super[assembleMethodSymbol]();
|
|
111
|
+
|
|
112
|
+
initControlReferences.call(this);
|
|
113
|
+
initEventHandler.call(this);
|
|
114
|
+
|
|
115
|
+
calcHeight.call(this);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* This method is called by the dom and should not be called directly.
|
|
120
|
+
*
|
|
121
|
+
* @return {void}
|
|
122
|
+
*/
|
|
123
|
+
connectedCallback() {
|
|
124
|
+
super.connectedCallback();
|
|
125
|
+
attachResizeObserver.call(this);
|
|
126
|
+
|
|
127
|
+
// disable scrolling in parent node
|
|
128
|
+
if (this.parentNode && this.parentNode instanceof HTMLElement) {
|
|
129
|
+
this.parentNode.style.overflow = "hidden";
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* This method is called by the dom and should not be called directly.
|
|
135
|
+
*
|
|
136
|
+
* @return {void}
|
|
137
|
+
*/
|
|
138
|
+
disconnectedCallback() {
|
|
139
|
+
super.disconnectedCallback();
|
|
140
|
+
disconnectResizeObserver.call(this);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* @return {string}
|
|
145
|
+
*/
|
|
146
|
+
static getTag() {
|
|
147
|
+
return "monster-panel";
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* @return {CSSStyleSheet[]}
|
|
152
|
+
*/
|
|
153
|
+
static getCSSStyleSheet() {
|
|
154
|
+
return [PanelStyleSheet];
|
|
155
|
+
}
|
|
150
156
|
}
|
|
151
157
|
|
|
152
158
|
/**
|
|
153
159
|
* @private
|
|
154
160
|
*/
|
|
155
161
|
function calcHeight() {
|
|
162
|
+
this.style.boxSizing = "border-box";
|
|
156
163
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
this.style.height = `${height}px`;
|
|
164
|
+
const height = calculateMaximumHeight.call(this, this);
|
|
165
|
+
if (height < 0) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
165
168
|
|
|
169
|
+
this.style.height = `${height}px`;
|
|
166
170
|
}
|
|
167
171
|
|
|
168
172
|
function calculateMaximumHeight(element) {
|
|
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
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
173
|
+
let totalBottomBorder = 0;
|
|
174
|
+
let totalBottomPadding = 0;
|
|
175
|
+
let totalBottomMargin = 0;
|
|
176
|
+
let totalOutlineHeight = 0;
|
|
177
|
+
let totalBoxShadowHeight = 0;
|
|
178
|
+
let currentElement = element;
|
|
179
|
+
|
|
180
|
+
// Get the distance from the top of the element to the top of the viewport
|
|
181
|
+
const distanceFromTop = element.getBoundingClientRect().top;
|
|
182
|
+
|
|
183
|
+
// Loop through the elements up to the body to sum up the bottom borders, padding, and margin
|
|
184
|
+
while (currentElement && currentElement !== document.body) {
|
|
185
|
+
const style = window.getComputedStyle(currentElement);
|
|
186
|
+
|
|
187
|
+
// Box sizing
|
|
188
|
+
const boxSizing = style.boxSizing;
|
|
189
|
+
|
|
190
|
+
// Borders, padding, and margin
|
|
191
|
+
const borderBottomWidth = parseFloat(style.borderBottomWidth);
|
|
192
|
+
const paddingBottom = parseFloat(style.paddingBottom);
|
|
193
|
+
const marginBottom = parseFloat(style.marginBottom);
|
|
194
|
+
|
|
195
|
+
// Outline and box-shadow
|
|
196
|
+
const outlineHeight = parseFloat(style.outlineWidth);
|
|
197
|
+
// This is a simplification; box-shadow is more complex to parse
|
|
198
|
+
const boxShadowVertical = parseFloat(style.boxShadow.split(" ")[3] || 0);
|
|
199
|
+
|
|
200
|
+
// Accumulate values
|
|
201
|
+
totalBottomBorder += isNaN(borderBottomWidth) ? 0 : borderBottomWidth;
|
|
202
|
+
totalBottomPadding +=
|
|
203
|
+
isNaN(paddingBottom) || boxSizing === "border-box" ? 0 : paddingBottom;
|
|
204
|
+
totalBottomMargin += isNaN(marginBottom) ? 0 : marginBottom;
|
|
205
|
+
totalOutlineHeight += isNaN(outlineHeight) ? 0 : outlineHeight;
|
|
206
|
+
totalBoxShadowHeight += isNaN(boxShadowVertical) ? 0 : boxShadowVertical;
|
|
207
|
+
|
|
208
|
+
currentElement = currentElement.parentNode || currentElement.host;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// Calculate the maximum height by subtracting the distance, borders, padding, margin, outline, and box-shadow from the window's inner height
|
|
212
|
+
const maximumHeight =
|
|
213
|
+
window.innerHeight -
|
|
214
|
+
distanceFromTop -
|
|
215
|
+
totalBottomBorder -
|
|
216
|
+
totalBottomPadding -
|
|
217
|
+
totalBottomMargin -
|
|
218
|
+
totalOutlineHeight -
|
|
219
|
+
totalBoxShadowHeight;
|
|
220
|
+
return maximumHeight + this.getOption("heightAdjustment");
|
|
209
221
|
}
|
|
210
222
|
|
|
211
|
-
|
|
212
223
|
/**
|
|
213
224
|
* @private
|
|
214
225
|
*/
|
|
215
226
|
function attachResizeObserver() {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
227
|
+
// against flickering
|
|
228
|
+
this[resizeObserverSymbol] = new ResizeObserver(() => {
|
|
229
|
+
if (this[timerCallbackSymbol] instanceof DeadMansSwitch) {
|
|
230
|
+
try {
|
|
231
|
+
this[timerCallbackSymbol].touch();
|
|
232
|
+
return;
|
|
233
|
+
} catch (e) {
|
|
234
|
+
delete this[timerCallbackSymbol];
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
this[timerCallbackSymbol] = new DeadMansSwitch(200, () => {
|
|
239
|
+
calcHeight.call(this);
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
this[resizeObserverSymbol].observe(this.ownerDocument.body);
|
|
244
|
+
this[resizeObserverSymbol].observe(document.scrollingElement);
|
|
235
245
|
}
|
|
236
246
|
|
|
237
247
|
function disconnectResizeObserver() {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
248
|
+
if (this[resizeObserverSymbol] instanceof ResizeObserver) {
|
|
249
|
+
this[resizeObserverSymbol].disconnect();
|
|
250
|
+
}
|
|
241
251
|
}
|
|
242
252
|
|
|
243
253
|
/**
|
|
@@ -246,20 +256,20 @@ function disconnectResizeObserver() {
|
|
|
246
256
|
* @throws {Error} no shadow-root is defined
|
|
247
257
|
*/
|
|
248
258
|
function initControlReferences() {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
this[PanelElementSymbol] = this.shadowRoot.querySelector("[data-monster-role=control]");
|
|
254
|
-
|
|
259
|
+
if (!this.shadowRoot) {
|
|
260
|
+
throw new Error("no shadow-root is defined");
|
|
261
|
+
}
|
|
255
262
|
|
|
263
|
+
this[PanelElementSymbol] = this.shadowRoot.querySelector(
|
|
264
|
+
"[data-monster-role=control]",
|
|
265
|
+
);
|
|
256
266
|
}
|
|
257
267
|
|
|
258
268
|
/**
|
|
259
269
|
* @private
|
|
260
270
|
*/
|
|
261
271
|
function initEventHandler() {
|
|
262
|
-
|
|
272
|
+
return this;
|
|
263
273
|
}
|
|
264
274
|
|
|
265
275
|
/**
|
|
@@ -267,8 +277,8 @@ function initEventHandler() {
|
|
|
267
277
|
* @return {string}
|
|
268
278
|
*/
|
|
269
279
|
function getTemplate() {
|
|
270
|
-
|
|
271
|
-
|
|
280
|
+
// language=HTML
|
|
281
|
+
return `
|
|
272
282
|
<div data-monster-role="control" part="control">
|
|
273
283
|
<slot></slot>
|
|
274
284
|
</div>`;
|