@schukai/monster 3.51.5 → 3.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +15 -12
- package/example/components/form/button.mjs +10 -0
- package/example/components/form/select.mjs +25 -0
- package/example/components/form/tree-select.mjs +27 -0
- package/example/components/host/host.mjs +0 -0
- package/example/components/notify/message.mjs +4 -0
- package/example/components/notify/notify.mjs +4 -0
- package/example/components/state/log.mjs +0 -0
- package/example/components/state/state.mjs +0 -0
- package/package.json +6 -2
- package/source/components/constants.mjs +132 -0
- package/source/components/datatable/columnbar.mjs +310 -0
- package/source/components/datatable/constants.mjs +121 -0
- package/source/components/datatable/dataset.mjs +219 -0
- package/source/components/datatable/datasource/dom.mjs +186 -0
- package/source/components/datatable/datasource/namespace.mjs +13 -0
- package/source/components/datatable/datasource/rest.mjs +400 -0
- package/source/components/datatable/datasource.mjs +102 -0
- package/source/components/datatable/datatable/header.mjs +268 -0
- package/source/components/datatable/datatable/namespace.mjs +13 -0
- package/source/components/datatable/datatable.mjs +789 -0
- package/source/components/datatable/embedded-pagination.mjs +113 -0
- package/source/components/datatable/filter/abstract-base.mjs +31 -0
- package/source/components/datatable/filter/date-range.mjs +1041 -0
- package/source/components/datatable/filter/input.mjs +175 -0
- package/source/components/datatable/filter/namespace.mjs +13 -0
- package/source/components/datatable/filter/range.mjs +671 -0
- package/source/components/datatable/filter/select.mjs +65 -0
- package/source/components/datatable/filter/settings.mjs +116 -0
- package/source/components/datatable/filter-button.mjs +98 -0
- package/source/components/datatable/filter.mjs +929 -0
- package/source/components/datatable/namespace.mjs +11 -0
- package/source/components/datatable/pagination.mjs +456 -0
- package/source/components/datatable/style/column-bar.pcss +123 -0
- package/source/components/datatable/style/dataset.pcss +13 -0
- package/source/components/datatable/style/datasource.pcss +16 -0
- package/source/components/datatable/style/datatable.pcss +239 -0
- package/source/components/datatable/style/embedded-pagination.pcss +101 -0
- package/source/components/datatable/style/filter-button.pcss +22 -0
- package/source/components/datatable/style/filter-controls-defaults.pcss +46 -0
- package/source/components/datatable/style/filter-date-range.pcss +9 -0
- package/source/components/datatable/style/filter-range.pcss +5 -0
- package/source/components/datatable/style/filter.pcss +156 -0
- package/source/components/datatable/style/pagination.pcss +59 -0
- package/source/components/datatable/style/select-filter.pcss +27 -0
- package/source/components/datatable/stylesheet/column-bar.mjs +33 -0
- package/source/components/datatable/stylesheet/dataset.mjs +33 -0
- package/source/components/datatable/stylesheet/datasource.mjs +33 -0
- package/source/components/datatable/stylesheet/datatable.mjs +33 -0
- package/source/components/datatable/stylesheet/embedded-pagination.mjs +33 -0
- package/source/components/datatable/stylesheet/filter-button.mjs +33 -0
- package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +33 -0
- package/source/components/datatable/stylesheet/filter-date-range.mjs +33 -0
- package/source/components/datatable/stylesheet/filter-range.mjs +33 -0
- package/source/components/datatable/stylesheet/filter.mjs +33 -0
- package/source/components/datatable/stylesheet/namespace.mjs +13 -0
- package/source/components/datatable/stylesheet/pagination.mjs +33 -0
- package/source/components/datatable/stylesheet/select-filter.mjs +33 -0
- package/source/components/datatable/util.mjs +60 -0
- package/source/components/form/action-button.mjs +262 -0
- package/source/components/form/api-button.mjs +515 -0
- package/source/components/form/button-bar.mjs +739 -0
- package/source/components/form/button.mjs +350 -0
- package/source/components/form/confirm-button.mjs +330 -0
- package/source/components/form/constants.mjs +111 -0
- package/source/components/form/context-help.mjs +123 -0
- package/source/components/form/events.mjs +84 -0
- package/source/components/form/form.mjs +601 -0
- package/source/components/form/message-state-button.mjs +396 -0
- package/source/components/form/namespace.mjs +13 -0
- package/source/components/form/popper-button.mjs +435 -0
- package/source/components/form/popper.mjs +487 -0
- package/source/components/form/reload.mjs +360 -0
- package/source/components/form/select.mjs +2314 -0
- package/source/components/form/shadow-reload.mjs +137 -0
- package/source/components/form/state-button.mjs +182 -0
- package/source/components/form/style/action-button.pcss +41 -0
- package/source/components/form/style/api-button.pcss +0 -0
- package/source/components/form/style/button-bar.pcss +51 -0
- package/source/components/form/style/button.pcss +8 -0
- package/source/components/form/style/confirm-button.pcss +17 -0
- package/source/components/form/style/context-help.pcss +16 -0
- package/source/components/form/style/form.pcss +10 -0
- package/source/components/form/style/message-state-button.pcss +10 -0
- package/source/components/form/style/popper-button.pcss +16 -0
- package/source/components/form/style/popper.pcss +8 -0
- package/source/components/form/style/select.pcss +265 -0
- package/source/components/form/style/state-button.pcss +116 -0
- package/source/components/form/style/tabs.pcss +170 -0
- package/source/components/form/style/tree-select.pcss +81 -0
- package/source/components/form/stylesheet/action-button.mjs +33 -0
- package/source/components/form/stylesheet/api-button.mjs +33 -0
- package/source/components/form/stylesheet/button-bar.mjs +33 -0
- package/source/components/form/stylesheet/button.mjs +33 -0
- package/source/components/form/stylesheet/confirm-button.mjs +33 -0
- package/source/components/form/stylesheet/context-help.mjs +33 -0
- package/source/components/form/stylesheet/form.mjs +33 -0
- package/source/components/form/stylesheet/message-state-button.mjs +33 -0
- package/source/components/form/stylesheet/namespace.mjs +13 -0
- package/source/components/form/stylesheet/popper-button.mjs +33 -0
- package/source/components/form/stylesheet/popper.mjs +33 -0
- package/source/components/form/stylesheet/select.mjs +33 -0
- package/source/components/form/stylesheet/state-button.mjs +33 -0
- package/source/components/form/stylesheet/tabs.mjs +33 -0
- package/source/components/form/stylesheet/tree-select.mjs +33 -0
- package/source/components/form/tabs.mjs +1011 -0
- package/source/components/form/template.mjs +373 -0
- package/source/components/form/tree-select.mjs +527 -0
- package/source/components/form/types/namespace.mjs +13 -0
- package/source/components/form/types/state.mjs +93 -0
- package/source/components/form/util/fetch.mjs +133 -0
- package/source/components/form/util/floating-ui.mjs +245 -0
- package/source/components/form/util/namespace.mjs +13 -0
- package/source/components/form/util/popper.mjs +49 -0
- package/source/components/host/call-button.mjs +236 -0
- package/source/components/host/collapse.mjs +526 -0
- package/source/components/host/config-manager.mjs +304 -0
- package/source/components/host/constants.mjs +18 -0
- package/source/components/host/details.mjs +268 -0
- package/source/components/host/events.mjs +131 -0
- package/source/components/host/host.mjs +420 -0
- package/source/components/host/namespace.mjs +13 -0
- package/source/components/host/overlay.mjs +339 -0
- package/source/components/host/style/call-button.pcss +36 -0
- package/source/components/host/style/collapse.pcss +67 -0
- package/source/components/host/style/config-manager.pcss +5 -0
- package/source/components/host/style/details.pcss +68 -0
- package/source/components/host/style/host.pcss +43 -0
- package/source/components/host/style/overlay.pcss +73 -0
- package/source/components/host/style/toggle-button.pcss +36 -0
- package/source/components/host/style/viewer.pcss +13 -0
- package/source/components/host/stylesheet/call-button.mjs +33 -0
- package/source/components/host/stylesheet/collapse.mjs +33 -0
- package/source/components/host/stylesheet/config-manager.mjs +33 -0
- package/source/components/host/stylesheet/details.mjs +33 -0
- package/source/components/host/stylesheet/host.mjs +33 -0
- package/source/components/host/stylesheet/namespace.mjs +13 -0
- package/source/components/host/stylesheet/overlay.mjs +33 -0
- package/source/components/host/stylesheet/toggle-button.mjs +33 -0
- package/source/components/host/stylesheet/viewer.mjs +33 -0
- package/source/components/host/toggle-button.mjs +88 -0
- package/source/components/host/util.mjs +23 -0
- package/source/components/host/viewer.mjs +309 -0
- package/source/components/namespace.mjs +14 -0
- package/source/components/notify/constants.mjs +15 -0
- package/source/components/notify/events.mjs +15 -0
- package/source/components/notify/message.mjs +374 -0
- package/source/components/notify/namespace.mjs +15 -0
- package/source/components/notify/notify.mjs +236 -0
- package/source/components/notify/style/message.pcss +57 -0
- package/source/components/notify/style/notify.pcss +118 -0
- package/source/components/notify/stylesheet/message.mjs +33 -0
- package/source/components/notify/stylesheet/namespace.mjs +15 -0
- package/source/components/notify/stylesheet/notify.mjs +33 -0
- package/source/components/state/log/entry.mjs +126 -0
- package/source/components/state/log/namespace.mjs +13 -0
- package/source/components/state/log.mjs +275 -0
- package/source/components/state/namespace.mjs +13 -0
- package/source/components/state/state.mjs +131 -0
- package/source/components/state/style/log.pcss +111 -0
- package/source/components/state/style/state.pcss +113 -0
- package/source/components/state/stylesheet/log.mjs +33 -0
- package/source/components/state/stylesheet/state.mjs +33 -0
- package/source/components/style/badge.pcss +92 -0
- package/source/components/style/border.pcss +77 -0
- package/source/components/style/button.pcss +105 -0
- package/source/components/style/card.pcss +108 -0
- package/source/components/style/color.pcss +257 -0
- package/source/components/style/common.pcss +103 -0
- package/source/components/style/control.pcss +11 -0
- package/source/components/style/data-grid.pcss +43 -0
- package/source/components/style/display.pcss +42 -0
- package/source/components/style/floating-ui.pcss +33 -0
- package/source/components/style/form.pcss +5 -0
- package/source/components/style/host.pcss +15 -0
- package/source/components/style/link.pcss +63 -0
- package/source/components/style/mixin/badge.pcss +18 -0
- package/source/components/style/mixin/button.pcss +54 -0
- package/source/components/style/mixin/form.pcss +247 -0
- package/source/components/style/mixin/hover.pcss +8 -0
- package/source/components/style/mixin/media.pcss +107 -0
- package/source/components/style/mixin/property.pcss +288 -0
- package/source/components/style/mixin/skeleton.pcss +26 -0
- package/source/components/style/mixin/spinner.pcss +24 -0
- package/source/components/style/mixin/typography.pcss +52 -0
- package/source/components/style/normalize.pcss +14 -0
- package/source/components/style/popper.pcss +78 -0
- package/source/components/style/property.pcss +17 -0
- package/source/components/style/ripple.pcss +14 -0
- package/source/components/style/skeleton.pcss +28 -0
- package/source/components/style/space.pcss +47 -0
- package/source/components/style/spinner.pcss +6 -0
- package/source/components/style/table.pcss +46 -0
- package/source/components/style/theme.pcss +119 -0
- package/source/components/style/typography.pcss +131 -0
- package/source/components/stylesheet/badge.mjs +33 -0
- package/source/components/stylesheet/border.mjs +33 -0
- package/source/components/stylesheet/button.mjs +33 -0
- package/source/components/stylesheet/card.mjs +33 -0
- package/source/components/stylesheet/color.mjs +33 -0
- package/source/components/stylesheet/common.mjs +33 -0
- package/source/components/stylesheet/control.mjs +33 -0
- package/source/components/stylesheet/data-grid.mjs +33 -0
- package/source/components/stylesheet/display.mjs +33 -0
- package/source/components/stylesheet/floating-ui.mjs +33 -0
- package/source/components/stylesheet/form.mjs +33 -0
- package/source/components/stylesheet/host.mjs +33 -0
- package/source/components/stylesheet/link.mjs +33 -0
- package/source/components/stylesheet/namespace.mjs +13 -0
- package/source/components/stylesheet/normalize.mjs +33 -0
- package/source/components/stylesheet/popper.mjs +33 -0
- package/source/components/stylesheet/property.mjs +33 -0
- package/source/components/stylesheet/ripple.mjs +33 -0
- package/source/components/stylesheet/skeleton.mjs +33 -0
- package/source/components/stylesheet/space.mjs +33 -0
- package/source/components/stylesheet/spinner.mjs +33 -0
- package/source/components/stylesheet/table.mjs +33 -0
- package/source/components/stylesheet/theme.mjs +33 -0
- package/source/components/stylesheet/tree-menu.mjs +33 -0
- package/source/components/stylesheet/typography.mjs +33 -0
- package/source/components/tree-menu/namespace.mjs +13 -0
- package/source/components/tree-menu/style/tree-menu.pcss +107 -0
- package/source/components/tree-menu/stylesheet/namespace.mjs +13 -0
- package/source/components/tree-menu/stylesheet/tree-menu.mjs +33 -0
- package/source/components/tree-menu/tree-menu.mjs +660 -0
- package/source/constraints/abstract.mjs +17 -24
- package/source/constraints/abstractoperator.mjs +27 -22
- package/source/constraints/andoperator.mjs +20 -17
- package/source/constraints/invalid.mjs +17 -17
- package/source/constraints/isarray.mjs +20 -20
- package/source/constraints/isobject.mjs +20 -20
- package/source/constraints/oroperator.mjs +45 -45
- package/source/constraints/valid.mjs +17 -17
- package/source/data/buildmap.mjs +108 -103
- package/source/data/buildtree.mjs +59 -57
- package/source/data/datasource/dom.mjs +80 -84
- package/source/data/datasource/namespace.mjs +1 -1
- package/source/data/datasource/server/restapi/data-fetch-error.mjs +27 -25
- package/source/data/datasource/server/restapi/writeerror.mjs +34 -32
- package/source/data/datasource/server/restapi.mjs +176 -177
- package/source/data/datasource/server/webconnect.mjs +150 -156
- package/source/data/datasource/server.mjs +58 -59
- package/source/data/datasource/storage/localstorage.mjs +25 -24
- package/source/data/datasource/storage/sessionstorage.mjs +28 -25
- package/source/data/datasource/storage.mjs +74 -73
- package/source/data/datasource.mjs +176 -167
- package/source/data/diff.mjs +98 -97
- package/source/data/extend.mjs +42 -42
- package/source/data/pathfinder.mjs +301 -288
- package/source/data/pipe.mjs +36 -36
- package/source/data/transformer.mjs +742 -726
- package/source/dom/assembler.mjs +44 -44
- package/source/dom/attributes.mjs +142 -122
- package/source/dom/constants.mjs +62 -58
- package/source/dom/customcontrol.mjs +299 -299
- package/source/dom/customelement.mjs +843 -806
- package/source/dom/dimension.mjs +56 -46
- package/source/dom/events.mjs +74 -69
- package/source/dom/focusmanager.mjs +175 -175
- package/source/dom/locale.mjs +28 -28
- package/source/dom/ready.mjs +13 -13
- package/source/dom/resource/data.mjs +117 -111
- package/source/dom/resource/link/stylesheet.mjs +16 -16
- package/source/dom/resource/link.mjs +94 -96
- package/source/dom/resource/script.mjs +72 -74
- package/source/dom/resource.mjs +174 -172
- package/source/dom/resourcemanager.mjs +152 -156
- package/source/dom/slotted.mjs +78 -80
- package/source/dom/template.mjs +126 -112
- package/source/dom/theme.mjs +35 -35
- package/source/dom/updater.mjs +673 -651
- package/source/dom/util/extract-keys.mjs +34 -22
- package/source/dom/util/init-options-from-attributes.mjs +46 -38
- package/source/dom/util/namespace.mjs +13 -0
- package/source/dom/util/set-option-from-attribute.mjs +35 -29
- package/source/dom/util.mjs +112 -81
- package/source/dom/worker/factory.mjs +83 -83
- package/source/i18n/formatter.mjs +75 -73
- package/source/i18n/locale.mjs +146 -144
- package/source/i18n/provider.mjs +70 -64
- package/source/i18n/providers/embed.mjs +136 -127
- package/source/i18n/providers/fetch.mjs +84 -76
- package/source/i18n/translations.mjs +205 -195
- package/source/logging/handler/console.mjs +36 -36
- package/source/logging/handler.mjs +140 -140
- package/source/logging/logentry.mjs +25 -25
- package/source/logging/logger.mjs +177 -175
- package/source/math/random.mjs +63 -59
- package/source/monster.mjs +223 -103
- package/source/net/webconnect/message.mjs +31 -31
- package/source/net/webconnect.mjs +278 -271
- package/source/text/bracketed-key-value-hash.mjs +182 -179
- package/source/text/formatter.mjs +235 -210
- package/source/text/generate-range-comparison-expression.mjs +56 -34
- package/source/text/namespace.mjs +1 -1
- package/source/types/base.mjs +69 -61
- package/source/types/basewithoptions.mjs +46 -46
- package/source/types/binary.mjs +20 -20
- package/source/types/dataurl.mjs +96 -90
- package/source/types/global.mjs +45 -39
- package/source/types/id.mjs +25 -25
- package/source/types/internal.mjs +115 -114
- package/source/types/is.mjs +56 -40
- package/source/types/mediatype.mjs +119 -119
- package/source/types/namespace.mjs +1 -1
- package/source/types/node.mjs +160 -150
- package/source/types/nodelist.mjs +94 -96
- package/source/types/noderecursiveiterator.mjs +50 -50
- package/source/types/observablequeue.mjs +73 -73
- package/source/types/observer.mjs +104 -104
- package/source/types/observerlist.mjs +66 -66
- package/source/types/proxyobserver.mjs +210 -210
- package/source/types/queue.mjs +63 -63
- package/source/types/randomid.mjs +13 -13
- package/source/types/regex.mjs +3 -1
- package/source/types/stack.mjs +64 -64
- package/source/types/tokenlist.mjs +206 -205
- package/source/types/typeof.mjs +12 -10
- package/source/types/uniquequeue.mjs +48 -48
- package/source/types/uuid.mjs +32 -32
- package/source/types/validate.mjs +67 -67
- package/source/types/version.mjs +115 -105
- package/source/util/clone.mjs +103 -91
- package/source/util/comparator.mjs +97 -97
- package/source/util/deadmansswitch.mjs +40 -44
- package/source/util/freeze.mjs +10 -9
- package/source/util/namespace.mjs +1 -1
- package/source/util/processing.mjs +104 -105
- package/source/util/runtime.mjs +56 -44
- package/source/util/trimspaces.mjs +24 -24
- package/test/cases/components/form/button.mjs +122 -0
- package/test/cases/components/form/confirm-button.mjs +127 -0
- package/test/cases/components/form/form.mjs +317 -0
- package/test/cases/components/form/reload.mjs +188 -0
- package/test/cases/components/form/select.mjs +229 -0
- package/test/cases/components/form/state-button.mjs +130 -0
- package/test/cases/components/form/tabs.mjs +98 -0
- package/test/cases/components/form/template.mjs +189 -0
- package/test/cases/components/form/tree-select.mjs +216 -0
- package/test/cases/components/host/details.mjs +68 -0
- package/test/cases/components/host/host.mjs +70 -0
- package/test/cases/components/host/overlay.mjs +60 -0
- package/test/cases/components/host/util.mjs +79 -0
- package/test/cases/components/notify/message.mjs +39 -0
- package/test/cases/components/notify/notify.mjs +89 -0
- package/test/cases/dom/customcontrol.mjs +5 -4
- package/test/cases/math/random.mjs +0 -1
- package/test/cases/monster.mjs +1 -1
- package/test/cases/net/webconnect/message.mjs +0 -1
- package/test/cases/types/node.mjs +1 -1
- package/test/util/chai-dom.mjs +2 -2
- package/test/util/intersection-mock.mjs +69 -0
- package/test/util/jsdom.mjs +41 -25
- package/test/util/localstorage.mjs +1 -0
- package/test/util/resize-observer.mjs +29 -0
- package/test/util/websocket.mjs +4 -1
- package/test/web/import.js +16 -1
- package/test/web/test.html +28 -5
- package/test/web/tests.js +30398 -17879
package/CHANGELOG.md
CHANGED
@@ -1,4 +1,20 @@
|
|
1
1
|
|
2
|
+
## [3.52.0] - 2023-11-01
|
3
|
+
|
4
|
+
### Add Features
|
5
|
+
|
6
|
+
- integrate components, test, example and code [#127](https://gitlab.schukai.com/oss/libraries/javascript/monster/issues/127)
|
7
|
+
- integrate components in monster [#127](https://gitlab.schukai.com/oss/libraries/javascript/monster/issues/127)
|
8
|
+
### Changes
|
9
|
+
|
10
|
+
- documentation
|
11
|
+
- update documentation
|
12
|
+
- add aws doc update to tasks [#126](https://gitlab.schukai.com/oss/libraries/javascript/monster/issues/126)
|
13
|
+
- code tidy and update web test
|
14
|
+
- code lint
|
15
|
+
- lint and format
|
16
|
+
- code tidy
|
17
|
+
|
2
18
|
## [3.51.5] - 2023-11-01
|
3
19
|
|
4
20
|
### Bug Fixes
|
@@ -6,6 +22,7 @@
|
|
6
22
|
- release process
|
7
23
|
### Changes
|
8
24
|
|
25
|
+
- release and publish to npm new version 3.51.5
|
9
26
|
- restore devDependencies
|
10
27
|
- update release process
|
11
28
|
- conversion of the repos to nix packagemanger [#125](https://gitlab.schukai.com/oss/libraries/javascript/monster/issues/125)
|
package/README.md
CHANGED
@@ -1,18 +1,21 @@
|
|
1
1
|
# Monster
|
2
2
|
|
3
|
-
Monster is
|
4
|
-
|
3
|
+
Monster is an ideal choice for building visually appealing and high-performance web interfaces
|
4
|
+
and websites using modern JavaScript web development techniques.
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
Leveraging cutting-edge JavaScript features such as classes, WeakRef, WeakMaps, proxies,
|
7
|
+
and the MutationObserver interface, Monster offers a blend of tried-and-true methods and
|
8
|
+
innovative web components.
|
8
9
|
|
9
|
-
|
10
|
+
Designed for seamless integration, Monster complements your existing web projects
|
11
|
+
without dominating the entire architecture.
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
|
13
|
+
Unlike solutions that introduce a whole new layer of abstraction and proprietary
|
14
|
+
languages, Monster focuses on enhancing the native capabilities of HTML, CSS, and
|
15
|
+
JavaScript for web development.
|
14
16
|
|
15
|
-
|
17
|
+
With a design objective to optimize performance and achieve stellar outcomes,
|
18
|
+
Monster aims to accomplish this using minimal JavaScript code.
|
16
19
|
|
17
20
|
Monster was built with ES6 modules and uses [import](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/import)
|
18
21
|
and [export](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export).
|
@@ -21,7 +24,7 @@ For some functions, you need additional [polyfills](#polyfill).
|
|
21
24
|
|
22
25
|
## Documentation
|
23
26
|
|
24
|
-
To check out docs and examples, visit [monsterjs.org/en/doc/monster/](https://monsterjs.org/en/
|
27
|
+
To check out docs and examples, visit [monsterjs.org/en/doc/monster/](https://monsterjs.org/en/api/).
|
25
28
|
|
26
29
|
## Installation
|
27
30
|
|
@@ -73,7 +76,7 @@ We do try to work around some browser bugs, but on the whole we don't use polyfi
|
|
73
76
|
However, many functions can be mapped via [polyfill.io](https://polyfill.io/) and thus the compatibility can be increased.
|
74
77
|
|
75
78
|
```html
|
76
|
-
<script id="polyfill" src="https://polyfill.io/v3/polyfill.min.js?features=Array.from,Array.isArray,Array.prototype.entries,Array.prototype.fill,Array.prototype.filter,Array.prototype.forEach,Array.prototype.includes,Array.prototype.indexOf,Array.prototype.keys,Array.prototype.lastIndexOf,Array.prototype.map,Array.prototype.reduce,Array.prototype.sort,ArrayBuffer,atob,Blob,CustomEvent,DataView,document,Document,DocumentFragment,Element,Event,fetch,globalThis,HTMLDocument,HTMLTemplateElement,Intl,JSON,Map,Math.log2,MutationObserver,Number.isInteger,Object.assign,Object.defineProperty,Object.entries,Object.freeze,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.keys,Promise,Reflect,Reflect.defineProperty,Reflect.get,Reflect.getOwnPropertyDescriptor,Reflect.setPrototypeOf,Set,String.prototype.endsWith,String.prototype.includes,String.prototype.matchAll,String.prototype.padStart,String.prototype.startsWith,String.prototype.trim,Symbol,Symbol.for,Symbol.hasInstance,Symbol.iterator,Uint16Array,Uint8Array,URL,WeakMap,WeakSet"
|
79
|
+
<script id="polyfill" src="https://polyfill.io/v3/polyfill.min.js?features=Array.from,Array.isArray,Array.prototype.entries,Array.prototype.every,Array.prototype.fill,Array.prototype.filter,Array.prototype.find,Array.prototype.forEach,Array.prototype.includes,Array.prototype.indexOf,Array.prototype.keys,Array.prototype.lastIndexOf,Array.prototype.map,Array.prototype.reduce,Array.prototype.some,Array.prototype.sort,Array.prototype.values,ArrayBuffer,atob,Blob,console,CustomEvent,DataView,Date.prototype.toISOString,document,Document,DocumentFragment,Element,Event,fetch,Function.prototype.bind,getComputedStyle,globalThis,HTMLDocument,HTMLTemplateElement,IntersectionObserver,Intl,JSON,Map,Math.log2,MutationObserver,Number.isFinite,Number.isInteger,Object.assign,Object.defineProperty,Object.entries,Object.freeze,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.keys,Promise,Reflect,Reflect.defineProperty,Reflect.get,Reflect.getOwnPropertyDescriptor,Reflect.setPrototypeOf,requestAnimationFrame,ResizeObserver,Set,String.prototype.endsWith,String.prototype.includes,String.prototype.matchAll,String.prototype.padStart,String.prototype.startsWith,String.prototype.trim,Symbol,Symbol.for,Symbol.hasInstance,Symbol.iterator,Uint16Array,Uint8Array,URL,WeakMap,WeakSet"
|
77
80
|
crossorigin="anonymous"
|
78
81
|
referrerpolicy="no-referrer"></script>
|
79
82
|
```
|
@@ -99,4 +102,4 @@ You can also purchase a commercial license.
|
|
99
102
|
## Changelog
|
100
103
|
|
101
104
|
Detailed changes for each release are documented in
|
102
|
-
the [CHANGELOG](https://gitlab.schukai.com/oss/libraries/javascript/monster/-/blob/master/application/CHANGELOG).
|
105
|
+
the [CHANGELOG](https://gitlab.schukai.com/oss/libraries/javascript/monster/-/blob/master/application/CHANGELOG.md).
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import {Button} from '@schukai/component-form/source/button.js';
|
2
|
+
|
3
|
+
const button = document.createElement('monster-button');
|
4
|
+
// set label
|
5
|
+
button.setOption('labels.button', 'Click')
|
6
|
+
// add action for click
|
7
|
+
button.setOption('actions.click', function (e) {
|
8
|
+
console.log(e);
|
9
|
+
})
|
10
|
+
document.body.appendChild(button)
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import {Select} from '@schukai/component-form/source/select.js';
|
2
|
+
|
3
|
+
const select = document.createElement('monster-select');
|
4
|
+
select.setOption('mapping.labelTemplate', '${name} (${alpha-2})')
|
5
|
+
select.setOption('mapping.valueTemplate', '${country-code}')
|
6
|
+
select.importOptions([
|
7
|
+
{
|
8
|
+
"name": "United Kingdom",
|
9
|
+
"alpha-2": "GB",
|
10
|
+
"country-code": "826",
|
11
|
+
},
|
12
|
+
{
|
13
|
+
"name": "Sweden",
|
14
|
+
"alpha-2": "SE",
|
15
|
+
"country-code": "752",
|
16
|
+
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"name": "Germany",
|
20
|
+
"alpha-2": "DE",
|
21
|
+
"country-code": "276",
|
22
|
+
}
|
23
|
+
]);
|
24
|
+
|
25
|
+
document.body.appendChild(select);
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import {TreeSelect} from '@schukai/component-form/source/tree-select.mjs';
|
2
|
+
|
3
|
+
const treeSelect = document.createElement('monster-tree-select');
|
4
|
+
treeSelect.setOption('mapping.valueTemplate', '${name} (${alpha-2})')
|
5
|
+
treeSelect.setOption('mapping.labelTemplate', '${country-code}')
|
6
|
+
treeSelect.importOptions([
|
7
|
+
{
|
8
|
+
"name": "United Kingdom",
|
9
|
+
"alpha-2": "GB",
|
10
|
+
"country-code": "826",
|
11
|
+
"parent": undefined
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"name": "Sweden",
|
15
|
+
"alpha-2": "SE",
|
16
|
+
"country-code": "752",
|
17
|
+
"parent": undefined
|
18
|
+
},
|
19
|
+
{
|
20
|
+
"name": "Germany",
|
21
|
+
"alpha-2": "DE",
|
22
|
+
"country-code": "276",
|
23
|
+
"parent": undefined
|
24
|
+
}
|
25
|
+
]);
|
26
|
+
|
27
|
+
document.body.appendChild(treeSelect);
|
File without changes
|
File without changes
|
File without changes
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@schukai/monster",
|
3
|
-
"version": "3.
|
3
|
+
"version": "3.52.0",
|
4
4
|
"description": "Monster is a simple library for creating fast, robust and lightweight websites.",
|
5
5
|
"keywords": [
|
6
6
|
"framework",
|
@@ -38,5 +38,9 @@
|
|
38
38
|
"url": "https://gitlab.schukai.com/oss/libraries/javascript/monster.git"
|
39
39
|
},
|
40
40
|
"author": "schukai GmbH",
|
41
|
-
"license": "AGPL 3.0"
|
41
|
+
"license": "AGPL 3.0",
|
42
|
+
"dependencies": {
|
43
|
+
"@floating-ui/dom": "^1.5.3",
|
44
|
+
"@popperjs/core": "^2.11.8"
|
45
|
+
}
|
42
46
|
}
|
@@ -0,0 +1,132 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright schukai GmbH and contributors 2022. All Rights Reserved.
|
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
|
+
|
8
|
+
import { ATTRIBUTE_PREFIX } from "../dom/constants.mjs";
|
9
|
+
|
10
|
+
/**
|
11
|
+
* `data-monster-intend`
|
12
|
+
*
|
13
|
+
* @memberOf Monster.Components
|
14
|
+
* @since 1.8.0
|
15
|
+
* @type {string}
|
16
|
+
*/
|
17
|
+
const ATTRIBUTE_INTEND = ATTRIBUTE_PREFIX + "intend";
|
18
|
+
|
19
|
+
export { ATTRIBUTE_INTEND };
|
20
|
+
|
21
|
+
/**
|
22
|
+
* @memberOf Monster.Components
|
23
|
+
* @since 1.0.0
|
24
|
+
* @type {string}
|
25
|
+
*/
|
26
|
+
const STYLE_DISPLAY_MODE_BLOCK = "block";
|
27
|
+
|
28
|
+
/**
|
29
|
+
* This attribute `data-monster-datasource` can be used to pass a datasource.
|
30
|
+
*
|
31
|
+
* @memberOf Monster.Components
|
32
|
+
* @type {string}
|
33
|
+
*/
|
34
|
+
const ATTRIBUTE_DATASOURCE = `${ATTRIBUTE_PREFIX}datasource`;
|
35
|
+
|
36
|
+
/**
|
37
|
+
* @memberOf Monster.Components
|
38
|
+
* @type {string}
|
39
|
+
*/
|
40
|
+
const ATTRIBUTE_DATASOURCE_SELECTOR = `${ATTRIBUTE_DATASOURCE}-selector`;
|
41
|
+
|
42
|
+
/**
|
43
|
+
* @memberOf Monster.Components
|
44
|
+
* @type {string}
|
45
|
+
*/
|
46
|
+
const ATTRIBUTE_DATATABLE_GRID_TEMPLATE = `${ATTRIBUTE_PREFIX}grid-template`;
|
47
|
+
|
48
|
+
/**
|
49
|
+
* @memberOf Monster.Components
|
50
|
+
* @type {string}
|
51
|
+
*/
|
52
|
+
const ATTRIBUTE_DATATABLE_HEAD = `${ATTRIBUTE_PREFIX}head`;
|
53
|
+
|
54
|
+
/**
|
55
|
+
* @memberOf Monster.Components
|
56
|
+
* @type {string}
|
57
|
+
*/
|
58
|
+
const ATTRIBUTE_DATATABLE_ALIGN = `${ATTRIBUTE_PREFIX}align`;
|
59
|
+
|
60
|
+
/**
|
61
|
+
* @memberOf Monster.Components
|
62
|
+
* @type {string}
|
63
|
+
*/
|
64
|
+
const ATTRIBUTE_DATATABLE_SORTABLE = `${ATTRIBUTE_PREFIX}sortable`;
|
65
|
+
|
66
|
+
/**
|
67
|
+
* @memberOf Monster.Components
|
68
|
+
* @type {string}
|
69
|
+
*/
|
70
|
+
const ATTRIBUTE_DATATABLE_INDEX = `${ATTRIBUTE_PREFIX}index`;
|
71
|
+
|
72
|
+
/**
|
73
|
+
* @memberOf Monster.Components
|
74
|
+
* @type {string}
|
75
|
+
*/
|
76
|
+
const ATTRIBUTE_DATATABLE_MODE = `${ATTRIBUTE_PREFIX}mode`;
|
77
|
+
|
78
|
+
/**
|
79
|
+
* @memberOf Monster.Components
|
80
|
+
* @type {string}
|
81
|
+
*/
|
82
|
+
const ATTRIBUTE_DATATABLE_RESPONSIVE_BREAKPOINT = `${ATTRIBUTE_PREFIX}responsive-breakpoint`;
|
83
|
+
|
84
|
+
/**
|
85
|
+
* This attribute `data-monster-datasource-arguments` can be used to pass arguments.
|
86
|
+
*
|
87
|
+
* @memberOf Monster.Components
|
88
|
+
* @type {string}
|
89
|
+
*/
|
90
|
+
const ATTRIBUTE_DATASOURCE_ARGUMENTS = `${ATTRIBUTE_DATASOURCE}-arguments`;
|
91
|
+
|
92
|
+
/**
|
93
|
+
* Column is not hideable and visible
|
94
|
+
*
|
95
|
+
* @private
|
96
|
+
* @type {string}
|
97
|
+
*/
|
98
|
+
const ATTRIBUTE_DATATABLE_MODE_FIXED = "fixed";
|
99
|
+
|
100
|
+
/**
|
101
|
+
* Column is hidden
|
102
|
+
*
|
103
|
+
* @private
|
104
|
+
* @type {string}
|
105
|
+
*/
|
106
|
+
const ATTRIBUTE_DATATABLE_MODE_HIDDEN = "hidden";
|
107
|
+
|
108
|
+
/**
|
109
|
+
* Column is visible
|
110
|
+
*
|
111
|
+
* @private
|
112
|
+
* @memberOf Monster.Components
|
113
|
+
* @type {string}
|
114
|
+
*/
|
115
|
+
const ATTRIBUTE_DATATABLE_MODE_VISIBLE = "visible";
|
116
|
+
|
117
|
+
export {
|
118
|
+
ATTRIBUTE_DATASOURCE,
|
119
|
+
ATTRIBUTE_DATASOURCE_SELECTOR,
|
120
|
+
ATTRIBUTE_DATASOURCE_ARGUMENTS,
|
121
|
+
ATTRIBUTE_DATATABLE_GRID_TEMPLATE,
|
122
|
+
ATTRIBUTE_DATATABLE_HEAD,
|
123
|
+
ATTRIBUTE_DATATABLE_SORTABLE,
|
124
|
+
ATTRIBUTE_DATATABLE_MODE,
|
125
|
+
ATTRIBUTE_DATATABLE_INDEX,
|
126
|
+
ATTRIBUTE_DATATABLE_ALIGN,
|
127
|
+
ATTRIBUTE_DATATABLE_MODE_FIXED,
|
128
|
+
ATTRIBUTE_DATATABLE_RESPONSIVE_BREAKPOINT,
|
129
|
+
ATTRIBUTE_DATATABLE_MODE_VISIBLE,
|
130
|
+
ATTRIBUTE_DATATABLE_MODE_HIDDEN,
|
131
|
+
STYLE_DISPLAY_MODE_BLOCK,
|
132
|
+
};
|
@@ -0,0 +1,310 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright 2023 schukai GmbH
|
3
|
+
* SPDX-License-Identifier: AGPL-3.0
|
4
|
+
*/
|
5
|
+
|
6
|
+
import { instanceSymbol } from "../../constants.mjs";
|
7
|
+
import {
|
8
|
+
assembleMethodSymbol,
|
9
|
+
CustomElement,
|
10
|
+
registerCustomElement,
|
11
|
+
} from "../../dom/customelement.mjs";
|
12
|
+
import { findTargetElementFromEvent } from "../../dom/events.mjs";
|
13
|
+
import { clone } from "../../util/clone.mjs";
|
14
|
+
import { ColumnBarStyleSheet } from "./stylesheet/column-bar.mjs";
|
15
|
+
import { createPopper } from "@popperjs/core";
|
16
|
+
|
17
|
+
export { ColumnBar };
|
18
|
+
|
19
|
+
/**
|
20
|
+
* @private
|
21
|
+
* @type {symbol}
|
22
|
+
*/
|
23
|
+
const settingsButtonElementSymbol = Symbol("settingButtonElement");
|
24
|
+
|
25
|
+
/**
|
26
|
+
* @private
|
27
|
+
* @type {symbol}
|
28
|
+
*/
|
29
|
+
const settingsButtonEventHandlerSymbol = Symbol("settingsButtonEventHandler");
|
30
|
+
|
31
|
+
/**
|
32
|
+
* @private
|
33
|
+
* @type {symbol}
|
34
|
+
*/
|
35
|
+
const settingsLayerElementSymbol = Symbol("settingsLayerElement");
|
36
|
+
|
37
|
+
/**
|
38
|
+
* @private
|
39
|
+
* @type {symbol}
|
40
|
+
*/
|
41
|
+
const dotsContainerElementSymbol = Symbol("dotsContainerElement");
|
42
|
+
|
43
|
+
/**
|
44
|
+
* @private
|
45
|
+
* @type {symbol}
|
46
|
+
*/
|
47
|
+
const popperInstanceSymbol = Symbol("popperInstance");
|
48
|
+
|
49
|
+
/**
|
50
|
+
* The ColumnBar component is used to show and configure the columns of a datatable.
|
51
|
+
*
|
52
|
+
* <img src="./images/column-bar.png">
|
53
|
+
*
|
54
|
+
* Dependencies: the system uses functions of the [monsterjs](https://monsterjs.org/) library
|
55
|
+
*
|
56
|
+
* You can create this control either by specifying the HTML tag <monster-column-bar />` directly in the HTML or using
|
57
|
+
* Javascript via the `document.createElement('monster-column-bar');` method.
|
58
|
+
*
|
59
|
+
* ```html
|
60
|
+
* <monster-column-bar></monster-column-bar>
|
61
|
+
* ```
|
62
|
+
*
|
63
|
+
* Or you can create this CustomControl directly in Javascript:
|
64
|
+
*
|
65
|
+
* ```js
|
66
|
+
* import '@schukai/component-datatable/source/columnbar.mjs';
|
67
|
+
* document.createElement('monster-column-bar');
|
68
|
+
* ```
|
69
|
+
*
|
70
|
+
* The Body should have a class "hidden" to ensure that the styles are applied correctly.
|
71
|
+
*
|
72
|
+
* ```css
|
73
|
+
* body.hidden {
|
74
|
+
* visibility: hidden;
|
75
|
+
* }
|
76
|
+
* ```
|
77
|
+
*
|
78
|
+
* @startuml column-bar.png
|
79
|
+
* skinparam monochrome true
|
80
|
+
* skinparam shadowing false
|
81
|
+
* HTMLElement <|-- CustomElement
|
82
|
+
* CustomElement <|-- ColumnBar
|
83
|
+
* @enduml
|
84
|
+
*
|
85
|
+
* @copyright schukai GmbH
|
86
|
+
* @memberOf Monster.Components.Datatable
|
87
|
+
* @summary A data set
|
88
|
+
*/
|
89
|
+
class ColumnBar extends CustomElement {
|
90
|
+
/**
|
91
|
+
* This method is called by the `instanceof` operator.
|
92
|
+
* @returns {symbol}
|
93
|
+
*/
|
94
|
+
static get [instanceSymbol]() {
|
95
|
+
return Symbol.for("@schukai/monster/components/column-bar");
|
96
|
+
}
|
97
|
+
|
98
|
+
/**
|
99
|
+
* To set the options via the html tag the attribute `data-monster-options` must be used.
|
100
|
+
* @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
|
101
|
+
*
|
102
|
+
* The individual configuration values can be found in the table.
|
103
|
+
*
|
104
|
+
* @property {Object} templates Template definitions
|
105
|
+
* @property {string} templates.main Main template
|
106
|
+
* @property {object} datasource The datasource
|
107
|
+
* @property {boolean} autoLoad If true, the datasource is called immediately after the control is created.
|
108
|
+
*/
|
109
|
+
get defaults() {
|
110
|
+
const obj = Object.assign({}, super.defaults, {
|
111
|
+
templates: {
|
112
|
+
main: getTemplate(),
|
113
|
+
},
|
114
|
+
locale: {
|
115
|
+
settings: "Settings",
|
116
|
+
},
|
117
|
+
|
118
|
+
columns: [],
|
119
|
+
});
|
120
|
+
|
121
|
+
return obj;
|
122
|
+
}
|
123
|
+
|
124
|
+
/**
|
125
|
+
*
|
126
|
+
* @return {string}
|
127
|
+
*/
|
128
|
+
static getTag() {
|
129
|
+
return "monster-column-bar";
|
130
|
+
}
|
131
|
+
|
132
|
+
/**
|
133
|
+
*
|
134
|
+
* @return {Monster.Components.Form.Form}
|
135
|
+
*/
|
136
|
+
[assembleMethodSymbol]() {;
|
137
|
+
super[assembleMethodSymbol]();
|
138
|
+
|
139
|
+
initControlReferences.call(this);
|
140
|
+
initEventHandler.call(this);
|
141
|
+
}
|
142
|
+
|
143
|
+
/**
|
144
|
+
* @return {Array<ColumnBarStyleSheet>}
|
145
|
+
*/
|
146
|
+
static getCSSStyleSheet() {
|
147
|
+
return [ColumnBarStyleSheet];
|
148
|
+
}
|
149
|
+
}
|
150
|
+
|
151
|
+
/**
|
152
|
+
* @private
|
153
|
+
* @return {Monster.Components.Datatable.Form}
|
154
|
+
*/
|
155
|
+
function initControlReferences() {;
|
156
|
+
|
157
|
+
if (!this.shadowRoot) {
|
158
|
+
throw new Error("no shadow-root is defined");
|
159
|
+
}
|
160
|
+
|
161
|
+
this[settingsButtonElementSymbol] = this.shadowRoot.querySelector(
|
162
|
+
"[data-monster-role=settings-button]",
|
163
|
+
);
|
164
|
+
this[settingsLayerElementSymbol] = this.shadowRoot.querySelector(
|
165
|
+
"[data-monster-role=settings-layer]",
|
166
|
+
);
|
167
|
+
this[dotsContainerElementSymbol] = this.shadowRoot.querySelector(
|
168
|
+
"[data-monster-role=dots]",
|
169
|
+
);
|
170
|
+
return this;
|
171
|
+
}
|
172
|
+
|
173
|
+
/**
|
174
|
+
* @private
|
175
|
+
*/
|
176
|
+
function initEventHandler() {
|
177
|
+
const self = this;
|
178
|
+
|
179
|
+
self[popperInstanceSymbol] = createPopper(
|
180
|
+
self[settingsButtonElementSymbol],
|
181
|
+
self[settingsLayerElementSymbol],
|
182
|
+
{
|
183
|
+
placement: "auto",
|
184
|
+
|
185
|
+
modifiers: [
|
186
|
+
{
|
187
|
+
name: "offset",
|
188
|
+
options: {
|
189
|
+
offset: [10, 10],
|
190
|
+
},
|
191
|
+
},
|
192
|
+
],
|
193
|
+
},
|
194
|
+
);
|
195
|
+
|
196
|
+
self[dotsContainerElementSymbol].addEventListener("click", function (event) {
|
197
|
+
const element = findTargetElementFromEvent(
|
198
|
+
event,
|
199
|
+
"data-monster-role",
|
200
|
+
"column",
|
201
|
+
);
|
202
|
+
if (element) {
|
203
|
+
const index = element.getAttribute("data-monster-index");
|
204
|
+
event.preventDefault();
|
205
|
+
|
206
|
+
const columns = clone(self.getOption("columns"));
|
207
|
+
|
208
|
+
const column = columns.find((col) => {
|
209
|
+
return parseInt(col.index) === parseInt(index);
|
210
|
+
});
|
211
|
+
|
212
|
+
column.visible = !column.visible;
|
213
|
+
self.setOption("columns", columns);
|
214
|
+
}
|
215
|
+
});
|
216
|
+
|
217
|
+
self[settingsButtonEventHandlerSymbol] = (event) => {
|
218
|
+
const clickTarget = event.composedPath()?.[0];
|
219
|
+
if (
|
220
|
+
self[settingsLayerElementSymbol] === clickTarget ||
|
221
|
+
self[settingsLayerElementSymbol].contains(clickTarget)
|
222
|
+
) {
|
223
|
+
return;
|
224
|
+
}
|
225
|
+
self[settingsLayerElementSymbol].classList.remove("visible");
|
226
|
+
document.body.removeEventListener(
|
227
|
+
"click",
|
228
|
+
self[settingsButtonEventHandlerSymbol],
|
229
|
+
);
|
230
|
+
};
|
231
|
+
|
232
|
+
self[settingsButtonElementSymbol].addEventListener("click", function (event) {
|
233
|
+
const element = findTargetElementFromEvent(
|
234
|
+
event,
|
235
|
+
"data-monster-role",
|
236
|
+
"settings-button",
|
237
|
+
);
|
238
|
+
|
239
|
+
if (element) {
|
240
|
+
self[settingsLayerElementSymbol].classList.toggle("visible");
|
241
|
+
event.preventDefault();
|
242
|
+
|
243
|
+
if (self[settingsLayerElementSymbol].classList.contains("visible")) {
|
244
|
+
self[popperInstanceSymbol].update();
|
245
|
+
|
246
|
+
setTimeout(() => {
|
247
|
+
document.body.addEventListener(
|
248
|
+
"click",
|
249
|
+
self[settingsButtonEventHandlerSymbol],
|
250
|
+
);
|
251
|
+
}, 0);
|
252
|
+
}
|
253
|
+
}
|
254
|
+
});
|
255
|
+
|
256
|
+
self[settingsLayerElementSymbol].addEventListener("change", function (event) {
|
257
|
+
const control = event.target;
|
258
|
+
const index = control.getAttribute("data-monster-index");
|
259
|
+
|
260
|
+
const columns = clone(self.getOption("columns"));
|
261
|
+
|
262
|
+
const column = columns.find((col) => {
|
263
|
+
return parseInt(col.index) === parseInt(index);
|
264
|
+
});
|
265
|
+
|
266
|
+
column.visible = control.checked;
|
267
|
+
self.setOption("columns", columns);
|
268
|
+
});
|
269
|
+
}
|
270
|
+
|
271
|
+
/**
|
272
|
+
* @private
|
273
|
+
* @return {string}
|
274
|
+
*/
|
275
|
+
function getTemplate() {
|
276
|
+
// language=HTML
|
277
|
+
return `
|
278
|
+
<template id="column">
|
279
|
+
<div data-monster-role="column">
|
280
|
+
<label><input type="checkbox" data-monster-attributes="
|
281
|
+
data-monster-index path:column.index,
|
282
|
+
checked path:column.visible | ?:checked:"><span
|
283
|
+
data-monster-replace="path:column.name"
|
284
|
+
></span></label>
|
285
|
+
</div>
|
286
|
+
</template>
|
287
|
+
<template id="dots">
|
288
|
+
<li data-monster-insert="">
|
289
|
+
<a href="#" data-monster-role="column"
|
290
|
+
data-monster-attributes="
|
291
|
+
class path:dots.visible | ?:is-hidden:is-visible,
|
292
|
+
title path:dots.name,
|
293
|
+
data-monster-index path:dots.index">
|
294
|
+
</a>
|
295
|
+
</li>
|
296
|
+
</template>
|
297
|
+
|
298
|
+
<div data-monster-role="control" part="control" data-monster-select-this="true" data-monster-attributes="class path:columns | has-entries | ?::hidden">
|
299
|
+
<ul data-monster-insert="dots path:columns"
|
300
|
+
data-monster-role="dots"></ul>
|
301
|
+
<a href="#" data-monster-role="settings-button" data-monster-replace="path:locale.settings">Settings</a>
|
302
|
+
<div data-monster-role="settings-layer">
|
303
|
+
<div data-monster-insert="column path:columns" data-monster-role="settings-popup-list">
|
304
|
+
</div>
|
305
|
+
</div>
|
306
|
+
</div>
|
307
|
+
`;
|
308
|
+
}
|
309
|
+
|
310
|
+
registerCustomElement(ColumnBar);
|