@teipublisher/pb-components 2.26.1-next.3 → 3.0.0-next-4.1

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.
Files changed (262) hide show
  1. package/.github/workflows/docker-cypress.yml +54 -0
  2. package/.github/workflows/main.yml +6 -4
  3. package/.github/workflows/node.js.yml +56 -21
  4. package/.github/workflows/release.js.yml +19 -17
  5. package/.releaserc.json +1 -1
  6. package/CHANGELOG.md +346 -11
  7. package/Dockerfile +78 -70
  8. package/README.md +112 -4
  9. package/css/components.css +5 -5
  10. package/css/gridjs/mermaid.min.css +1 -1
  11. package/css/leaflet/Control.Geocoder.css +1 -126
  12. package/css/leaflet/images/layers.png +0 -0
  13. package/css/tify/tify.css +6 -5
  14. package/css/tom-select/tom-select.bootstrap4.min.css +1 -1
  15. package/css/tom-select/tom-select.bootstrap5.min.css +1 -1
  16. package/css/tom-select/tom-select.default.min.css +1 -1
  17. package/css/tom-select/tom-select.default.min.css.map +1 -0
  18. package/css/tom-select/tom-select.min.css +1 -1
  19. package/cypress.config.js +84 -0
  20. package/dist/api.html +1 -1
  21. package/dist/css/design-system.css +607 -0
  22. package/dist/demo/bundle-test.html +4 -3
  23. package/dist/demo/components.css +46 -1
  24. package/dist/demo/design-system.html +710 -0
  25. package/dist/demo/dts-client.html +2 -2
  26. package/dist/demo/pb-autocomplete.html +23 -11
  27. package/dist/demo/pb-autocomplete2.html +66 -55
  28. package/dist/demo/pb-autocomplete3.html +17 -8
  29. package/dist/demo/pb-blacklab-highlight.html +28 -11
  30. package/dist/demo/pb-blacklab-results.html +3 -2
  31. package/dist/demo/pb-browse-docs.html +24 -24
  32. package/dist/demo/pb-browse-docs2.html +3 -3
  33. package/dist/demo/pb-clipboard.html +32 -28
  34. package/dist/demo/pb-code-editor.html +6 -6
  35. package/dist/demo/pb-code-highlight.html +63 -63
  36. package/dist/demo/pb-codepen.html +1 -1
  37. package/dist/demo/pb-collapse.html +1 -1
  38. package/dist/demo/pb-collapse2.html +2 -2
  39. package/dist/demo/pb-combo-box.html +135 -130
  40. package/dist/demo/pb-custom-form.html +64 -55
  41. package/dist/demo/pb-dialog.html +12 -6
  42. package/dist/demo/pb-document.html +1 -1
  43. package/dist/demo/pb-download.html +68 -59
  44. package/dist/demo/pb-drawer.html +67 -46
  45. package/dist/demo/pb-drawer2.html +65 -58
  46. package/dist/demo/pb-edit-app.html +2 -2
  47. package/dist/demo/pb-edit-xml.html +1 -1
  48. package/dist/demo/pb-facsimile-2.html +26 -11
  49. package/dist/demo/pb-facsimile-3.html +25 -10
  50. package/dist/demo/pb-facsimile-dedup-test-2.html +48 -0
  51. package/dist/demo/pb-facsimile-dedup-test.html +48 -0
  52. package/dist/demo/pb-facsimile.html +4 -4
  53. package/dist/demo/pb-formula.html +1 -1
  54. package/dist/demo/pb-grid.html +22 -8
  55. package/dist/demo/pb-highlight.html +2 -2
  56. package/dist/demo/pb-i18n-simple.html +1 -0
  57. package/dist/demo/pb-i18n.html +15 -5
  58. package/dist/demo/pb-image-strip-standalone.html +2 -2
  59. package/dist/demo/pb-image-strip-view.html +2 -2
  60. package/dist/demo/pb-leaflet-map.html +3 -3
  61. package/dist/demo/pb-leaflet-map2.html +2 -2
  62. package/dist/demo/pb-leaflet-map3.html +3 -3
  63. package/dist/demo/pb-link.html +1 -1
  64. package/dist/demo/pb-load.html +2 -6
  65. package/dist/demo/pb-login.html +1 -3
  66. package/dist/demo/pb-manage-odds.html +9 -4
  67. package/dist/demo/pb-markdown.html +1 -1
  68. package/dist/demo/pb-media-query.html +2 -2
  69. package/dist/demo/pb-mei.html +2 -2
  70. package/dist/demo/pb-mei2.html +2 -2
  71. package/dist/demo/pb-message.html +2 -3
  72. package/dist/demo/pb-odd-editor.html +54 -52
  73. package/dist/demo/pb-page-header.html +27 -0
  74. package/dist/demo/pb-popover.html +1 -1
  75. package/dist/demo/pb-print-preview.html +2 -2
  76. package/dist/demo/pb-progress.html +4 -4
  77. package/dist/demo/pb-repeat.html +32 -36
  78. package/dist/demo/pb-search.html +16 -5
  79. package/dist/demo/pb-search2.html +4 -4
  80. package/dist/demo/pb-search3.html +3 -3
  81. package/dist/demo/pb-search4.html +3 -3
  82. package/dist/demo/pb-select-feature.html +4 -4
  83. package/dist/demo/pb-select-feature2.html +4 -4
  84. package/dist/demo/pb-select-feature3.html +2 -2
  85. package/dist/demo/pb-select-i18n.html +58 -53
  86. package/dist/demo/pb-select-odd.html +1 -1
  87. package/dist/demo/pb-select.html +190 -75
  88. package/dist/demo/pb-select2.html +91 -37
  89. package/dist/demo/pb-select3.html +109 -41
  90. package/dist/demo/pb-svg.html +1 -1
  91. package/dist/demo/pb-table-grid.html +26 -15
  92. package/dist/demo/pb-tabs.html +15 -7
  93. package/dist/demo/pb-tify.html +7 -7
  94. package/dist/demo/pb-timeline.html +1 -1
  95. package/dist/demo/pb-timeline2.html +1 -1
  96. package/dist/demo/pb-toggle-feature.html +26 -23
  97. package/dist/demo/pb-toggle-feature2.html +4 -4
  98. package/dist/demo/pb-toggle-feature3.html +2 -2
  99. package/dist/demo/pb-toggle-feature4.html +56 -54
  100. package/dist/demo/pb-version.html +2 -2
  101. package/dist/demo/pb-view.html +78 -40
  102. package/dist/demo/pb-view2.html +69 -46
  103. package/dist/demo/pb-view3.html +53 -48
  104. package/dist/demo/pb-view4.html +70 -49
  105. package/dist/demo/pb-zoom.html +2 -2
  106. package/dist/{es-global-bridge-d8ce175d.js → es-global-bridge-D8ZcUcx_.js} +0 -4
  107. package/dist/focus-mixin-VCsFap6b.js +768 -0
  108. package/dist/images/icons.svg +217 -0
  109. package/dist/jinn-codemirror-DETLdm08.js +1 -0
  110. package/dist/lib/openseadragon.min.js +80 -0
  111. package/dist/lib/openseadragon.min.js.map +1 -0
  112. package/dist/pb-code-editor.js +25 -20
  113. package/dist/pb-component-docs.js +414 -3225
  114. package/dist/pb-components-bundle.js +3046 -4402
  115. package/dist/pb-dialog-tklYGWfc.js +121 -0
  116. package/dist/pb-edit-app.js +208 -107
  117. package/dist/pb-elements.json +716 -249
  118. package/dist/pb-facsimile.js +46 -0
  119. package/dist/pb-i18n-C0NDma4h.js +1 -0
  120. package/dist/pb-leaflet-map.js +23 -23
  121. package/dist/pb-mei.js +152 -134
  122. package/dist/pb-mixin-DHoWQheB.js +1 -0
  123. package/dist/pb-odd-editor.js +1671 -1231
  124. package/dist/pb-tify.js +1 -27
  125. package/dist/unsafe-html-D5VGo9Oq.js +1 -0
  126. package/dist/urls-BEONu_g4.js +1 -0
  127. package/eslint.config.mjs +92 -0
  128. package/gh-pages.js +5 -3
  129. package/i18n/common/en.json +6 -0
  130. package/i18n/common/pl.json +2 -2
  131. package/images/icons.svg +217 -0
  132. package/index.html +0 -5
  133. package/lib/leaflet-src.js.map +1 -0
  134. package/lib/leaflet.markercluster-src.js.map +1 -0
  135. package/lib/openseadragon.min.js +6 -6
  136. package/package.json +56 -81
  137. package/pb-elements.json +716 -249
  138. package/rollup.config.mjs +312 -0
  139. package/src/assets/components.css +5 -5
  140. package/src/assets/design-system.css +607 -0
  141. package/src/authority/airtable.js +20 -21
  142. package/src/authority/anton.js +129 -129
  143. package/src/authority/custom.js +70 -27
  144. package/src/authority/geonames.js +38 -32
  145. package/src/authority/gnd.js +50 -42
  146. package/src/authority/kbga.js +136 -134
  147. package/src/authority/metagrid.js +44 -46
  148. package/src/authority/reconciliation.js +66 -68
  149. package/src/authority/registry.js +4 -4
  150. package/src/docs/demo-utils.js +91 -0
  151. package/src/docs/pb-component-docs.js +287 -147
  152. package/src/docs/pb-component-view.js +380 -273
  153. package/src/docs/pb-components-list.js +115 -51
  154. package/src/docs/pb-demo-snippet.js +199 -174
  155. package/src/dts-client.js +306 -303
  156. package/src/dts-select-endpoint.js +125 -85
  157. package/src/parse-date-service.js +184 -135
  158. package/src/pb-ajax.js +175 -173
  159. package/src/pb-authority-lookup.js +198 -158
  160. package/src/pb-autocomplete.js +731 -313
  161. package/src/pb-blacklab-highlight.js +266 -260
  162. package/src/pb-blacklab-results.js +230 -225
  163. package/src/pb-browse-docs.js +601 -484
  164. package/src/pb-browse.js +68 -65
  165. package/src/pb-clipboard.js +97 -76
  166. package/src/pb-code-editor.js +111 -103
  167. package/src/pb-code-highlight.js +234 -204
  168. package/src/pb-codepen.js +81 -73
  169. package/src/pb-collapse.js +265 -152
  170. package/src/pb-combo-box.js +191 -191
  171. package/src/pb-components-bundle.js +1 -7
  172. package/src/pb-components.js +2 -6
  173. package/src/pb-custom-form.js +230 -141
  174. package/src/pb-dialog.js +99 -63
  175. package/src/pb-document.js +118 -91
  176. package/src/pb-download.js +214 -198
  177. package/src/pb-drawer.js +146 -149
  178. package/src/pb-edit-app.js +471 -240
  179. package/src/pb-edit-xml.js +101 -98
  180. package/src/pb-events.js +126 -107
  181. package/src/pb-facs-link.js +130 -101
  182. package/src/pb-facsimile.js +494 -410
  183. package/src/pb-fetch.js +389 -0
  184. package/src/pb-formula.js +152 -154
  185. package/src/pb-geolocation.js +130 -132
  186. package/src/pb-grid-action.js +59 -56
  187. package/src/pb-grid.js +388 -228
  188. package/src/pb-highlight.js +142 -142
  189. package/src/pb-hotkeys.js +40 -42
  190. package/src/pb-i18n.js +115 -127
  191. package/src/pb-icon-button.js +108 -0
  192. package/src/pb-icon.js +283 -0
  193. package/src/pb-image-strip.js +85 -79
  194. package/src/pb-lang.js +142 -57
  195. package/src/pb-leaflet-map.js +551 -483
  196. package/src/pb-link.js +132 -126
  197. package/src/pb-load.js +495 -428
  198. package/src/pb-login.js +303 -248
  199. package/src/pb-manage-odds.js +384 -338
  200. package/src/pb-map-icon.js +90 -90
  201. package/src/pb-map-layer.js +86 -86
  202. package/src/pb-markdown.js +107 -110
  203. package/src/pb-media-query.js +75 -73
  204. package/src/pb-mei.js +523 -303
  205. package/src/pb-message.js +144 -98
  206. package/src/pb-mixin.js +268 -265
  207. package/src/pb-navigation.js +83 -96
  208. package/src/pb-observable.js +39 -39
  209. package/src/pb-odd-editor.js +1209 -948
  210. package/src/pb-odd-elementspec-editor.js +375 -310
  211. package/src/pb-odd-model-editor.js +1189 -941
  212. package/src/pb-odd-parameter-editor.js +269 -170
  213. package/src/pb-odd-rendition-editor.js +184 -131
  214. package/src/pb-page.js +451 -422
  215. package/src/pb-paginate.js +260 -178
  216. package/src/pb-panel.js +217 -183
  217. package/src/pb-popover-themes.js +16 -9
  218. package/src/pb-popover.js +297 -288
  219. package/src/pb-print-preview.js +128 -128
  220. package/src/pb-progress.js +52 -52
  221. package/src/pb-repeat.js +141 -108
  222. package/src/pb-restricted.js +85 -78
  223. package/src/pb-search.js +258 -230
  224. package/src/pb-select-feature.js +210 -126
  225. package/src/pb-select-odd.js +184 -118
  226. package/src/pb-select-template.js +113 -78
  227. package/src/pb-select.js +330 -229
  228. package/src/pb-split-list.js +181 -176
  229. package/src/pb-svg.js +81 -80
  230. package/src/pb-table-column.js +55 -55
  231. package/src/pb-table-grid.js +334 -205
  232. package/src/pb-tabs.js +238 -61
  233. package/src/pb-tify.js +3331 -126
  234. package/src/pb-timeline.js +394 -255
  235. package/src/pb-toggle-feature.js +196 -188
  236. package/src/pb-upload.js +201 -176
  237. package/src/pb-version.js +22 -34
  238. package/src/pb-view-annotate.js +138 -102
  239. package/src/pb-view.js +1722 -1272
  240. package/src/pb-zoom.js +144 -46
  241. package/src/search-result-service.js +256 -223
  242. package/src/seed-element.js +14 -22
  243. package/src/settings.js +4 -4
  244. package/src/theming.js +98 -91
  245. package/src/urls.js +403 -289
  246. package/src/utils.js +53 -51
  247. package/vite.config.js +86 -0
  248. package/css/pb-styles.css +0 -51
  249. package/dist/iron-form-3b8dcaa7.js +0 -210
  250. package/dist/jinn-codemirror-da0e2d1f.js +0 -1
  251. package/dist/paper-checkbox-515a5284.js +0 -1597
  252. package/dist/paper-icon-button-b1d31571.js +0 -398
  253. package/dist/paper-listbox-a3b7175c.js +0 -1265
  254. package/dist/pb-i18n-0611135a.js +0 -1
  255. package/dist/pb-mixin-b1caa22e.js +0 -158
  256. package/dist/polymer-hack.js +0 -1
  257. package/dist/vaadin-element-mixin-fe4a4883.js +0 -527
  258. package/lib/Control.Geocoder.min.js +0 -2
  259. package/lib/Control.Geocoder.min.js.map +0 -1
  260. package/src/assets/pb-styles.css +0 -51
  261. package/src/pb-light-dom.js +0 -41
  262. package/src/polymer-hack.js +0 -6
