@pie-players/pie-assessment-toolkit 0.2.9 → 0.2.10
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/dist/components/ItemToolBar.custom-element.js +413 -88
- package/dist/components/PieAssessmentToolkit.custom-element.js +128 -41
- package/dist/components/SectionToolBar.custom-element.js +162 -0
- package/dist/components/section-toolbar-element.d.ts +3 -0
- package/dist/components/section-toolbar-element.d.ts.map +1 -0
- package/dist/components/section-toolbar-element.js +2 -0
- package/dist/components/section-toolbar-element.js.map +1 -0
- package/dist/context/assessment-toolkit-context.d.ts +1 -1
- package/dist/context/assessment-toolkit-context.d.ts.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime/SectionRuntimeEngine.d.ts +1 -1
- package/dist/runtime/SectionRuntimeEngine.d.ts.map +1 -1
- package/dist/services/HighlightCoordinator.d.ts +9 -0
- package/dist/services/HighlightCoordinator.d.ts.map +1 -1
- package/dist/services/HighlightCoordinator.js +196 -55
- package/dist/services/HighlightCoordinator.js.map +1 -1
- package/dist/services/TTSService.d.ts +18 -0
- package/dist/services/TTSService.d.ts.map +1 -1
- package/dist/services/TTSService.js +343 -105
- package/dist/services/TTSService.js.map +1 -1
- package/dist/services/ToolRegistry.d.ts +14 -2
- package/dist/services/ToolRegistry.d.ts.map +1 -1
- package/dist/services/ToolRegistry.js +2 -1
- package/dist/services/ToolRegistry.js.map +1 -1
- package/dist/services/ToolkitCoordinator.d.ts +21 -1
- package/dist/services/ToolkitCoordinator.d.ts.map +1 -1
- package/dist/services/ToolkitCoordinator.js +106 -2
- package/dist/services/ToolkitCoordinator.js.map +1 -1
- package/dist/services/createDefaultToolRegistry.d.ts +5 -11
- package/dist/services/createDefaultToolRegistry.d.ts.map +1 -1
- package/dist/services/createDefaultToolRegistry.js +5 -48
- package/dist/services/createDefaultToolRegistry.js.map +1 -1
- package/dist/services/interfaces.d.ts +1 -1
- package/dist/services/interfaces.d.ts.map +1 -1
- package/dist/services/pnp-standard-features.d.ts +1 -1
- package/dist/services/section-controller-types.d.ts +5 -0
- package/dist/services/section-controller-types.d.ts.map +1 -1
- package/dist/services/tool-config-defaults.d.ts +14 -0
- package/dist/services/tool-config-defaults.d.ts.map +1 -0
- package/dist/services/tool-config-defaults.js +23 -0
- package/dist/services/tool-config-defaults.js.map +1 -0
- package/dist/services/tool-context.d.ts.map +1 -1
- package/dist/services/tool-context.js +50 -3
- package/dist/services/tool-context.js.map +1 -1
- package/dist/services/tool-instance-id.d.ts +1 -3
- package/dist/services/tool-instance-id.d.ts.map +1 -1
- package/dist/services/tool-instance-id.js +4 -10
- package/dist/services/tool-instance-id.js.map +1 -1
- package/dist/services/toolbar-items.d.ts +26 -0
- package/dist/services/toolbar-items.d.ts.map +1 -0
- package/dist/services/toolbar-items.js +10 -0
- package/dist/services/toolbar-items.js.map +1 -0
- package/dist/services/tools-config-normalizer.d.ts.map +1 -1
- package/dist/services/tools-config-normalizer.js +5 -6
- package/dist/services/tools-config-normalizer.js.map +1 -1
- package/dist/services/tts/browser-provider.d.ts.map +1 -1
- package/dist/services/tts/browser-provider.js +201 -34
- package/dist/services/tts/browser-provider.js.map +1 -1
- package/dist/services/tts/text-processing.d.ts +17 -0
- package/dist/services/tts/text-processing.d.ts.map +1 -0
- package/dist/services/tts/text-processing.js +144 -0
- package/dist/services/tts/text-processing.js.map +1 -0
- package/dist/tools/default-tool-module-loaders.d.ts.map +1 -1
- package/dist/tools/default-tool-module-loaders.js +1 -7
- package/dist/tools/default-tool-module-loaders.js.map +1 -1
- package/dist/tools/registrations/accessibility-tools.d.ts +7 -2
- package/dist/tools/registrations/accessibility-tools.d.ts.map +1 -1
- package/dist/tools/registrations/accessibility-tools.js +21 -15
- package/dist/tools/registrations/accessibility-tools.js.map +1 -1
- package/dist/tools/registrations/calculator.d.ts.map +1 -1
- package/dist/tools/registrations/calculator.js +18 -10
- package/dist/tools/registrations/calculator.js.map +1 -1
- package/dist/tools/registrations/interaction-tools.js +4 -4
- package/dist/tools/registrations/interaction-tools.js.map +1 -1
- package/dist/tools/registrations/measurement-tools.js +4 -4
- package/dist/tools/registrations/measurement-tools.js.map +1 -1
- package/dist/tools/registrations/subject-specific-tools.js +4 -4
- package/dist/tools/registrations/subject-specific-tools.js.map +1 -1
- package/dist/tools/registrations/tts.d.ts.map +1 -1
- package/dist/tools/registrations/tts.js +161 -17
- package/dist/tools/registrations/tts.js.map +1 -1
- package/dist/tools/tool-tag-map.d.ts.map +1 -1
- package/dist/tools/tool-tag-map.js +2 -1
- package/dist/tools/tool-tag-map.js.map +1 -1
- package/package.json +11 -7
- package/src/components/ItemToolBar.svelte +254 -42
- package/src/components/PieAssessmentToolkit.svelte +139 -46
- package/src/components/SectionToolBar.svelte +58 -0
- package/dist/services/tts/provider-interface.d.ts +0 -131
- package/dist/services/tts/provider-interface.d.ts.map +0 -1
- package/dist/services/tts/provider-interface.js +0 -10
- package/dist/services/tts/provider-interface.js.map +0 -1
- package/src/components/PNPProvenanceViewer.svelte +0 -270
|
@@ -7,22 +7,25 @@ import {
|
|
|
7
7
|
connectAssessmentToolkitShellContext
|
|
8
8
|
} from '../context/runtime-context-consumer.js';
|
|
9
9
|
|
|
10
|
+
import { isExternalIconUrl, isInlineSvgIcon, isToolbarLinkItem } from '../services/toolbar-items.js';
|
|
10
11
|
import { createDefaultToolRegistry } from '../services/createDefaultToolRegistry.js';
|
|
11
12
|
import { DEFAULT_TOOL_MODULE_LOADERS } from '../tools/default-tool-module-loaders.js';
|
|
12
13
|
import { normalizeToolsConfig, parseToolList, resolveToolsForLevel } from '../services/tools-config-normalizer.js';
|
|
13
14
|
import { createScopedToolId, parseScopedToolId } from '../services/tool-instance-id.js';
|
|
14
15
|
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var root_4 = $.from_html(`<
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
var
|
|
16
|
+
var root_2 = $.from_html(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
|
|
17
|
+
var root_7 = $.from_html(`<img class="item-toolbar__icon-image svelte-rnx3ie" alt=""/>`);
|
|
18
|
+
var root_10 = $.from_html(`<i aria-hidden="true"></i>`);
|
|
19
|
+
var root_4 = $.from_html(`<a><!></a>`);
|
|
20
|
+
var root_14 = $.from_html(`<img class="item-toolbar__icon-image svelte-rnx3ie" alt=""/>`);
|
|
21
|
+
var root_17 = $.from_html(`<i aria-hidden="true"></i>`);
|
|
22
|
+
var root_11 = $.from_html(`<button type="button"><!></button>`);
|
|
23
|
+
var root_18 = $.from_html(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
|
|
24
|
+
var root_1 = $.from_html(`<div><!> <!> <!></div>`);
|
|
22
25
|
|
|
23
26
|
const $$css = {
|
|
24
27
|
hash: 'svelte-rnx3ie',
|
|
25
|
-
code: '.item-toolbar.svelte-rnx3ie {display:flex;align-items:center;gap:0.5rem;}.item-toolbar__button.svelte-rnx3ie {display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0.25rem;border:1px solid var(--pie-border, #ccc);border-radius:0.25rem;background-color:var(--pie-background, white);color:var(--pie-text, #333);cursor:pointer;transition:all 0.15s ease;}.item-toolbar__element-host.svelte-rnx3ie {display:contents;}.item-toolbar--sm.svelte-rnx3ie .item-toolbar__button:where(.svelte-rnx3ie) {width:2.75rem;height:2.75rem;}.item-toolbar--lg.svelte-rnx3ie .item-toolbar__button:where(.svelte-rnx3ie) {width:2.5rem;height:2.5rem;}.item-toolbar__button.svelte-rnx3ie:hover:not(:disabled) {background-color:var(--pie-secondary-background, #f5f5f5);transform:translateY(-1px);box-shadow:0 2px 4px rgba(0, 0, 0, 0.1);}.item-toolbar__button.svelte-rnx3ie:active:not(:disabled) {transform:translateY(0);box-shadow:none;}.item-toolbar__button--active.svelte-rnx3ie {background-color:var(--pie-primary, #1976d2);color:white;border-color:var(--pie-primary, #1976d2);}.item-toolbar__button--active.svelte-rnx3ie:hover:not(:disabled) {background-color:var(--pie-primary-dark, #1565c0);}.item-toolbar__button.svelte-rnx3ie:focus-visible {outline:2px solid var(--pie-primary, #1976d2);outline-offset:2px;}.item-toolbar__button.svelte-rnx3ie:disabled {opacity:0.5;cursor:not-allowed;}.item-toolbar__button.svelte-rnx3ie svg {width:100%;height:100%;}.item-toolbar__icon-image.svelte-rnx3ie {width:100%;height:100%;object-fit:contain;}'
|
|
28
|
+
code: '.item-toolbar.svelte-rnx3ie {display:flex;align-items:center;gap:0.5rem;}.item-toolbar--top.svelte-rnx3ie,\n .item-toolbar--bottom.svelte-rnx3ie {flex-direction:row;flex-wrap:wrap;}.item-toolbar--left.svelte-rnx3ie,\n .item-toolbar--right.svelte-rnx3ie {flex-direction:column;align-items:stretch;}.item-toolbar__button.svelte-rnx3ie {display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0.25rem;border:1px solid var(--pie-border, #ccc);border-radius:0.25rem;background-color:var(--pie-background, white);color:var(--pie-text, #333);cursor:pointer;transition:all 0.15s ease;text-decoration:none;}.item-toolbar__element-host.svelte-rnx3ie {display:contents;}.item-toolbar--sm.svelte-rnx3ie .item-toolbar__button:where(.svelte-rnx3ie) {width:2.75rem;height:2.75rem;}.item-toolbar--lg.svelte-rnx3ie .item-toolbar__button:where(.svelte-rnx3ie) {width:2.5rem;height:2.5rem;}.item-toolbar__button.svelte-rnx3ie:hover:not(:disabled) {background-color:var(--pie-secondary-background, #f5f5f5);transform:translateY(-1px);box-shadow:0 2px 4px rgba(0, 0, 0, 0.1);}.item-toolbar__button.svelte-rnx3ie:active:not(:disabled) {transform:translateY(0);box-shadow:none;}.item-toolbar__button--active.svelte-rnx3ie {background-color:var(--pie-primary, #1976d2);color:white;border-color:var(--pie-primary, #1976d2);}.item-toolbar__button--active.svelte-rnx3ie:hover:not(:disabled) {background-color:var(--pie-primary-dark, #1565c0);}.item-toolbar__button.svelte-rnx3ie:focus-visible {outline:2px solid var(--pie-primary, #1976d2);outline-offset:2px;}.item-toolbar__button.svelte-rnx3ie:disabled {opacity:0.5;cursor:not-allowed;}.item-toolbar__button.svelte-rnx3ie svg {width:100%;height:100%;}.item-toolbar__icon-image.svelte-rnx3ie {width:100%;height:100%;object-fit:contain;}'
|
|
26
29
|
};
|
|
27
30
|
|
|
28
31
|
export default function ItemToolBar($$anchor, $$props) {
|
|
@@ -34,16 +37,21 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
34
37
|
let activeToolState = $.state($.proxy({}));
|
|
35
38
|
|
|
36
39
|
// Props
|
|
37
|
-
let
|
|
40
|
+
let level = $.prop($$props, 'level', 7, 'item'),
|
|
41
|
+
scopeId = $.prop($$props, 'scopeId', 7, ''),
|
|
42
|
+
itemId = $.prop($$props, 'itemId', 7, ''),
|
|
43
|
+
sectionId = $.prop($$props, 'sectionId', 7, ''),
|
|
38
44
|
catalogId = $.prop($$props, 'catalogId', 7, ''),
|
|
39
45
|
tools = $.prop($$props, 'tools', 7, 'calculator,textToSpeech,answerEliminator'),
|
|
40
46
|
contentKind = $.prop($$props, 'contentKind', 7, 'assessment-item'),
|
|
47
|
+
position = $.prop($$props, 'position', 7, 'bottom'),
|
|
41
48
|
scopeElement = $.prop($$props, 'scopeElement', 7, null),
|
|
42
49
|
toolRegistry = $.prop($$props, 'toolRegistry', 7, null),
|
|
43
50
|
pnpResolver = $.prop($$props, 'pnpResolver', 7, null),
|
|
44
51
|
assessment = $.prop($$props, 'assessment', 7, null),
|
|
45
52
|
itemRef = $.prop($$props, 'itemRef', 7, null),
|
|
46
53
|
item = $.prop($$props, 'item', 7, null),
|
|
54
|
+
hostButtons = $.prop($$props, 'hostButtons', 23, () => []),
|
|
47
55
|
className = $.prop($$props, 'class', 7, ''),
|
|
48
56
|
size = $.prop($$props, 'size', 7, 'md'),
|
|
49
57
|
language = $.prop($$props, 'language', 7, 'en-US');
|
|
@@ -73,11 +81,27 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
73
81
|
const effectiveTTSService = $.derived(() => $.get(runtimeContext)?.ttsService);
|
|
74
82
|
const effectiveElementToolStateStore = $.derived(() => $.get(runtimeContext)?.elementToolStateStore);
|
|
75
83
|
const effectiveAssessmentId = $.derived(() => $.get(runtimeContext)?.assessmentId ?? '');
|
|
76
|
-
const effectiveSectionId = $.derived(() => $.get(runtimeContext)?.sectionId ?? '');
|
|
77
84
|
const effectiveItemId = $.derived(() => itemId() || $.get(shellContext)?.itemId || '');
|
|
78
85
|
const effectiveCanonicalItemId = $.derived(() => $.get(shellContext)?.canonicalItemId || $.get(effectiveItemId));
|
|
79
|
-
const
|
|
80
|
-
const effectiveContentKind = $.derived(() => contentKind() || $.get(shellContext)?.contentKind || 'assessment-item');
|
|
86
|
+
const effectiveSectionId = $.derived(() => sectionId() || $.get(runtimeContext)?.sectionId || '');
|
|
87
|
+
const effectiveContentKind = $.derived(() => contentKind() || $.get(shellContext)?.contentKind || (level() === 'section' ? 'section' : 'assessment-item'));
|
|
88
|
+
|
|
89
|
+
const effectiveLevel = $.derived(() => {
|
|
90
|
+
if (level() && level() !== 'item') return level();
|
|
91
|
+
if ($.get(effectiveContentKind) === 'rubric-block-stimulus') return 'passage';
|
|
92
|
+
|
|
93
|
+
return 'item';
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
const effectiveScopeId = $.derived(() => {
|
|
97
|
+
if (scopeId()) return scopeId();
|
|
98
|
+
if ($.get(effectiveLevel) === 'section') return $.get(effectiveSectionId) || $.get(runtimeContext)?.sectionId || 'default-section';
|
|
99
|
+
if ($.get(effectiveLevel) === 'assessment') return $.get(runtimeContext)?.assessmentId || 'default-assessment';
|
|
100
|
+
|
|
101
|
+
return $.get(effectiveCanonicalItemId) || $.get(effectiveItemId) || 'default-item';
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
const effectiveCatalogId = $.derived(() => catalogId() || $.get(effectiveScopeId));
|
|
81
105
|
const effectiveItem = $.derived(() => item() || $.get(shellContext)?.item || null);
|
|
82
106
|
|
|
83
107
|
// Effective registry for visibility and metadata ownership.
|
|
@@ -92,7 +116,12 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
92
116
|
return normalizeToolsConfig(coordinatorConfig || {});
|
|
93
117
|
});
|
|
94
118
|
|
|
95
|
-
const placementLevel = $.derived(() =>
|
|
119
|
+
const placementLevel = $.derived(() => {
|
|
120
|
+
if ($.get(effectiveLevel) === 'section') return 'section';
|
|
121
|
+
if ($.get(effectiveLevel) === 'passage' || $.get(effectiveContentKind) === 'rubric-block-stimulus') return 'passage';
|
|
122
|
+
|
|
123
|
+
return 'item';
|
|
124
|
+
});
|
|
96
125
|
|
|
97
126
|
const placementAllowedToolIds = $.derived(() => {
|
|
98
127
|
const resolved = resolveToolsForLevel($.get(effectiveToolsConfig), $.get(placementLevel));
|
|
@@ -118,16 +147,39 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
118
147
|
});
|
|
119
148
|
|
|
120
149
|
const contentReady = $.derived(() => {
|
|
150
|
+
if ($.get(effectiveLevel) === 'section' || $.get(effectiveLevel) === 'assessment') return true;
|
|
151
|
+
|
|
121
152
|
const config = $.get(effectiveItem)?.config;
|
|
122
153
|
|
|
123
154
|
return !!($.get(effectiveItem) && config && typeof config === 'object');
|
|
124
155
|
});
|
|
125
156
|
|
|
126
157
|
const toolContext = $.derived(() => {
|
|
158
|
+
if ($.get(effectiveLevel) === 'section') {
|
|
159
|
+
return {
|
|
160
|
+
level: 'section',
|
|
161
|
+
assessment: assessment() || {},
|
|
162
|
+
section: {}
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
if ($.get(effectiveLevel) === 'assessment') {
|
|
167
|
+
return { level: 'assessment', assessment: assessment() || {} };
|
|
168
|
+
}
|
|
169
|
+
|
|
127
170
|
if (!$.get(contentReady) || !$.get(effectiveItem)) {
|
|
128
171
|
return null;
|
|
129
172
|
}
|
|
130
173
|
|
|
174
|
+
if ($.get(effectiveLevel) === 'passage') {
|
|
175
|
+
return {
|
|
176
|
+
level: 'passage',
|
|
177
|
+
assessment: assessment() || {},
|
|
178
|
+
itemRef: itemRef() || { id: $.get(effectiveCanonicalItemId) },
|
|
179
|
+
passage: $.get(effectiveItem)
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
|
|
131
183
|
return {
|
|
132
184
|
level: 'item',
|
|
133
185
|
assessment: assessment() || {},
|
|
@@ -148,6 +200,7 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
148
200
|
});
|
|
149
201
|
|
|
150
202
|
const elementContexts = $.derived(() => {
|
|
203
|
+
if ($.get(effectiveLevel) !== 'item' && $.get(effectiveLevel) !== 'passage') return [];
|
|
151
204
|
if (!$.get(contentReady) || !$.get(effectiveItem)) return [];
|
|
152
205
|
|
|
153
206
|
const modelsRaw = $.get(effectiveItem)?.config?.models;
|
|
@@ -167,23 +220,37 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
167
220
|
|
|
168
221
|
// Pass 2: tool-owned context filtering (item + element aggregation)
|
|
169
222
|
const visibleToolIds = $.derived(() => {
|
|
223
|
+
const levelCompatibleToolIds = $.get(allowedToolIds).filter((toolId) => {
|
|
224
|
+
const registration = $.get(effectiveToolRegistry).get(toolId);
|
|
225
|
+
|
|
226
|
+
return registration
|
|
227
|
+
? registration.supportedLevels.includes($.get(effectiveLevel))
|
|
228
|
+
: false;
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
if ($.get(effectiveLevel) === 'section') {
|
|
232
|
+
// Section toolbars are orchestrator-driven. Tool-level relevance is often
|
|
233
|
+
// item-content dependent. Keep pass-1 as the source of truth here.
|
|
234
|
+
return $.get(allowedToolIds);
|
|
235
|
+
}
|
|
236
|
+
|
|
170
237
|
if (!$.get(contentReady)) {
|
|
171
238
|
// Stage 1: orchestrator-level allow-list only.
|
|
172
|
-
return
|
|
239
|
+
return levelCompatibleToolIds;
|
|
173
240
|
}
|
|
174
241
|
|
|
175
242
|
if (!$.get(toolContext) && $.get(elementContexts).length === 0) {
|
|
176
|
-
return
|
|
243
|
+
return levelCompatibleToolIds;
|
|
177
244
|
}
|
|
178
245
|
|
|
179
246
|
const visible = new Set();
|
|
180
247
|
|
|
181
248
|
if ($.get(toolContext)) {
|
|
182
|
-
$.get(effectiveToolRegistry).filterVisibleInContext(
|
|
249
|
+
$.get(effectiveToolRegistry).filterVisibleInContext(levelCompatibleToolIds, $.get(toolContext)).forEach((tool) => visible.add(tool.toolId));
|
|
183
250
|
}
|
|
184
251
|
|
|
185
252
|
for (const context of $.get(elementContexts)) {
|
|
186
|
-
$.get(effectiveToolRegistry).filterVisibleInContext(
|
|
253
|
+
$.get(effectiveToolRegistry).filterVisibleInContext(levelCompatibleToolIds, context).forEach((tool) => visible.add(tool.toolId));
|
|
187
254
|
}
|
|
188
255
|
|
|
189
256
|
return Array.from(visible);
|
|
@@ -227,11 +294,20 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
227
294
|
// This keeps toolbar contracts stable across mixed registration implementations.
|
|
228
295
|
return parseScopedToolId(toolId)
|
|
229
296
|
? toolId
|
|
230
|
-
: createScopedToolId(toolId,
|
|
297
|
+
: createScopedToolId(toolId, $.get(effectiveLevel), $.get(effectiveScopeId));
|
|
231
298
|
};
|
|
232
299
|
|
|
233
300
|
return {
|
|
234
|
-
|
|
301
|
+
scope: {
|
|
302
|
+
level: $.get(effectiveLevel),
|
|
303
|
+
scopeId: $.get(effectiveScopeId),
|
|
304
|
+
assessmentId: $.get(runtimeContext)?.assessmentId,
|
|
305
|
+
sectionId: $.get(effectiveSectionId),
|
|
306
|
+
itemId: $.get(effectiveItemId),
|
|
307
|
+
canonicalItemId: $.get(effectiveCanonicalItemId),
|
|
308
|
+
contentKind: $.get(effectiveContentKind)
|
|
309
|
+
},
|
|
310
|
+
itemId: $.get(effectiveScopeId),
|
|
235
311
|
catalogId: $.get(effectiveCatalogId),
|
|
236
312
|
language: language(),
|
|
237
313
|
ui: { size: size() },
|
|
@@ -244,7 +320,15 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
244
320
|
toggleTool: (toolId) => {
|
|
245
321
|
if (!$.get(effectiveToolCoordinator)) return;
|
|
246
322
|
|
|
247
|
-
|
|
323
|
+
const instanceToolId = toInstanceToolId(toolId);
|
|
324
|
+
|
|
325
|
+
// Some tools only self-register after first visibility sync.
|
|
326
|
+
// Seed a placeholder registration so first toggle always works.
|
|
327
|
+
if (!$.get(effectiveToolCoordinator).getToolState(instanceToolId)) {
|
|
328
|
+
$.get(effectiveToolCoordinator).registerTool(instanceToolId, toolId);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
$.get(effectiveToolCoordinator).toggleTool(instanceToolId);
|
|
248
332
|
},
|
|
249
333
|
|
|
250
334
|
isToolVisible: (toolId) => {
|
|
@@ -278,6 +362,59 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
278
362
|
return rendered;
|
|
279
363
|
});
|
|
280
364
|
|
|
365
|
+
const normalizedHostButtons = $.derived(() => Array.isArray(hostButtons())
|
|
366
|
+
? hostButtons().filter((item) => !!item && typeof item.id === 'string')
|
|
367
|
+
: []);
|
|
368
|
+
|
|
369
|
+
const nativeToolbarItems = $.derived(() => $.get(renderedTools).filter((renderedTool) => !!renderedTool.button).map((renderedTool) => {
|
|
370
|
+
const button = renderedTool.button;
|
|
371
|
+
|
|
372
|
+
return {
|
|
373
|
+
id: renderedTool.toolId,
|
|
374
|
+
label: button.label,
|
|
375
|
+
ariaLabel: button.ariaLabel || button.label,
|
|
376
|
+
icon: button.icon,
|
|
377
|
+
tooltip: button.tooltip || button.label,
|
|
378
|
+
disabled: button.disabled,
|
|
379
|
+
active: $.get(activeToolState)[renderedTool.toolId] ?? button.active ?? false,
|
|
380
|
+
onClick: () => {
|
|
381
|
+
button.onClick();
|
|
382
|
+
syncRenderedToolsState();
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
}));
|
|
386
|
+
|
|
387
|
+
const toolbarItems = $.derived(() => [
|
|
388
|
+
...$.get(nativeToolbarItems),
|
|
389
|
+
...$.get(normalizedHostButtons)
|
|
390
|
+
]);
|
|
391
|
+
|
|
392
|
+
const mountedElementsBeforeButtons = $.derived(() => $.get(renderedTools).flatMap((renderedTool) => (renderedTool.elements || []).filter((entry) => entry.mount === 'before-buttons').map((entry) => entry.element).filter((entry) => Boolean(entry))));
|
|
393
|
+
const mountedElementsAfterButtons = $.derived(() => $.get(renderedTools).flatMap((renderedTool) => (renderedTool.elements || []).filter((entry) => entry.mount === 'after-buttons').map((entry) => entry.element).filter((entry) => Boolean(entry))));
|
|
394
|
+
|
|
395
|
+
function isToolbarItemActive(item) {
|
|
396
|
+
if (item.id in $.get(activeToolState)) {
|
|
397
|
+
return $.get(activeToolState)[item.id] === true;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
return item.active === true;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
function getFallbackIconSvg(iconName) {
|
|
404
|
+
const iconMap = {
|
|
405
|
+
calculator: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 2h10a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm0 2v4h10V4H7Zm0 6v2h2v-2H7Zm4 0v2h2v-2h-2Zm4 0v2h2v-2h-2Zm-8 4v2h2v-2H7Zm4 0v2h2v-2h-2Zm4 0v2h2v-2h-2Zm-8 4v2h2v-2H7Zm4 0v2h2v-2h-2Zm4 0v2h2v-2h-2Z" fill="currentColor"/></svg>',
|
|
406
|
+
'volume-up': '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 3.23v2.06A7.002 7.002 0 0 1 19 12a7 7 0 0 1-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77Zm-2 17.75V3L7 8H3v8h4l5 5Zm4.5-9a4.5 4.5 0 0 0-2.5-4.03v8.05A4.5 4.5 0 0 0 16.5 12Z" fill="currentColor"/></svg>',
|
|
407
|
+
swatch: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 3a9 9 0 1 0 9 9c0-.55-.45-1-1-1h-2.5a1.5 1.5 0 0 1 0-3H20a1 1 0 0 0 1-1 8.99 8.99 0 0 0-9-4Zm-5.5 9A1.5 1.5 0 1 1 8 13.5 1.5 1.5 0 0 1 6.5 12Zm3-4A1.5 1.5 0 1 1 11 9.5 1.5 1.5 0 0 1 9.5 8Zm5 0A1.5 1.5 0 1 1 16 9.5 1.5 1.5 0 0 1 14.5 8Z" fill="currentColor"/></svg>',
|
|
408
|
+
'chart-bar': '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4.75 5a.76.76 0 0 1 .75.75v11c0 .438.313.75.75.75h13a.76.76 0 0 1 .696 1.039.74.74 0 0 1-.696.461h-13C5 19 4 18 4 16.75v-11A.74.74 0 0 1 4.75 5ZM8 8.25a.74.74 0 0 1 .75-.75h6.5a.76.76 0 0 1 .696 1.039.74.74 0 0 1-.696.461h-6.5A.722.722 0 0 1 8 8.25Zm.75 2.25h4.5a.76.76 0 0 1 .696 1.039.74.74 0 0 1-.696.461h-4.5a.723.723 0 0 1-.75-.75.74.74 0 0 1 .75-.75Zm0 3h8.5a.76.76 0 0 1 .696 1.039.74.74 0 0 1-.696.461h-8.5a.723.723 0 0 1-.75-.75.74.74 0 0 1 .75-.75Z" fill="currentColor"/></svg>',
|
|
409
|
+
beaker: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 21c-.85 0-1.454-.38-1.813-1.137-.358-.759-.27-1.463.263-2.113L9 11V5H8a.968.968 0 0 1-.713-.287A.968.968 0 0 1 7 4c0-.283.096-.52.287-.712A.968.968 0 0 1 8 3h8c.283 0 .52.096.712.288.192.191.288.429.288.712s-.096.52-.288.713A.968.968 0 0 1 16 5h-1v6l5.55 6.75c.533.65.62 1.354.262 2.113C20.454 20.62 19.85 21 19 21H5Zm2-3h10l-3.4-4h-3.2L7 18Zm-2 1h14l-6-7.3V5h-2v6.7L5 19Z" fill="currentColor"/></svg>',
|
|
410
|
+
protractor: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m6.75 21-.25-2.2 2.85-7.85a3.95 3.95 0 0 0 1.75.95l-2.75 7.55L6.75 21Zm10.5 0-1.6-1.55-2.75-7.55a3.948 3.948 0 0 0 1.75-.95l2.85 7.85-.25 2.2ZM12 11a2.893 2.893 0 0 1-2.125-.875A2.893 2.893 0 0 1 9 8c0-.65.188-1.23.563-1.737A2.935 2.935 0 0 1 11 5.2V3h2v2.2c.583.2 1.063.554 1.438 1.063C14.812 6.77 15 7.35 15 8c0 .833-.292 1.542-.875 2.125A2.893 2.893 0 0 1 12 11Zm0-2c.283 0 .52-.096.713-.287A.967.967 0 0 0 13 8a.967.967 0 0 0-.287-.713A.968.968 0 0 0 12 7a.968.968 0 0 0-.713.287A.967.967 0 0 0 11 8c0 .283.096.52.287.713.192.191.43.287.713.287Z" fill="currentColor"/></svg>',
|
|
411
|
+
'bars-3': '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.85 15c.517 0 .98-.15 1.388-.45.408-.3.695-.692.862-1.175l.375-1.15c.267-.8.2-1.537-.2-2.213C8.875 9.337 8.3 9 7.55 9H4.025l.475 3.925c.083.583.346 1.075.787 1.475.442.4.963.6 1.563.6Zm10.3 0c.6 0 1.12-.2 1.563-.6.441-.4.704-.892.787-1.475L19.975 9h-3.5c-.75 0-1.325.342-1.725 1.025-.4.683-.467 1.425-.2 2.225l.35 1.125c.167.483.454.875.862 1.175.409.3.871.45 1.388.45Zm-10.3 2c-1.1 0-2.063-.363-2.887-1.088a4.198 4.198 0 0 1-1.438-2.737L2 9H1V7h6.55c.733 0 1.404.18 2.013.537A3.906 3.906 0 0 1 11 9h2.025c.35-.617.83-1.104 1.438-1.463A3.892 3.892 0 0 1 16.474 7H23v2h-1l-.525 4.175a4.198 4.198 0 0 1-1.438 2.737A4.238 4.238 0 0 1 17.15 17c-.95 0-1.804-.27-2.562-.813A4.234 4.234 0 0 1 13 14.026l-.375-1.125a21.35 21.35 0 0 1-.1-.363 4.926 4.926 0 0 1-.1-.537h-.85c-.033.2-.067.363-.1.488a21.35 21.35 0 0 1-.1.362L11 14a4.3 4.3 0 0 1-1.588 2.175A4.258 4.258 0 0 1 6.85 17Z" fill="currentColor"/></svg>',
|
|
412
|
+
ruler: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m8.8 10.95 2.15-2.175-1.4-1.425-1.1 1.1-1.4-1.4 1.075-1.1L7 4.825 4.825 7 8.8 10.95Zm8.2 8.225L19.175 17l-1.125-1.125-1.1 1.075-1.4-1.4 1.075-1.1-1.425-1.4-2.15 2.15L17 19.175ZM7.25 21H3v-4.25l4.375-4.375L2 7l5-5 5.4 5.4 3.775-3.8c.2-.2.425-.35.675-.45a2.068 2.068 0 0 1 1.55 0c.25.1.475.25.675.45L20.4 4.95c.2.2.35.425.45.675.1.25.15.508.15.775a1.975 1.975 0 0 1-.6 1.425l-3.775 3.8L22 17l-5 5-5.375-5.375L7.25 21ZM5 19h1.4l9.8-9.775L14.775 7.8 5 17.6V19Z" fill="currentColor"/></svg>'
|
|
413
|
+
};
|
|
414
|
+
|
|
415
|
+
return iconMap[iconName] || null;
|
|
416
|
+
}
|
|
417
|
+
|
|
281
418
|
function syncRenderedToolsState() {
|
|
282
419
|
const nextActiveState = {};
|
|
283
420
|
|
|
@@ -356,6 +493,24 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
356
493
|
}
|
|
357
494
|
|
|
358
495
|
var $$exports = {
|
|
496
|
+
get level() {
|
|
497
|
+
return level();
|
|
498
|
+
},
|
|
499
|
+
|
|
500
|
+
set level($$value) {
|
|
501
|
+
level($$value);
|
|
502
|
+
$.flush();
|
|
503
|
+
},
|
|
504
|
+
|
|
505
|
+
get scopeId() {
|
|
506
|
+
return scopeId();
|
|
507
|
+
},
|
|
508
|
+
|
|
509
|
+
set scopeId($$value) {
|
|
510
|
+
scopeId($$value);
|
|
511
|
+
$.flush();
|
|
512
|
+
},
|
|
513
|
+
|
|
359
514
|
get itemId() {
|
|
360
515
|
return itemId();
|
|
361
516
|
},
|
|
@@ -365,6 +520,15 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
365
520
|
$.flush();
|
|
366
521
|
},
|
|
367
522
|
|
|
523
|
+
get sectionId() {
|
|
524
|
+
return sectionId();
|
|
525
|
+
},
|
|
526
|
+
|
|
527
|
+
set sectionId($$value) {
|
|
528
|
+
sectionId($$value);
|
|
529
|
+
$.flush();
|
|
530
|
+
},
|
|
531
|
+
|
|
368
532
|
get catalogId() {
|
|
369
533
|
return catalogId();
|
|
370
534
|
},
|
|
@@ -392,6 +556,15 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
392
556
|
$.flush();
|
|
393
557
|
},
|
|
394
558
|
|
|
559
|
+
get position() {
|
|
560
|
+
return position();
|
|
561
|
+
},
|
|
562
|
+
|
|
563
|
+
set position($$value) {
|
|
564
|
+
position($$value);
|
|
565
|
+
$.flush();
|
|
566
|
+
},
|
|
567
|
+
|
|
395
568
|
get scopeElement() {
|
|
396
569
|
return scopeElement();
|
|
397
570
|
},
|
|
@@ -446,6 +619,15 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
446
619
|
$.flush();
|
|
447
620
|
},
|
|
448
621
|
|
|
622
|
+
get hostButtons() {
|
|
623
|
+
return hostButtons();
|
|
624
|
+
},
|
|
625
|
+
|
|
626
|
+
set hostButtons($$value) {
|
|
627
|
+
hostButtons($$value);
|
|
628
|
+
$.flush();
|
|
629
|
+
},
|
|
630
|
+
|
|
449
631
|
get class() {
|
|
450
632
|
return className();
|
|
451
633
|
},
|
|
@@ -478,123 +660,261 @@ export default function ItemToolBar($$anchor, $$props) {
|
|
|
478
660
|
var node_1 = $.first_child(fragment);
|
|
479
661
|
|
|
480
662
|
{
|
|
481
|
-
var
|
|
663
|
+
var consequent_9 = ($$anchor) => {
|
|
482
664
|
var div = root_1();
|
|
665
|
+
let classes;
|
|
666
|
+
var node_2 = $.child(div);
|
|
483
667
|
|
|
484
|
-
$.each(
|
|
485
|
-
var
|
|
486
|
-
var node_2 = $.first_child(fragment_1);
|
|
487
|
-
|
|
488
|
-
{
|
|
489
|
-
var consequent = ($$anchor) => {
|
|
490
|
-
var span = root_3();
|
|
668
|
+
$.each(node_2, 17, () => $.get(mountedElementsBeforeButtons), (mountedElement) => `before-${mountedElement.tagName}-${mountedElement.getAttribute('tool-id') || ''}`, ($$anchor, mountedElement) => {
|
|
669
|
+
var span = root_2();
|
|
491
670
|
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
671
|
+
$.action(span, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => $.get(mountedElement));
|
|
672
|
+
$.append($$anchor, span);
|
|
673
|
+
});
|
|
495
674
|
|
|
496
|
-
|
|
497
|
-
if ($.get(renderedTool).inlineElement) $$render(consequent);
|
|
498
|
-
});
|
|
499
|
-
}
|
|
675
|
+
var node_3 = $.sibling(node_2, 2);
|
|
500
676
|
|
|
501
|
-
|
|
677
|
+
$.each(node_3, 17, () => $.get(toolbarItems), (item) => item.id, ($$anchor, item, $$index_1, $$array) => {
|
|
678
|
+
var fragment_1 = $.comment();
|
|
679
|
+
var node_4 = $.first_child(fragment_1);
|
|
502
680
|
|
|
503
681
|
{
|
|
504
|
-
var
|
|
505
|
-
var
|
|
506
|
-
let
|
|
507
|
-
var
|
|
682
|
+
var consequent_4 = ($$anchor) => {
|
|
683
|
+
var a = root_4();
|
|
684
|
+
let classes_1;
|
|
685
|
+
var node_5 = $.child(a);
|
|
508
686
|
|
|
509
687
|
{
|
|
510
|
-
var
|
|
688
|
+
var consequent_3 = ($$anchor) => {
|
|
511
689
|
var fragment_2 = $.comment();
|
|
512
|
-
var
|
|
690
|
+
var node_6 = $.first_child(fragment_2);
|
|
513
691
|
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
692
|
+
{
|
|
693
|
+
var consequent = ($$anchor) => {
|
|
694
|
+
var fragment_3 = $.comment();
|
|
695
|
+
var node_7 = $.first_child(fragment_3);
|
|
517
696
|
|
|
518
|
-
|
|
697
|
+
$.html(node_7, () => $.get(item).icon);
|
|
698
|
+
$.append($$anchor, fragment_3);
|
|
699
|
+
};
|
|
519
700
|
|
|
520
|
-
|
|
521
|
-
var img = root_6();
|
|
701
|
+
var d = $.derived(() => isInlineSvgIcon($.get(item).icon));
|
|
522
702
|
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
703
|
+
var consequent_1 = ($$anchor) => {
|
|
704
|
+
var img = root_7();
|
|
705
|
+
|
|
706
|
+
$.template_effect(() => $.set_attribute(img, 'src', $.get(item).icon));
|
|
707
|
+
$.append($$anchor, img);
|
|
708
|
+
};
|
|
709
|
+
|
|
710
|
+
var d_1 = $.derived(() => isExternalIconUrl($.get(item).icon));
|
|
711
|
+
|
|
712
|
+
var alternate_1 = ($$anchor) => {
|
|
713
|
+
const fallbackIcon = $.derived(() => getFallbackIconSvg($.get(item).icon));
|
|
714
|
+
var fragment_4 = $.comment();
|
|
715
|
+
var node_8 = $.first_child(fragment_4);
|
|
716
|
+
|
|
717
|
+
{
|
|
718
|
+
var consequent_2 = ($$anchor) => {
|
|
719
|
+
var fragment_5 = $.comment();
|
|
720
|
+
var node_9 = $.first_child(fragment_5);
|
|
721
|
+
|
|
722
|
+
$.html(node_9, () => $.get(fallbackIcon));
|
|
723
|
+
$.append($$anchor, fragment_5);
|
|
724
|
+
};
|
|
725
|
+
|
|
726
|
+
var alternate = ($$anchor) => {
|
|
727
|
+
var i = root_10();
|
|
728
|
+
|
|
729
|
+
$.template_effect(() => $.set_class(i, 1, `icon icon-${$.get(item).icon}`, 'svelte-rnx3ie'));
|
|
730
|
+
$.append($$anchor, i);
|
|
731
|
+
};
|
|
526
732
|
|
|
527
|
-
|
|
733
|
+
$.if(node_8, ($$render) => {
|
|
734
|
+
if ($.get(fallbackIcon)) $$render(consequent_2); else $$render(alternate, false);
|
|
735
|
+
});
|
|
736
|
+
}
|
|
528
737
|
|
|
529
|
-
|
|
530
|
-
|
|
738
|
+
$.append($$anchor, fragment_4);
|
|
739
|
+
};
|
|
531
740
|
|
|
532
|
-
|
|
533
|
-
|
|
741
|
+
$.if(node_6, ($$render) => {
|
|
742
|
+
if ($.get(d)) $$render(consequent); else if ($.get(d_1)) $$render(consequent_1, 1); else $$render(alternate_1, false);
|
|
743
|
+
});
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
$.append($$anchor, fragment_2);
|
|
534
747
|
};
|
|
535
748
|
|
|
536
|
-
$.if(
|
|
537
|
-
if ($.get(
|
|
749
|
+
$.if(node_5, ($$render) => {
|
|
750
|
+
if ($.get(item).icon) $$render(consequent_3);
|
|
538
751
|
});
|
|
539
752
|
}
|
|
540
753
|
|
|
541
|
-
$.reset(
|
|
754
|
+
$.reset(a);
|
|
755
|
+
|
|
756
|
+
$.template_effect(
|
|
757
|
+
($0) => {
|
|
758
|
+
classes_1 = $.set_class(a, 1, 'item-toolbar__button svelte-rnx3ie', null, classes_1, $0);
|
|
759
|
+
$.set_attribute(a, 'href', $.get(item).disabled ? undefined : $.get(item).href);
|
|
760
|
+
$.set_attribute(a, 'target', $.get(item).target);
|
|
761
|
+
$.set_attribute(a, 'rel', $.get(item).rel);
|
|
762
|
+
$.set_attribute(a, 'aria-label', $.get(item).ariaLabel || $.get(item).label);
|
|
763
|
+
$.set_attribute(a, 'title', $.get(item).tooltip || $.get(item).label);
|
|
764
|
+
$.set_attribute(a, 'aria-disabled', $.get(item).disabled ? 'true' : undefined);
|
|
765
|
+
},
|
|
766
|
+
[
|
|
767
|
+
() => ({
|
|
768
|
+
'item-toolbar__button--active': isToolbarItemActive($.get(item))
|
|
769
|
+
})
|
|
770
|
+
]
|
|
771
|
+
);
|
|
772
|
+
|
|
773
|
+
$.delegated('click', a, (event) => {
|
|
774
|
+
if ($.get(item).disabled) {
|
|
775
|
+
event.preventDefault();
|
|
776
|
+
}
|
|
777
|
+
});
|
|
542
778
|
|
|
543
|
-
$.
|
|
544
|
-
|
|
545
|
-
'item-toolbar__button--active': $.get(activeToolState)[$.get(renderedTool).toolId] ?? $.get(renderedTool).button.active ?? false
|
|
546
|
-
});
|
|
779
|
+
$.append($$anchor, a);
|
|
780
|
+
};
|
|
547
781
|
|
|
548
|
-
|
|
549
|
-
$.set_attribute(button, 'aria-pressed', $.get(activeToolState)[$.get(renderedTool).toolId] ?? $.get(renderedTool).button.active ?? false);
|
|
550
|
-
$.set_attribute(button, 'title', $.get(renderedTool).button.tooltip || $.get(renderedTool).button.label);
|
|
551
|
-
button.disabled = $.get(renderedTool).button.disabled;
|
|
552
|
-
});
|
|
782
|
+
var d_2 = $.derived(() => isToolbarLinkItem($.get(item)));
|
|
553
783
|
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
784
|
+
var alternate_4 = ($$anchor) => {
|
|
785
|
+
var button_1 = root_11();
|
|
786
|
+
let classes_2;
|
|
787
|
+
var node_10 = $.child(button_1);
|
|
558
788
|
|
|
559
|
-
|
|
560
|
-
|
|
789
|
+
{
|
|
790
|
+
var consequent_8 = ($$anchor) => {
|
|
791
|
+
var fragment_6 = $.comment();
|
|
792
|
+
var node_11 = $.first_child(fragment_6);
|
|
561
793
|
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
794
|
+
{
|
|
795
|
+
var consequent_5 = ($$anchor) => {
|
|
796
|
+
var fragment_7 = $.comment();
|
|
797
|
+
var node_12 = $.first_child(fragment_7);
|
|
566
798
|
|
|
567
|
-
|
|
799
|
+
$.html(node_12, () => $.get(item).icon);
|
|
800
|
+
$.append($$anchor, fragment_7);
|
|
801
|
+
};
|
|
568
802
|
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
803
|
+
var d_3 = $.derived(() => isInlineSvgIcon($.get(item).icon));
|
|
804
|
+
|
|
805
|
+
var consequent_6 = ($$anchor) => {
|
|
806
|
+
var img_1 = root_14();
|
|
807
|
+
|
|
808
|
+
$.template_effect(() => $.set_attribute(img_1, 'src', $.get(item).icon));
|
|
809
|
+
$.append($$anchor, img_1);
|
|
810
|
+
};
|
|
811
|
+
|
|
812
|
+
var d_4 = $.derived(() => isExternalIconUrl($.get(item).icon));
|
|
813
|
+
|
|
814
|
+
var alternate_3 = ($$anchor) => {
|
|
815
|
+
const fallbackIcon = $.derived(() => getFallbackIconSvg($.get(item).icon));
|
|
816
|
+
var fragment_8 = $.comment();
|
|
817
|
+
var node_13 = $.first_child(fragment_8);
|
|
818
|
+
|
|
819
|
+
{
|
|
820
|
+
var consequent_7 = ($$anchor) => {
|
|
821
|
+
var fragment_9 = $.comment();
|
|
822
|
+
var node_14 = $.first_child(fragment_9);
|
|
823
|
+
|
|
824
|
+
$.html(node_14, () => $.get(fallbackIcon));
|
|
825
|
+
$.append($$anchor, fragment_9);
|
|
826
|
+
};
|
|
827
|
+
|
|
828
|
+
var alternate_2 = ($$anchor) => {
|
|
829
|
+
var i_1 = root_17();
|
|
830
|
+
|
|
831
|
+
$.template_effect(() => $.set_class(i_1, 1, `icon icon-${$.get(item).icon}`, 'svelte-rnx3ie'));
|
|
832
|
+
$.append($$anchor, i_1);
|
|
833
|
+
};
|
|
834
|
+
|
|
835
|
+
$.if(node_13, ($$render) => {
|
|
836
|
+
if ($.get(fallbackIcon)) $$render(consequent_7); else $$render(alternate_2, false);
|
|
837
|
+
});
|
|
838
|
+
}
|
|
572
839
|
|
|
573
|
-
|
|
574
|
-
|
|
840
|
+
$.append($$anchor, fragment_8);
|
|
841
|
+
};
|
|
842
|
+
|
|
843
|
+
$.if(node_11, ($$render) => {
|
|
844
|
+
if ($.get(d_3)) $$render(consequent_5); else if ($.get(d_4)) $$render(consequent_6, 1); else $$render(alternate_3, false);
|
|
845
|
+
});
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
$.append($$anchor, fragment_6);
|
|
849
|
+
};
|
|
850
|
+
|
|
851
|
+
$.if(node_10, ($$render) => {
|
|
852
|
+
if ($.get(item).icon) $$render(consequent_8);
|
|
853
|
+
});
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
$.reset(button_1);
|
|
857
|
+
|
|
858
|
+
$.template_effect(
|
|
859
|
+
($0, $1) => {
|
|
860
|
+
classes_2 = $.set_class(button_1, 1, 'item-toolbar__button svelte-rnx3ie', null, classes_2, $0);
|
|
861
|
+
$.set_attribute(button_1, 'aria-label', $.get(item).ariaLabel || $.get(item).label);
|
|
862
|
+
$.set_attribute(button_1, 'aria-pressed', $1);
|
|
863
|
+
$.set_attribute(button_1, 'title', $.get(item).tooltip || $.get(item).label);
|
|
864
|
+
button_1.disabled = $.get(item).disabled;
|
|
865
|
+
},
|
|
866
|
+
[
|
|
867
|
+
() => ({
|
|
868
|
+
'item-toolbar__button--active': isToolbarItemActive($.get(item))
|
|
869
|
+
}),
|
|
870
|
+
() => isToolbarItemActive($.get(item))
|
|
871
|
+
]
|
|
872
|
+
);
|
|
873
|
+
|
|
874
|
+
$.delegated('click', button_1, function (...$$args) {
|
|
875
|
+
$.get(item).onClick?.apply(this, $$args);
|
|
876
|
+
});
|
|
877
|
+
|
|
878
|
+
$.append($$anchor, button_1);
|
|
575
879
|
};
|
|
576
880
|
|
|
577
|
-
$.if(
|
|
578
|
-
if ($.get(
|
|
881
|
+
$.if(node_4, ($$render) => {
|
|
882
|
+
if ($.get(d_2)) $$render(consequent_4); else $$render(alternate_4, false);
|
|
579
883
|
});
|
|
580
884
|
}
|
|
581
885
|
|
|
582
886
|
$.append($$anchor, fragment_1);
|
|
583
887
|
});
|
|
584
888
|
|
|
889
|
+
var node_15 = $.sibling(node_3, 2);
|
|
890
|
+
|
|
891
|
+
$.each(node_15, 17, () => $.get(mountedElementsAfterButtons), (mountedElement) => `after-${mountedElement.tagName}-${mountedElement.getAttribute('tool-id') || ''}`, ($$anchor, mountedElement) => {
|
|
892
|
+
var span_1 = root_18();
|
|
893
|
+
|
|
894
|
+
$.action(span_1, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => $.get(mountedElement));
|
|
895
|
+
$.append($$anchor, span_1);
|
|
896
|
+
});
|
|
897
|
+
|
|
585
898
|
$.reset(div);
|
|
586
899
|
$.bind_this(div, ($$value) => $.set(toolbarRootElement, $$value), () => $.get(toolbarRootElement));
|
|
587
900
|
|
|
588
901
|
$.template_effect(() => {
|
|
589
|
-
$.set_class(div, 1, `item-toolbar ${className() ?? ''} item-toolbar--${size() ?? ''}`, 'svelte-rnx3ie'
|
|
902
|
+
classes = $.set_class(div, 1, `item-toolbar ${className() ?? ''} item-toolbar--${size() ?? ''}`, 'svelte-rnx3ie', classes, {
|
|
903
|
+
'item-toolbar--top': position() === 'top',
|
|
904
|
+
'item-toolbar--right': position() === 'right',
|
|
905
|
+
'item-toolbar--bottom': position() === 'bottom',
|
|
906
|
+
'item-toolbar--left': position() === 'left'
|
|
907
|
+
});
|
|
908
|
+
|
|
590
909
|
$.set_attribute(div, 'data-content-kind', $.get(effectiveContentKind));
|
|
910
|
+
$.set_attribute(div, 'data-level', $.get(effectiveLevel));
|
|
591
911
|
});
|
|
592
912
|
|
|
593
913
|
$.append($$anchor, div);
|
|
594
914
|
};
|
|
595
915
|
|
|
596
916
|
$.if(node_1, ($$render) => {
|
|
597
|
-
if (isBrowser) $$render(
|
|
917
|
+
if (isBrowser) $$render(consequent_9);
|
|
598
918
|
});
|
|
599
919
|
}
|
|
600
920
|
|
|
@@ -608,10 +928,14 @@ $.delegate(['click']);
|
|
|
608
928
|
customElements.define('pie-item-toolbar', $.create_custom_element(
|
|
609
929
|
ItemToolBar,
|
|
610
930
|
{
|
|
931
|
+
level: { attribute: 'level', type: 'String' },
|
|
932
|
+
scopeId: { attribute: 'scope-id', type: 'String' },
|
|
611
933
|
itemId: { attribute: 'item-id', type: 'String' },
|
|
934
|
+
sectionId: { attribute: 'section-id', type: 'String' },
|
|
612
935
|
catalogId: { attribute: 'catalog-id', type: 'String' },
|
|
613
936
|
tools: { attribute: 'tools', type: 'String' },
|
|
614
937
|
contentKind: { attribute: 'content-kind', type: 'String' },
|
|
938
|
+
position: { attribute: 'position', type: 'String' },
|
|
615
939
|
size: { attribute: 'size', type: 'String' },
|
|
616
940
|
language: { attribute: 'language', type: 'String' },
|
|
617
941
|
scopeElement: { type: 'Object' },
|
|
@@ -620,6 +944,7 @@ customElements.define('pie-item-toolbar', $.create_custom_element(
|
|
|
620
944
|
assessment: { type: 'Object' },
|
|
621
945
|
itemRef: { type: 'Object' },
|
|
622
946
|
item: { type: 'Object' },
|
|
947
|
+
hostButtons: { type: 'Object' },
|
|
623
948
|
class: {}
|
|
624
949
|
},
|
|
625
950
|
[],
|