@teipublisher/pb-components 2.25.4 → 2.25.6
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/.github/workflows/main.yml +3 -3
- package/.github/workflows/node.js.yml +3 -3
- package/.github/workflows/release.js.yml +4 -4
- package/.releaserc.json +1 -1
- package/CHANGELOG.md +15 -0
- package/Dockerfile +78 -70
- package/css/components.css +5 -5
- package/dist/demo/pb-drawer2.html +1 -1
- package/dist/demo/pb-leaflet-map.html +1 -1
- package/dist/demo/pb-repeat.html +1 -3
- package/dist/demo/pb-view3.html +1 -1
- package/dist/{paper-icon-button-0fb125c4.js → paper-icon-button-72125e67.js} +1 -1
- package/dist/pb-code-editor.js +25 -20
- package/dist/pb-component-docs.js +58 -54
- package/dist/pb-components-bundle.js +1827 -1520
- package/dist/pb-edit-app.js +167 -107
- package/dist/pb-elements.json +54 -54
- package/dist/{pb-i18n-0611135a.js → pb-i18n-4cc00bfe.js} +1 -1
- package/dist/pb-leaflet-map.js +23 -23
- package/dist/pb-mei.js +56 -41
- package/dist/{pb-mixin-b1caa22e.js → pb-mixin-886ece32.js} +1 -1
- package/dist/pb-odd-editor.js +925 -758
- package/dist/pb-tify.js +2 -2
- package/dist/{vaadin-element-mixin-859a0132.js → vaadin-element-mixin-ad07ba25.js} +88 -61
- package/gh-pages.js +5 -3
- package/i18n/common/pl.json +2 -2
- package/package.json +2 -2
- package/pb-elements.json +54 -54
- package/src/assets/components.css +5 -5
- package/src/authority/airtable.js +20 -21
- package/src/authority/anton.js +129 -129
- package/src/authority/custom.js +23 -21
- package/src/authority/geonames.js +38 -32
- package/src/authority/gnd.js +47 -42
- package/src/authority/kbga.js +137 -134
- package/src/authority/metagrid.js +44 -46
- package/src/authority/reconciliation.js +66 -67
- package/src/authority/registry.js +4 -4
- package/src/docs/pb-component-docs.js +2 -2
- package/src/docs/pb-component-view.js +5 -5
- package/src/docs/pb-components-list.js +2 -2
- package/src/docs/pb-demo-snippet.js +2 -2
- package/src/dts-client.js +299 -297
- package/src/dts-select-endpoint.js +90 -82
- package/src/parse-date-service.js +184 -135
- package/src/pb-ajax.js +171 -167
- package/src/pb-authority-lookup.js +96 -81
- package/src/pb-autocomplete.js +292 -280
- package/src/pb-blacklab-highlight.js +264 -259
- package/src/pb-blacklab-results.js +236 -221
- package/src/pb-browse-docs.js +540 -475
- package/src/pb-browse.js +68 -65
- package/src/pb-clipboard.js +79 -76
- package/src/pb-code-editor.js +110 -102
- package/src/pb-code-highlight.js +209 -204
- package/src/pb-codepen.js +79 -72
- package/src/pb-collapse.js +149 -146
- package/src/pb-combo-box.js +190 -190
- package/src/pb-components-bundle.js +1 -1
- package/src/pb-custom-form.js +150 -149
- package/src/pb-document.js +89 -90
- package/src/pb-download.js +208 -195
- package/src/pb-drawer.js +145 -148
- package/src/pb-edit-app.js +301 -229
- package/src/pb-edit-xml.js +99 -96
- package/src/pb-events.js +114 -107
- package/src/pb-facs-link.js +104 -102
- package/src/pb-facsimile.js +411 -413
- package/src/pb-formula.js +151 -153
- package/src/pb-geolocation.js +129 -131
- package/src/pb-grid-action.js +53 -56
- package/src/pb-grid.js +231 -228
- package/src/pb-highlight.js +140 -140
- package/src/pb-hotkeys.js +40 -42
- package/src/pb-i18n.js +101 -104
- package/src/pb-image-strip.js +84 -78
- package/src/pb-lang.js +83 -70
- package/src/pb-leaflet-map.js +488 -485
- package/src/pb-link.js +126 -124
- package/src/pb-load.js +431 -426
- package/src/pb-login.js +275 -254
- package/src/pb-manage-odds.js +364 -318
- package/src/pb-map-icon.js +89 -89
- package/src/pb-map-layer.js +85 -85
- package/src/pb-markdown.js +90 -99
- package/src/pb-media-query.js +74 -72
- package/src/pb-mei.js +306 -295
- package/src/pb-message.js +143 -130
- package/src/pb-mixin.js +269 -264
- package/src/pb-navigation.js +80 -82
- package/src/pb-observable.js +38 -38
- package/src/pb-odd-editor.js +1056 -958
- package/src/pb-odd-elementspec-editor.js +348 -297
- package/src/pb-odd-model-editor.js +1058 -898
- package/src/pb-odd-parameter-editor.js +200 -178
- package/src/pb-odd-rendition-editor.js +136 -124
- package/src/pb-page.js +432 -422
- package/src/pb-paginate.js +202 -190
- package/src/pb-panel.js +191 -179
- package/src/pb-popover-themes.js +7 -5
- package/src/pb-popover.js +296 -287
- package/src/pb-print-preview.js +127 -127
- package/src/pb-progress.js +49 -49
- package/src/pb-repeat.js +105 -104
- package/src/pb-restricted.js +84 -77
- package/src/pb-search.js +238 -221
- package/src/pb-select-feature.js +127 -120
- package/src/pb-select-odd.js +132 -124
- package/src/pb-select-template.js +89 -78
- package/src/pb-select.js +251 -227
- package/src/pb-split-list.js +179 -174
- package/src/pb-svg.js +80 -79
- package/src/pb-table-column.js +54 -54
- package/src/pb-table-grid.js +221 -203
- package/src/pb-tabs.js +61 -63
- package/src/pb-tify.js +154 -154
- package/src/pb-timeline.js +271 -229
- package/src/pb-toggle-feature.js +198 -185
- package/src/pb-upload.js +184 -174
- package/src/pb-version.js +30 -30
- package/src/pb-view-annotate.js +132 -98
- package/src/pb-view.js +1282 -1263
- package/src/pb-zoom.js +40 -40
- package/src/polymer-hack.js +1 -1
- package/src/search-result-service.js +256 -223
- package/src/seed-element.js +13 -20
- package/src/settings.js +4 -4
- package/src/theming.js +91 -91
- package/src/urls.js +289 -289
- package/src/utils.js +53 -51
package/src/pb-toggle-feature.js
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import { LitElement, html } from 'lit-element';
|
|
2
2
|
import '@polymer/paper-checkbox';
|
|
3
3
|
import { pbMixin, waitOnce } from './pb-mixin.js';
|
|
4
|
-
import { registry } from
|
|
4
|
+
import { registry } from './urls.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @param {{ selector: any; command: string; state: boolean; }} newConfig
|
|
8
8
|
* @param {any[]} configs
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
* ```
|
|
@@ -89,192 +89,205 @@ import { registry } from "./urls.js";
|
|
|
89
89
|
* @fires pb-update - When received, sets the features passed from the event
|
|
90
90
|
*/
|
|
91
91
|
export class PbToggleFeature extends 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
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
+
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
|
+
}
|
|
175
186
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
this.
|
|
181
|
-
this.
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
+
render() {
|
|
188
|
+
return html`
|
|
189
|
+
<paper-checkbox
|
|
190
|
+
id="checkbox"
|
|
191
|
+
@change="${this._changed}"
|
|
192
|
+
.checked="${this.checked}"
|
|
193
|
+
.disabled="${this.disabled}"
|
|
194
|
+
><slot></slot
|
|
195
|
+
></paper-checkbox>
|
|
196
|
+
`;
|
|
197
|
+
}
|
|
187
198
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
<paper-checkbox id="checkbox" @change="${this._changed}" .checked="${this.checked}" .disabled="${this.disabled}"><slot></slot></paper-checkbox>
|
|
191
|
-
`;
|
|
192
|
-
}
|
|
199
|
+
connectedCallback() {
|
|
200
|
+
super.connectedCallback();
|
|
193
201
|
|
|
194
|
-
|
|
195
|
-
|
|
202
|
+
registry.subscribe(this, state => {
|
|
203
|
+
const param = state[this.name];
|
|
204
|
+
this._setChecked(param);
|
|
205
|
+
});
|
|
196
206
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
this._setChecked(param);
|
|
200
|
-
});
|
|
207
|
+
const param = registry.state[this.name];
|
|
208
|
+
this._setChecked(param);
|
|
201
209
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
newState[this.name] = this.checked ? this.on : this.off;
|
|
207
|
-
registry.replace(this, newState);
|
|
208
|
-
this._saveState();
|
|
210
|
+
const newState = {};
|
|
211
|
+
newState[this.name] = this.checked ? this.on : this.off;
|
|
212
|
+
registry.replace(this, newState);
|
|
213
|
+
this._saveState();
|
|
209
214
|
|
|
210
|
-
|
|
215
|
+
this.signalReady();
|
|
211
216
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
217
|
+
waitOnce('pb-page-ready', () => {
|
|
218
|
+
if (this.global) {
|
|
219
|
+
this.dispatchEvent(
|
|
220
|
+
new CustomEvent('pb-global-toggle', {
|
|
221
|
+
detail: {
|
|
222
|
+
selector: this.selector,
|
|
223
|
+
command: this.action,
|
|
224
|
+
state: this.checked,
|
|
225
|
+
},
|
|
226
|
+
bubbles: true,
|
|
227
|
+
composed: true,
|
|
228
|
+
}),
|
|
229
|
+
);
|
|
230
|
+
} else if (this.selector) {
|
|
231
|
+
this.emitTo('pb-toggle', { refresh: false });
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
}
|
|
224
235
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
}
|
|
236
|
+
_setChecked(param) {
|
|
237
|
+
if (typeof param !== 'undefined') {
|
|
238
|
+
this.checked = param === this.on;
|
|
239
|
+
} else {
|
|
240
|
+
this.checked = this.default === this.on;
|
|
231
241
|
}
|
|
242
|
+
}
|
|
232
243
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
}
|
|
244
|
+
attributeChangedCallback(name, oldVal, newVal) {
|
|
245
|
+
super.attributeChangedCallback(name, oldVal, newVal);
|
|
246
|
+
switch (name) {
|
|
247
|
+
case this.on:
|
|
248
|
+
this.propertiesOn[this.name] = newVal;
|
|
249
|
+
break;
|
|
250
|
+
case this.off:
|
|
251
|
+
this.propertiesOff[this.name] = newVal;
|
|
252
|
+
break;
|
|
253
|
+
default:
|
|
254
|
+
break;
|
|
245
255
|
}
|
|
256
|
+
}
|
|
246
257
|
|
|
247
|
-
|
|
248
|
-
|
|
258
|
+
_changed() {
|
|
259
|
+
this.checked = this.shadowRoot.getElementById('checkbox').checked;
|
|
249
260
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
}
|
|
261
|
+
this._saveState();
|
|
262
|
+
if (!this.global) {
|
|
263
|
+
this.emitTo('pb-toggle', { refresh: !this.selector });
|
|
264
|
+
} else {
|
|
265
|
+
const state = {};
|
|
266
|
+
state[this.name] = this.checked ? this.on : this.off;
|
|
267
|
+
registry.commit(this, state);
|
|
258
268
|
}
|
|
269
|
+
}
|
|
259
270
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
271
|
+
_saveState() {
|
|
272
|
+
const state = registry.getState(this);
|
|
273
|
+
state[this.name] = this.checked ? this.on : this.off;
|
|
274
|
+
Object.assign(state, this.checked ? this.propertiesOn : this.propertiesOff);
|
|
275
|
+
if (this.selector) {
|
|
276
|
+
const config = {
|
|
277
|
+
selector: this.selector,
|
|
278
|
+
command: this.action,
|
|
279
|
+
state: this.checked,
|
|
280
|
+
};
|
|
281
|
+
if (this.global) {
|
|
282
|
+
this.dispatchEvent(
|
|
283
|
+
new CustomEvent('pb-global-toggle', { detail: config, bubbles: true, composed: true }),
|
|
284
|
+
);
|
|
285
|
+
} else {
|
|
286
|
+
state.selectors = state.selectors || [];
|
|
287
|
+
addSelector(config, state.selectors);
|
|
288
|
+
}
|
|
277
289
|
}
|
|
290
|
+
}
|
|
278
291
|
}
|
|
279
292
|
|
|
280
293
|
customElements.define('pb-toggle-feature', PbToggleFeature);
|