@@ -1,29 +1,29 @@
1
- import { LitElement, html } from 'lit-element';
2
- import '@polymer/paper-checkbox';
1
+ import { LitElement, html } from 'lit';
3
2
  import { pbMixin, waitOnce } from './pb-mixin.js';
4
- import { registry } from "./urls.js";
3
+ import { registry } from './urls.js';
4
+ import { themableMixin } from './theming.js';
5
5
 
6
6
  /**
7
7
  * @param {{ selector: any; command: string; state: boolean; }} newConfig
8
8
  * @param {any[]} configs
9
9
  */
10
- export function addSelector(newConfig, configs) {
11
- const idx = configs.findIndex((item) => item.selector === newConfig.selector);
12
- if (idx > -1) {
13
- configs[idx] = newConfig;
14
- } else {
15
- configs.push(newConfig);
16
- }
10
+ export function addSelector(newConfig, configs) {
11
+ const idx = configs.findIndex(item => item.selector === newConfig.selector);
12
+ if (idx > -1) {
13
+ configs[idx] = newConfig;
14
+ } else {
15
+ configs.push(newConfig);
16
+ }
17
17
  }
18
18
 
19
19
  /**
20
20
  * Enable or disable a particular display feature by setting a predefined or custom parameter.
21
21
  * Toggling display features can be done server-side or client-side.
22
- *
22
+ *
23
23
  * It is important that `pb-toggle-feature` emits and subscribes to the same channel as the target `pb-view`.
24
- *
24
+ *
25
25
  * # Server side toggling
26
- *
26
+ *
27
27
  * You may set the following view parameters which correspond to the properties supported by `pb-view`:
28
28
  *
29
29
  * | Parameter | Description |
@@ -64,22 +64,22 @@ import { registry } from "./urls.js";
64
64
  * ```
65
65
  *
66
66
  * # Client side toggling
67
- *
67
+ *
68
68
  * The component can also be used to toggle features client-side, i.e. without requiring a server-roundtrip.
69
69
  * To enable this, the `selector` property should be set to a CSS3 selector targetting the HTML elements
70
70
  * to toggle. In `on` state, the selected elements will be assigned a class `.toggled`.
71
- *
71
+ *
72
72
  * ```html
73
73
  * <pb-toggle-feature name="normalized" selector=".choice,.choice-alternate,br">Normalized View</pb-toggle-feature>
74
74
  * ```
75
- *
75
+ *
76
76
  * Note that the name attribute is still required: it is used to determine if the feature is in on or off state by
77
77
  * looking at request parameters.
78
- *
78
+ *
79
79
  * Instead of toggling the class, you can also completely disable the elements selected - provided that they are
80
80
  * publisher components implementing the corresponding `command` method of `pb-mixin`. To disable elements instead of
81
81
  * toggling, set the `action` property to *disable*.
82
- *
82
+ *
83
83
  * ```html
84
84
  * <pb-toggle-feature name="plain" selector=".tei-foreign,pb-highlight,pb-popover" action="disable" default="off">Plain Reading View</pb-toggle-feature>
85
85
  * ```
@@ -88,193 +88,201 @@ import { registry } from "./urls.js";
88
88
  * @fires pb-global-toggle - Fired if property `global` is set. Will be caught by the surrounding `pb-page`
89
89
  * @fires pb-update - When received, sets the features passed from the event
90
90
  */
91
- export class PbToggleFeature extends pbMixin(LitElement) {
91
+ export class PbToggleFeature extends themableMixin(pbMixin(LitElement)) {
92
+ static get properties() {
93
+ return {
94
+ ...super.properties,
95
+ /**
96
+ * The name of the feature (required). This will correspond to the name of the custom parameter
97
+ * passed to the ODD.
98
+ */
99
+ name: {
100
+ type: String,
101
+ },
102
+ /**
103
+ * (optional) CSS selector: selects the elements to toggle client side (sets or unsets a
104
+ * CSS class `.toggled`). Setting this property will not trigger a reload as everything is
105
+ * handled by javascript.
106
+ */
107
+ selector: {
108
+ type: String,
109
+ },
110
+ /**
111
+ * In combination with a selector specifies the action to be taken, currently one of
112
+ * `toggle` (default) or `disable`.
113
+ */
114
+ action: {
115
+ type: String,
116
+ },
117
+ /**
118
+ * Value to set the parameter to when the feature is enabled.
119
+ */
120
+ on: {
121
+ type: String,
122
+ },
123
+ /**
124
+ * Value to set the parameter to when the feature is disabled.
125
+ */
126
+ off: {
127
+ type: String,
128
+ },
129
+ /**
130
+ * The default setting: either 'on' or 'off'
131
+ */
132
+ default: {
133
+ type: String,
134
+ },
135
+ /**
136
+ * Additional properties to set on the pb-view if toggle is in 'on' state.
137
+ * Possible properties are 'view', 'odd' and 'columnSeparator'.
138
+ */
139
+ propertiesOn: {
140
+ type: Object,
141
+ attribute: 'properties-on',
142
+ },
143
+ /**
144
+ * Additional properties to set on the pb-view if toggle is in 'off' state.
145
+ * Possible properties are 'view', 'odd' and 'columnSeparator'.
146
+ */
147
+ propertiesOff: {
148
+ type: Object,
149
+ attribute: 'properties-off',
150
+ },
151
+ checked: {
152
+ type: Boolean,
153
+ },
154
+ /**
155
+ * If set to false (the default), `pb-toggle-feature` will pass its properties to the
156
+ * connected view before this loads content for the first time. If true,
157
+ * `pb-toggle-feature` will initialize its state depending on the setting of the view.
158
+ * This only makes sense for the special properties 'view' and 'odd' though.
159
+ */
160
+ initFromView: {
161
+ type: Boolean,
162
+ attribute: 'init-from-view',
163
+ },
164
+ /**
165
+ * If set, toggle the state of elements which reside
166
+ * in the surrounding HTML context below `pb-page`
167
+ * (means: elements which are not inside a `pb-view` or `pb-load`).
168
+ */
169
+ global: {
170
+ type: Boolean,
171
+ },
172
+ };
173
+ }
92
174
 
93
- static get properties() {
94
- return {
95
- ...super.properties,
96
- /**
97
- * The name of the feature (required). This will correspond to the name of the custom parameter
98
- * passed to the ODD.
99
- */
100
- name: {
101
- type: String
102
- },
103
- /**
104
- * (optional) CSS selector: selects the elements to toggle client side (sets or unsets a
105
- * CSS class `.toggled`). Setting this property will not trigger a reload as everything is
106
- * handled by javascript.
107
- */
108
- selector: {
109
- type: String
110
- },
111
- /**
112
- * In combination with a selector specifies the action to be taken, currently one of
113
- * `toggle` (default) or `disable`.
114
- */
115
- action: {
116
- type: String
117
- },
118
- /**
119
- * Value to set the parameter to when the feature is enabled.
120
- */
121
- on: {
122
- type: String
123
- },
124
- /**
125
- * Value to set the parameter to when the feature is disabled.
126
- */
127
- off: {
128
- type: String
129
- },
130
- /**
131
- * The default setting: either 'on' or 'off'
132
- */
133
- default: {
134
- type: String
135
- },
136
- /**
137
- * Additional properties to set on the pb-view if toggle is in 'on' state.
138
- * Possible properties are 'view', 'odd' and 'columnSeparator'.
139
- */
140
- propertiesOn: {
141
- type: Object,
142
- attribute: 'properties-on'
143
- },
144
- /**
145
- * Additional properties to set on the pb-view if toggle is in 'off' state.
146
- * Possible properties are 'view', 'odd' and 'columnSeparator'.
147
- */
148
- propertiesOff: {
149
- type: Object,
150
- attribute: 'properties-off'
151
- },
152
- checked: {
153
- type: Boolean
154
- },
155
- /**
156
- * If set to false (the default), `pb-toggle-feature` will pass its properties to the
157
- * connected view before this loads content for the first time. If true,
158
- * `pb-toggle-feature` will initialize its state depending on the setting of the view.
159
- * This only makes sense for the special properties 'view' and 'odd' though.
160
- */
161
- initFromView: {
162
- type: Boolean,
163
- attribute: 'init-from-view'
164
- },
165
- /**
166
- * If set, toggle the state of elements which reside
167
- * in the surrounding HTML context below `pb-page`
168
- * (means: elements which are not inside a `pb-view` or `pb-load`).
169
- */
170
- global: {
171
- type: Boolean
172
- }
173
- };
174
- }
175
-
176
- constructor() {
177
- super();
178
- this.default = 'on';
179
- this.on = 'on';
180
- this.off = 'off';
181
- this.action = 'toggle';
182
- this.propertiesOn = {};
183
- this.propertiesOff = {};
184
- this.initFromView = false;
185
- this.global = false;
186
- }
175
+ constructor() {
176
+ super();
177
+ this.default = 'on';
178
+ this.on = 'on';
179
+ this.off = 'off';
180
+ this.action = 'toggle';
181
+ this.propertiesOn = {};
182
+ this.propertiesOff = {};
183
+ this.initFromView = false;
184
+ this.global = false;
185
+ }
187
186
 
188
- render() {
189
- return html`
190
- <paper-checkbox id="checkbox" @change="${this._changed}" .checked="${this.checked}" .disabled="${this.disabled}"><slot></slot></paper-checkbox>
187
+ render() {
188
+ return html`
189
+ <input type="checkbox" id="checkbox" @change="${this._changed}" .checked="${this.checked}" .disabled="${this.disabled}"></input>
190
+ <label for="checkbox"><slot></slot></label>
191
191
  `;
192
- }
192
+ }
193
193
 
194
- connectedCallback() {
195
- super.connectedCallback();
194
+ connectedCallback() {
195
+ super.connectedCallback();
196
196
 
197
- registry.subscribe(this, (state) => {
198
- const param = state[this.name];
199
- this._setChecked(param);
200
- });
197
+ registry.subscribe(this, state => {
198
+ const param = state[this.name];
199
+ this._setChecked(param);
200
+ });
201
201
 
202
- const param = registry.state[this.name];
203
- this._setChecked(param);
204
-
205
- const newState = {};
206
- newState[this.name] = this.checked ? this.on : this.off;
207
- registry.replace(this, newState);
208
- this._saveState();
202
+ const param = registry.state[this.name];
203
+ this._setChecked(param);
209
204
 
210
- this.signalReady();
205
+ const newState = {};
206
+ newState[this.name] = this.checked ? this.on : this.off;
207
+ registry.replace(this, newState);
208
+ this._saveState();
211
209
 
212
- waitOnce('pb-page-ready', () => {
213
- if (this.global) {
214
- this.dispatchEvent(new CustomEvent('pb-global-toggle', { detail: {
215
- selector: this.selector,
216
- command: this.action,
217
- state: this.checked
218
- }, bubbles: true, composed: true }));
219
- } else if (this.selector) {
220
- this.emitTo('pb-toggle', {refresh: false});
221
- }
222
- });
223
- }
210
+ this.signalReady();
224
211
 
225
- _setChecked(param) {
226
- if (typeof param !== 'undefined') {
227
- this.checked = param === this.on;
228
- } else {
229
- this.checked = this.default === this.on;
230
- }
212
+ waitOnce('pb-page-ready', () => {
213
+ if (this.global) {
214
+ this.dispatchEvent(
215
+ new CustomEvent('pb-global-toggle', {
216
+ detail: {
217
+ selector: this.selector,
218
+ command: this.action,
219
+ state: this.checked,
220
+ },
221
+ bubbles: true,
222
+ composed: true,
223
+ }),
224
+ );
225
+ } else if (this.selector) {
226
+ this.emitTo('pb-toggle', { refresh: false });
227
+ }
228
+ });
229
+ }
230
+
231
+ _setChecked(param) {
232
+ if (typeof param !== 'undefined') {
233
+ this.checked = param === this.on;
234
+ } else {
235
+ this.checked = this.default === this.on;
231
236
  }
237
+ }
232
238
 
233
- attributeChangedCallback(name, oldVal, newVal) {
234
- super.attributeChangedCallback(name, oldVal, newVal);
235
- switch (name) {
236
- case this.on:
237
- this.propertiesOn[this.name] = newVal;
238
- break;
239
- case this.off:
240
- this.propertiesOff[this.name] = newVal;
241
- break;
242
- default:
243
- break;
244
- }
239
+ attributeChangedCallback(name, oldVal, newVal) {
240
+ super.attributeChangedCallback(name, oldVal, newVal);
241
+ switch (name) {
242
+ case this.on:
243
+ this.propertiesOn[this.name] = newVal;
244
+ break;
245
+ case this.off:
246
+ this.propertiesOff[this.name] = newVal;
247
+ break;
248
+ default:
249
+ break;
245
250
  }
251
+ }
246
252
 
247
- _changed() {
248
- this.checked = this.shadowRoot.getElementById('checkbox').checked;
253
+ _changed() {
254
+ this.checked = this.shadowRoot.getElementById('checkbox').checked;
249
255
 
250
- this._saveState();
251
- if (!this.global) {
252
- this.emitTo('pb-toggle', {refresh: !this.selector});
253
- } else {
254
- const state = {};
255
- state[this.name] = this.checked ? this.on : this.off;
256
- registry.commit(this, state);
257
- }
256
+ this._saveState();
257
+ if (!this.global) {
258
+ this.emitTo('pb-toggle', { refresh: !this.selector });
259
+ } else {
260
+ const state = {};
261
+ state[this.name] = this.checked ? this.on : this.off;
262
+ registry.commit(this, state);
258
263
  }
264
+ }
259
265
 
260
- _saveState() {
261
- const state = registry.getState(this);
262
- state[this.name] = this.checked ? this.on : this.off;
263
- Object.assign(state, this.checked ? this.propertiesOn : this.propertiesOff);
264
- if (this.selector) {
265
- const config = {
266
- selector: this.selector,
267
- command: this.action,
268
- state: this.checked
269
- };
270
- if (this.global) {
271
- this.dispatchEvent(new CustomEvent('pb-global-toggle', { detail: config, bubbles: true, composed: true }));
272
- } else {
273
- state.selectors = state.selectors || [];
274
- addSelector(config, state.selectors);
275
- }
276
- }
266
+ _saveState() {
267
+ const state = registry.getState(this);
268
+ state[this.name] = this.checked ? this.on : this.off;
269
+ Object.assign(state, this.checked ? this.propertiesOn : this.propertiesOff);
270
+ if (this.selector) {
271
+ const config = {
272
+ selector: this.selector,
273
+ command: this.action,
274
+ state: this.checked,
275
+ };
276
+ if (this.global) {
277
+ this.dispatchEvent(
278
+ new CustomEvent('pb-global-toggle', { detail: config, bubbles: true, composed: true }),
279
+ );
280
+ } else {
281
+ state.selectors = state.selectors || [];
282
+ addSelector(config, state.selectors);
283
+ }
277
284
  }
285
+ }
278
286
  }
279
287
 
280
288
  customElements.define('pb-toggle-feature', PbToggleFeature);