xaml-ui 1.0.4 → 1.0.5

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { HostBinding, Input, Component, EventEmitter, HostListener, ContentChild, Output, TemplateRef, ViewChild, Optional, Directive, NgModule } from '@angular/core';
2
+ import { HostBinding, Input, Component, EventEmitter, HostListener, ContentChild, Output, ViewChild, TemplateRef, Optional, Directive, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
 
@@ -166,20 +166,20 @@ class ButtonComponent extends BorderComponent {
166
166
  return this.IsEnabled ? undefined : true;
167
167
  }
168
168
  get flyoutOpen() {
169
- return this._popup?.IsOpen;
169
+ return this._flyout?.IsOpen;
170
170
  }
171
171
  onHostPointerEvent(event) {
172
172
  if (!this.IsEnabled)
173
173
  return;
174
174
  this.Click.emit();
175
- this._popup?.Show();
175
+ this._flyout?.Show();
176
176
  }
177
177
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
178
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ButtonComponent, isStandalone: true, selector: "Button", inputs: { IsEnabled: "IsEnabled", HorizontalContentAlignment: "HorizontalContentAlignment", VerticalContentAlignment: "VerticalContentAlignment" }, outputs: { Click: "Click" }, host: { listeners: { "click": "onHostPointerEvent($event)" }, properties: { "style.align-content": "this.alignContent", "style.justify-content": "this.justifyContent", "attr.type": "this.type", "attr.disabled": "this.disabled", "class.disabled": "this.disabled", "class.popup-open": "this.flyoutOpen" } }, queries: [{ propertyName: "_popup", first: true, predicate: ["ButtonFlyout"], descendants: true }], usesInheritance: true, ngImport: i0, template: `<ng-content/>`, isInline: true, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.popup-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.popup-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.popup-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.popup-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.popup-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.popup-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n"] }); }
178
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ButtonComponent, isStandalone: true, selector: "Button", inputs: { IsEnabled: "IsEnabled", HorizontalContentAlignment: "HorizontalContentAlignment", VerticalContentAlignment: "VerticalContentAlignment" }, outputs: { Click: "Click" }, host: { listeners: { "click": "onHostPointerEvent($event)" }, properties: { "style.align-content": "this.alignContent", "style.justify-content": "this.justifyContent", "attr.type": "this.type", "attr.disabled": "this.disabled", "class.disabled": "this.disabled", "class.flyout-open": "this.flyoutOpen" } }, queries: [{ propertyName: "_flyout", first: true, predicate: ["xaml-flyout"], descendants: true }], usesInheritance: true, ngImport: i0, template: `<ng-content/>`, isInline: true, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n"] }); }
179
179
  }
180
180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ButtonComponent, decorators: [{
181
181
  type: Component,
182
- args: [{ selector: 'Button', template: `<ng-content/>`, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.popup-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.popup-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.popup-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.popup-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.popup-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.popup-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n"] }]
182
+ args: [{ selector: 'Button', template: `<ng-content/>`, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n"] }]
183
183
  }], propDecorators: { IsEnabled: [{
184
184
  type: Input
185
185
  }], Click: [{
@@ -205,10 +205,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
205
205
  args: ['class.disabled']
206
206
  }], flyoutOpen: [{
207
207
  type: HostBinding,
208
- args: ['class.popup-open']
209
- }], _popup: [{
208
+ args: ['class.flyout-open']
209
+ }], _flyout: [{
210
210
  type: ContentChild,
211
- args: ['ButtonFlyout']
211
+ args: ['xaml-flyout']
212
212
  }], onHostPointerEvent: [{
213
213
  type: HostListener,
214
214
  args: ['click', ['$event']]
@@ -255,6 +255,146 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
255
255
  type: Output
256
256
  }] } });
257
257
 
258
+ function colorToString(value) {
259
+ return '#' + value.toString(16).padStart(8, '0');
260
+ }
261
+ function stringToColor(value) {
262
+ return parseInt(value.replace('#', ''), 16);
263
+ }
264
+ function colorToRgb(value) {
265
+ return {
266
+ r: value >> 24 & 0xff,
267
+ g: value >> 16 & 0xff,
268
+ b: value >> 8 & 0xff,
269
+ a: value & 0xff
270
+ };
271
+ }
272
+ function rgbToHsl(rgb) {
273
+ const { r: r255, g: g255, b: b255, a: a255 } = rgb;
274
+ const r = r255 / 255;
275
+ const g = g255 / 255;
276
+ const b = b255 / 255;
277
+ const a = a255 / 255;
278
+ let max = Math.max(r, g, b);
279
+ let min = Math.min(r, g, b);
280
+ let h = (max + min) / 2;
281
+ let s = h;
282
+ let l = h;
283
+ if (max === min) {
284
+ // Achromatic
285
+ return { h: 0, s: 0, l: l * 100, a: a * 100 };
286
+ }
287
+ const d = max - min;
288
+ s = l >= 0.5 ? d / (2 - (max + min)) : d / (max + min);
289
+ switch (max) {
290
+ case r:
291
+ h = ((g - b) / d + 0) * 60;
292
+ break;
293
+ case g:
294
+ h = ((b - r) / d + 2) * 60;
295
+ break;
296
+ case b:
297
+ h = ((r - g) / d + 4) * 60;
298
+ break;
299
+ }
300
+ return { h, s: s * 100, l: l * 100, a: a * 100 };
301
+ }
302
+
303
+ class ColorPickerComponent extends FrameworkElementComponent {
304
+ constructor() {
305
+ super(...arguments);
306
+ this._color = 0xffffffff;
307
+ this.ColorChange = new EventEmitter();
308
+ }
309
+ get Color() {
310
+ return this._color;
311
+ }
312
+ set Color(value) {
313
+ this.setColor(value);
314
+ this.updateSelectorPosition();
315
+ }
316
+ setColor(value) {
317
+ if (this._color === value)
318
+ return;
319
+ this._color = value;
320
+ this.ColorChange.emit(value);
321
+ }
322
+ ngAfterViewInit() {
323
+ let canvas = this._canvas.nativeElement;
324
+ canvas.width = parseInt(this.Width ?? '300');
325
+ canvas.height = parseInt(this.Height ?? '300');
326
+ let context = this._context = canvas.getContext('2d', { willReadFrequently: true });
327
+ let radius = canvas.width / 2;
328
+ // Draw hue circle
329
+ for (let angle = 0; angle < 360; angle++) {
330
+ let startAngle = (angle - 1) * (Math.PI / 180);
331
+ let endAngle = (angle + 1) * (Math.PI / 180);
332
+ context.beginPath();
333
+ context.moveTo(radius, radius);
334
+ context.arc(radius, radius, radius * 2, startAngle, endAngle);
335
+ context.closePath();
336
+ context.fillStyle = `hsl(${angle}, 100%, 50%)`;
337
+ context.fill();
338
+ }
339
+ // Add radial gradient for saturation
340
+ let gradient = context.createRadialGradient(radius, radius, 0, radius, radius, radius);
341
+ gradient.addColorStop(0, 'white');
342
+ gradient.addColorStop(1, 'transparent');
343
+ context.fillStyle = gradient;
344
+ context.fillRect(0, 0, canvas.width, canvas.height);
345
+ // Position sample
346
+ this.updateSelectorPosition();
347
+ }
348
+ onPointerDown(event) {
349
+ this._canvas.nativeElement.setPointerCapture(event.pointerId);
350
+ this.onPointerMove(event);
351
+ }
352
+ onPointerMove(event) {
353
+ if (!this._canvas.nativeElement.hasPointerCapture(event.pointerId))
354
+ return;
355
+ let radius = this._canvas.nativeElement.width / 2;
356
+ let rawX = event.offsetX - radius;
357
+ let rawY = event.offsetY - radius;
358
+ let length = Math.sqrt(rawX * rawX + rawY * rawY);
359
+ let scale = length < radius ? 1 : radius / Math.sqrt(rawX * rawX + rawY * rawY);
360
+ let sampleX = radius + rawX * scale;
361
+ let sampleY = radius + rawY * scale;
362
+ this._selector.nativeElement.style.left = sampleX + 'px';
363
+ this._selector.nativeElement.style.top = sampleY + 'px';
364
+ let imageData = this._context.getImageData(sampleX, sampleY, 1, 1).data;
365
+ let [r, g, b] = imageData;
366
+ let color = ((r << 24) + (g << 16) + (b << 8) + 0xff) >>> 0;
367
+ this.setColor(color);
368
+ }
369
+ updateSelectorPosition() {
370
+ let rgb = colorToRgb(this.Color);
371
+ let hsl = rgbToHsl(rgb);
372
+ let radius = this._canvas.nativeElement.width / 2;
373
+ let angle = hsl.h / 180 * Math.PI;
374
+ let length = hsl.s / 100 * radius;
375
+ let x = radius + Math.cos(angle) * length;
376
+ let y = radius + Math.sin(angle) * length;
377
+ this._selector.nativeElement.style.left = x + 'px';
378
+ this._selector.nativeElement.style.top = y + 'px';
379
+ }
380
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ColorPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
381
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ColorPickerComponent, isStandalone: true, selector: "ColorPicker", inputs: { Color: "Color" }, outputs: { ColorChange: "ColorChange" }, viewQueries: [{ propertyName: "_canvas", first: true, predicate: ["canvas"], descendants: true }, { propertyName: "_selector", first: true, predicate: ["selector"], descendants: true }], usesInheritance: true, ngImport: i0, template: `<canvas #canvas (pointerdown)="onPointerDown($event)" (pointermove)="onPointerMove($event)"></canvas><div #selector class="selector"></div>`, isInline: true, styles: [":host{position:relative}canvas{clip-path:circle(50%);position:relative}.selector{position:absolute;transform:translate(-50%,-50%);width:10px;height:10px;border-color:#fff;border-width:2px;border-style:solid;border-radius:10px;mix-blend-mode:difference}\n"] }); }
382
+ }
383
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ColorPickerComponent, decorators: [{
384
+ type: Component,
385
+ args: [{ selector: 'ColorPicker', template: `<canvas #canvas (pointerdown)="onPointerDown($event)" (pointermove)="onPointerMove($event)"></canvas><div #selector class="selector"></div>`, styles: [":host{position:relative}canvas{clip-path:circle(50%);position:relative}.selector{position:absolute;transform:translate(-50%,-50%);width:10px;height:10px;border-color:#fff;border-width:2px;border-style:solid;border-radius:10px;mix-blend-mode:difference}\n"] }]
386
+ }], propDecorators: { Color: [{
387
+ type: Input
388
+ }], ColorChange: [{
389
+ type: Output
390
+ }], _canvas: [{
391
+ type: ViewChild,
392
+ args: ['canvas']
393
+ }], _selector: [{
394
+ type: ViewChild,
395
+ args: ['selector']
396
+ }] } });
397
+
258
398
  const SelectorItemTemplate = `<ng-container *ngIf="ItemTemplate">
259
399
  <ng-container *ngTemplateOutlet="ItemTemplate; context: { $implicit: item }"/>
260
400
  </ng-container>
@@ -645,17 +785,16 @@ class StackPanelComponent extends PanelComponent {
645
785
  constructor() {
646
786
  super(...arguments);
647
787
  this.Orientation = 'Vertical';
648
- this.Spacing = 0;
649
788
  }
650
- get flexDirection() {
651
- return this.Orientation === 'Horizontal' ? 'row' : 'column';
789
+ get gridAutoColumns() {
790
+ return this.Orientation === 'Horizontal' ? 'column' : 'row';
652
791
  }
653
792
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: StackPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
654
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: StackPanelComponent, isStandalone: true, selector: "StackPanel", inputs: { Orientation: "Orientation", Spacing: "Spacing" }, host: { properties: { "style.gap": "this.Spacing", "style.flex-direction": "this.flexDirection" } }, usesInheritance: true, ngImport: i0, template: `<ng-content/>`, isInline: true, styles: [":host{display:flex;position:relative}\n"] }); }
793
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: StackPanelComponent, isStandalone: true, selector: "StackPanel", inputs: { Orientation: "Orientation", Spacing: "Spacing" }, host: { properties: { "style.gap": "this.Spacing", "style.grid-auto-flow": "this.gridAutoColumns" } }, usesInheritance: true, ngImport: i0, template: `<ng-content/>`, isInline: true, styles: [":host{display:grid;position:relative}\n"] }); }
655
794
  }
656
795
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: StackPanelComponent, decorators: [{
657
796
  type: Component,
658
- args: [{ selector: 'StackPanel', template: `<ng-content/>`, styles: [":host{display:flex;position:relative}\n"] }]
797
+ args: [{ selector: 'StackPanel', template: `<ng-content/>`, styles: [":host{display:grid;position:relative}\n"] }]
659
798
  }], propDecorators: { Orientation: [{
660
799
  type: Input
661
800
  }], Spacing: [{
@@ -663,9 +802,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
663
802
  }, {
664
803
  type: HostBinding,
665
804
  args: ['style.gap']
666
- }], flexDirection: [{
805
+ }], gridAutoColumns: [{
667
806
  type: HostBinding,
668
- args: ['style.flex-direction']
807
+ args: ['style.grid-auto-flow']
669
808
  }] } });
670
809
 
671
810
  class ListViewComponent extends SelectorComponent {
@@ -686,6 +825,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
686
825
 
687
826
  class PopupComponent {
688
827
  constructor() {
828
+ this._title = '';
689
829
  this.isRendered = false;
690
830
  this._isOpen = false;
691
831
  this.IsOpenChange = new EventEmitter();
@@ -721,17 +861,17 @@ class PopupComponent {
721
861
  this.IsOpen = false;
722
862
  }
723
863
  get containerClass() {
724
- return this.IsOpen ? 'popup-open' : undefined;
864
+ return this.IsOpen ? 'flyout-open' : undefined;
725
865
  }
726
866
  onBackdropClick(event) {
727
867
  this.Hide();
728
- event.stopPropagation();
868
+ event.stopImmediatePropagation();
729
869
  }
730
870
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: PopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
731
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: PopupComponent, isStandalone: true, selector: "Popup", inputs: { IsOpen: "IsOpen", VerticalOffset: "VerticalOffset", HorizontalOffset: "HorizontalOffset" }, outputs: { IsOpenChange: "IsOpenChange" }, host: { classAttribute: "popup" }, viewQueries: [{ propertyName: "_container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: `<div class="popup-backdrop" (click)="onBackdropClick($event)" (contextmenu)="onBackdropClick($event)" *ngIf="IsOpen"></div>
871
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: PopupComponent, isStandalone: true, selector: "Popup", inputs: { IsOpen: "IsOpen", VerticalOffset: "VerticalOffset", HorizontalOffset: "HorizontalOffset" }, outputs: { IsOpenChange: "IsOpenChange" }, host: { properties: { "attr.title": "this._title" }, classAttribute: "popup" }, providers: [{ provide: 'xaml-flyout', useExisting: PopupComponent }], viewQueries: [{ propertyName: "_container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: `<div class="popup-backdrop" (click)="onBackdropClick($event)" (contextmenu)="onBackdropClick($event)" *ngIf="IsOpen"></div>
732
872
  <div #container class="popup-container" [ngClass]="containerClass">
733
873
  <div class="popup-content" *ngIf="isRendered"><ng-content/></div>
734
- </div>`, isInline: true, styles: [":host{position:relative}:host{z-index:900}.popup-container{background-color:transparent;display:grid;padding:0;margin:0;border:0;position:absolute;pointer-events:none;z-index:1000}.popup-container>.popup-content{display:grid;padding:16px;border-width:1px;border-style:solid;border-radius:var(--OverlayCornerRadius);opacity:0;transition:opacity var(--ControlNormalAnimationDuration);-webkit-backdrop-filter:var(--AcrylicBlur);backdrop-filter:var(--AcrylicBlur);box-shadow:0 0 15px #0000001a;border-color:var(--SurfaceStrokeColorFlyout);background-color:var(--AcrylicInAppFillColorDefault)}.popup-container.popup-open>.popup-content{opacity:1;pointer-events:all}.popup-backdrop{position:fixed;inset:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
874
+ </div>`, isInline: true, styles: [":host{position:relative}:host{position:static}.popup-container{background-color:transparent;display:grid;padding:0;margin:0;border:0;pointer-events:none;position:absolute;z-index:1000}.popup-container>.popup-content{display:grid;padding:16px;border-width:1px;border-style:solid;border-radius:var(--OverlayCornerRadius);opacity:0;transition:opacity var(--ControlNormalAnimationDuration);-webkit-backdrop-filter:var(--AcrylicBlur);backdrop-filter:var(--AcrylicBlur);box-shadow:0 0 15px #00000080;border-color:var(--SurfaceStrokeColorFlyout);background-color:var(--AcrylicInAppFillColorDefault)}.popup-container.flyout-open>.popup-content{opacity:1;pointer-events:all}.popup-backdrop{z-index:900;position:fixed;inset:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
735
875
  }
736
876
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: PopupComponent, decorators: [{
737
877
  type: Component,
@@ -739,9 +879,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
739
879
  <div #container class="popup-container" [ngClass]="containerClass">
740
880
  <div class="popup-content" *ngIf="isRendered"><ng-content/></div>
741
881
  </div>`, host: {
742
- class: 'popup'
743
- }, styles: [":host{position:relative}:host{z-index:900}.popup-container{background-color:transparent;display:grid;padding:0;margin:0;border:0;position:absolute;pointer-events:none;z-index:1000}.popup-container>.popup-content{display:grid;padding:16px;border-width:1px;border-style:solid;border-radius:var(--OverlayCornerRadius);opacity:0;transition:opacity var(--ControlNormalAnimationDuration);-webkit-backdrop-filter:var(--AcrylicBlur);backdrop-filter:var(--AcrylicBlur);box-shadow:0 0 15px #0000001a;border-color:var(--SurfaceStrokeColorFlyout);background-color:var(--AcrylicInAppFillColorDefault)}.popup-container.popup-open>.popup-content{opacity:1;pointer-events:all}.popup-backdrop{position:fixed;inset:0}\n"] }]
744
- }], propDecorators: { IsOpen: [{
882
+ 'class': 'popup',
883
+ }, providers: [{ provide: 'xaml-flyout', useExisting: PopupComponent }], styles: [":host{position:relative}:host{position:static}.popup-container{background-color:transparent;display:grid;padding:0;margin:0;border:0;pointer-events:none;position:absolute;z-index:1000}.popup-container>.popup-content{display:grid;padding:16px;border-width:1px;border-style:solid;border-radius:var(--OverlayCornerRadius);opacity:0;transition:opacity var(--ControlNormalAnimationDuration);-webkit-backdrop-filter:var(--AcrylicBlur);backdrop-filter:var(--AcrylicBlur);box-shadow:0 0 15px #00000080;border-color:var(--SurfaceStrokeColorFlyout);background-color:var(--AcrylicInAppFillColorDefault)}.popup-container.flyout-open>.popup-content{opacity:1;pointer-events:all}.popup-backdrop{z-index:900;position:fixed;inset:0}\n"] }]
884
+ }], propDecorators: { _title: [{
885
+ type: HostBinding,
886
+ args: ['attr.title']
887
+ }], IsOpen: [{
745
888
  type: Input
746
889
  }], IsOpenChange: [{
747
890
  type: Output
@@ -756,11 +899,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
756
899
 
757
900
  class DropDownButtonComponent extends ButtonComponent {
758
901
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: DropDownButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
759
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: DropDownButtonComponent, isStandalone: true, selector: "DropDownButton", usesInheritance: true, ngImport: i0, template: `<div class="drop-down-glyph">&#xE70D;</div><ng-content/>`, isInline: true, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.popup-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.popup-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.popup-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.popup-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.popup-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.popup-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n", ".drop-down-glyph{display:grid;font-family:var(--SymbolFontFamily);font-size:8pt;position:absolute;right:12px;top:0;bottom:0;align-content:center;transition:transform var(--ControlNormalAnimationDuration)}:host:active:not(.popup-open):not(.disabled) .drop-down-glyph{transform:translateY(3px)}\n"] }); }
902
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: DropDownButtonComponent, isStandalone: true, selector: "DropDownButton", usesInheritance: true, ngImport: i0, template: `<div class="drop-down-glyph">&#xE70D;</div><ng-content/>`, isInline: true, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n", ".drop-down-glyph{display:grid;font-family:var(--SymbolFontFamily);font-size:8pt;position:absolute;right:12px;top:0;bottom:0;align-content:center;transition:transform var(--ControlNormalAnimationDuration)}:host:active:not(.flyout-open):not(.disabled) .drop-down-glyph{transform:translateY(3px)}\n"] }); }
760
903
  }
761
904
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: DropDownButtonComponent, decorators: [{
762
905
  type: Component,
763
- args: [{ selector: 'DropDownButton', template: `<div class="drop-down-glyph">&#xE70D;</div><ng-content/>`, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.popup-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.popup-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.popup-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.popup-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.popup-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.popup-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n", ".drop-down-glyph{display:grid;font-family:var(--SymbolFontFamily);font-size:8pt;position:absolute;right:12px;top:0;bottom:0;align-content:center;transition:transform var(--ControlNormalAnimationDuration)}:host:active:not(.popup-open):not(.disabled) .drop-down-glyph{transform:translateY(3px)}\n"] }]
906
+ args: [{ selector: 'DropDownButton', template: `<div class="drop-down-glyph">&#xE70D;</div><ng-content/>`, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n", ".drop-down-glyph{display:grid;font-family:var(--SymbolFontFamily);font-size:8pt;position:absolute;right:12px;top:0;bottom:0;align-content:center;transition:transform var(--ControlNormalAnimationDuration)}:host:active:not(.flyout-open):not(.disabled) .drop-down-glyph{transform:translateY(3px)}\n"] }]
764
907
  }] });
765
908
 
766
909
  class ComboBoxComponent extends SelectorComponent {
@@ -906,6 +1049,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
906
1049
  type: Output
907
1050
  }] } });
908
1051
 
1052
+ class RepeatButtonComponent extends ButtonComponent {
1053
+ constructor() {
1054
+ super(...arguments);
1055
+ this.Delay = 250;
1056
+ this.Interval = 250;
1057
+ }
1058
+ onPointerDown(event) {
1059
+ if (!this.IsEnabled)
1060
+ return;
1061
+ event.target.setPointerCapture(event.pointerId);
1062
+ this.Click.emit();
1063
+ this._delayTimer = setTimeout(() => {
1064
+ this.Click.emit();
1065
+ this._intervalTimer = setInterval(() => {
1066
+ this.Click.emit();
1067
+ }, this.Interval);
1068
+ }, this.Delay);
1069
+ }
1070
+ onPointerUp() {
1071
+ if (this._delayTimer !== undefined)
1072
+ clearTimeout(this._delayTimer);
1073
+ if (this._intervalTimer !== undefined)
1074
+ clearInterval(this._intervalTimer);
1075
+ }
1076
+ onHostPointerEvent(event) {
1077
+ //Disable pointer event handling on the base button
1078
+ }
1079
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: RepeatButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1080
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: RepeatButtonComponent, isStandalone: true, selector: "RepeatButton", inputs: { Delay: "Delay", Interval: "Interval" }, host: { listeners: { "pointerdown": "onPointerDown($event)", "pointerup": "onPointerUp($event)" } }, usesInheritance: true, ngImport: i0, template: `<ng-content/>`, isInline: true, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n"] }); }
1081
+ }
1082
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: RepeatButtonComponent, decorators: [{
1083
+ type: Component,
1084
+ args: [{ selector: 'RepeatButton', template: `<ng-content/>`, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n"] }]
1085
+ }], propDecorators: { Delay: [{
1086
+ type: Input
1087
+ }], Interval: [{
1088
+ type: Input
1089
+ }], onPointerDown: [{
1090
+ type: HostListener,
1091
+ args: ['pointerdown', ['$event']]
1092
+ }], onPointerUp: [{
1093
+ type: HostListener,
1094
+ args: ['pointerup', ['$event']]
1095
+ }] } });
1096
+
909
1097
  class SliderComponent extends FrameworkElementComponent {
910
1098
  constructor() {
911
1099
  super(...arguments);
@@ -957,446 +1145,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
957
1145
  type: Input
958
1146
  }] } });
959
1147
 
960
- class ToggleButtonComponent extends ButtonComponent {
1148
+ class GridComponent extends PanelComponent {
961
1149
  constructor() {
962
1150
  super(...arguments);
963
- this.IsChecked = false;
964
- this.IsCheckedChange = new EventEmitter();
1151
+ this.Orientation = 'Horizontal';
965
1152
  }
966
- onPointerUp(event) {
967
- if (!this.IsEnabled)
968
- return;
969
- this.IsChecked = !this.IsChecked;
970
- this.IsCheckedChange.emit(this.IsChecked);
1153
+ get gridAutoFlow() {
1154
+ return this.Orientation == 'Horizontal' ? 'row' : 'column';
971
1155
  }
972
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ToggleButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
973
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ToggleButtonComponent, isStandalone: true, selector: "ToggleButton", inputs: { IsChecked: "IsChecked" }, outputs: { IsCheckedChange: "IsCheckedChange" }, host: { listeners: { "pointerup": "onPointerUp($event)" }, properties: { "class.checked": "this.IsChecked" } }, usesInheritance: true, ngImport: i0, template: `<ng-content/>`, isInline: true, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.popup-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.popup-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.popup-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.popup-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.popup-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.popup-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n"] }); }
1156
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1157
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: GridComponent, isStandalone: false, selector: "Grid", inputs: { ColumnDefinitions: "ColumnDefinitions", RowDefinitions: "RowDefinitions", ColumnSpacing: "ColumnSpacing", RowSpacing: "RowSpacing", Orientation: "Orientation" }, host: { properties: { "style.grid-template-columns": "this.ColumnDefinitions", "style.grid-template-rows": "this.RowDefinitions", "style.column-gap": "this.ColumnSpacing", "style.row-gap": "this.RowSpacing", "style.grid-auto-flow": "this.gridAutoFlow" } }, usesInheritance: true, ngImport: i0, template: `<ng-content/>`, isInline: true, styles: [":host{display:grid;position:relative}\n"] }); }
974
1158
  }
975
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ToggleButtonComponent, decorators: [{
1159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GridComponent, decorators: [{
976
1160
  type: Component,
977
- args: [{ selector: 'ToggleButton', template: `<ng-content/>`, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.popup-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.popup-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.popup-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.popup-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.popup-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.popup-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.popup-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n"] }]
978
- }], propDecorators: { IsChecked: [{
1161
+ args: [{ selector: 'Grid', template: `<ng-content/>`, standalone: false, styles: [":host{display:grid;position:relative}\n"] }]
1162
+ }], propDecorators: { ColumnDefinitions: [{
979
1163
  type: Input
980
1164
  }, {
981
1165
  type: HostBinding,
982
- args: ['class.checked']
983
- }], IsCheckedChange: [{
984
- type: Output
985
- }], onPointerUp: [{
986
- type: HostListener,
987
- args: ['pointerup', ['$event']]
1166
+ args: ['style.grid-template-columns']
1167
+ }], RowDefinitions: [{
1168
+ type: Input
1169
+ }, {
1170
+ type: HostBinding,
1171
+ args: ['style.grid-template-rows']
1172
+ }], ColumnSpacing: [{
1173
+ type: Input
1174
+ }, {
1175
+ type: HostBinding,
1176
+ args: ['style.column-gap']
1177
+ }], RowSpacing: [{
1178
+ type: Input
1179
+ }, {
1180
+ type: HostBinding,
1181
+ args: ['style.row-gap']
1182
+ }], Orientation: [{
1183
+ type: Input
1184
+ }], gridAutoFlow: [{
1185
+ type: HostBinding,
1186
+ args: ['style.grid-auto-flow']
988
1187
  }] } });
989
-
990
- class ToggleSwitchComponent extends CheckBoxComponent {
991
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ToggleSwitchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
992
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ToggleSwitchComponent, isStandalone: true, selector: "ToggleSwitch", usesInheritance: true, ngImport: i0, template: `<label class="container">
993
- <input type="checkbox" [checked]="IsChecked" (change)="onChange($event)" [disabled]="!IsEnabled">
994
- <div class="slider">
995
- <div class="thumb"></div>
996
- </div>
997
- <div class="content"><ng-content/></div>
998
- </label>`, isInline: true, styles: [":host{position:relative}.container{display:grid;grid-template-columns:auto 1fr;column-gap:6px}input{display:none}input:not(:checked):not(:active):not(:disabled)+.slider:not(:hover){background-color:var(--ControlAltFillColorSecondary);border-color:var(--ControlStrongStrokeColorDefault)}input:not(:checked):not(:active):not(:disabled)+.slider:not(:hover)>.thumb{background-color:var(--TextFillColorSecondary)}input:not(:checked):not(:active):not(:disabled)+.slider:hover{background-color:var(--ControlAltFillColorTertiary);border-color:var(--ControlStrongStrokeColorDefault)}input:not(:checked):not(:active):not(:disabled)+.slider:hover>.thumb{background-color:var(--TextFillColorSecondary)}input:not(:checked):active:not(:disabled)+.slider{background-color:var(--ControlAltFillColorQuarternary);border-color:var(--ControlStrongStrokeColorDefault)}input:not(:checked):active:not(:disabled)+.slider>.thumb{background-color:var(--TextFillColorSecondary)}input:not(:checked):disabled+.slider{background-color:var(--ControlAltFillColorDisabled);border-color:var(--ControlStrongStrokeColorDisabled)}input:not(:checked):disabled+.slider>.thumb{background-color:var(--TextFillColorDisabled)}input:checked:not(:active):not(:disabled)+.slider:not(:hover){background-color:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault)}input:checked:not(:active):not(:disabled)+.slider:not(:hover)>.thumb{background-color:var(--TextOnAccentFillColorPrimary)}input:checked:not(:active):not(:disabled)+.slider:hover{background-color:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary)}input:checked:not(:active):not(:disabled)+.slider:hover>.thumb{background-color:var(--TextOnAccentFillColorPrimary)}input:checked:active:not(:disabled)+.slider{background-color:var(--AccentFillColorTertiary);border-color:var(--AccentFillColorTertiary)}input:checked:active:not(:disabled)+.slider>.thumb{background-color:var(--TextOnAccentFillColorPrimary)}input:checked:disabled+.slider{background-color:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled)}input:checked:disabled+.slider>.thumb{background-color:var(--TextOnAccentFillColorDisabled)}input:checked+.slider>.thumb{transform:translate(22px)}input:not(:disabled):active+.slider>.thumb{width:17px;height:14px;transform:translate(-1px)}input:not(:disabled):not(:active):hover+.slider>.thumb{width:14px;height:14px;transform:translate(-1px)}input:not(:disabled):not(:active):checked:hover+.slider>.thumb{transform:translate(21px)}input:not(:disabled):checked:active+.slider>.thumb{transform:translate(18px);width:17px;height:14px}.slider{display:grid;width:40px;height:18px;border-radius:10px;border-style:solid;border-width:1.5px;transition:background-color var(--ControlNormalAnimationDuration);background-color:var(--ControlAltFillColorSecondary)}.thumb{display:grid;width:12px;height:12px;border-radius:7px;align-self:center;margin:0 3px;transition:transform var(--ControlNormalAnimationDuration);transition:width var(--ControlFastAnimationDuration);transition:margin-left var(--ControlFastAnimationDuration)}\n"] }); }
999
- }
1000
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ToggleSwitchComponent, decorators: [{
1001
- type: Component,
1002
- args: [{ selector: 'ToggleSwitch', template: `<label class="container">
1003
- <input type="checkbox" [checked]="IsChecked" (change)="onChange($event)" [disabled]="!IsEnabled">
1004
- <div class="slider">
1005
- <div class="thumb"></div>
1006
- </div>
1007
- <div class="content"><ng-content/></div>
1008
- </label>`, styles: [":host{position:relative}.container{display:grid;grid-template-columns:auto 1fr;column-gap:6px}input{display:none}input:not(:checked):not(:active):not(:disabled)+.slider:not(:hover){background-color:var(--ControlAltFillColorSecondary);border-color:var(--ControlStrongStrokeColorDefault)}input:not(:checked):not(:active):not(:disabled)+.slider:not(:hover)>.thumb{background-color:var(--TextFillColorSecondary)}input:not(:checked):not(:active):not(:disabled)+.slider:hover{background-color:var(--ControlAltFillColorTertiary);border-color:var(--ControlStrongStrokeColorDefault)}input:not(:checked):not(:active):not(:disabled)+.slider:hover>.thumb{background-color:var(--TextFillColorSecondary)}input:not(:checked):active:not(:disabled)+.slider{background-color:var(--ControlAltFillColorQuarternary);border-color:var(--ControlStrongStrokeColorDefault)}input:not(:checked):active:not(:disabled)+.slider>.thumb{background-color:var(--TextFillColorSecondary)}input:not(:checked):disabled+.slider{background-color:var(--ControlAltFillColorDisabled);border-color:var(--ControlStrongStrokeColorDisabled)}input:not(:checked):disabled+.slider>.thumb{background-color:var(--TextFillColorDisabled)}input:checked:not(:active):not(:disabled)+.slider:not(:hover){background-color:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault)}input:checked:not(:active):not(:disabled)+.slider:not(:hover)>.thumb{background-color:var(--TextOnAccentFillColorPrimary)}input:checked:not(:active):not(:disabled)+.slider:hover{background-color:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary)}input:checked:not(:active):not(:disabled)+.slider:hover>.thumb{background-color:var(--TextOnAccentFillColorPrimary)}input:checked:active:not(:disabled)+.slider{background-color:var(--AccentFillColorTertiary);border-color:var(--AccentFillColorTertiary)}input:checked:active:not(:disabled)+.slider>.thumb{background-color:var(--TextOnAccentFillColorPrimary)}input:checked:disabled+.slider{background-color:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled)}input:checked:disabled+.slider>.thumb{background-color:var(--TextOnAccentFillColorDisabled)}input:checked+.slider>.thumb{transform:translate(22px)}input:not(:disabled):active+.slider>.thumb{width:17px;height:14px;transform:translate(-1px)}input:not(:disabled):not(:active):hover+.slider>.thumb{width:14px;height:14px;transform:translate(-1px)}input:not(:disabled):not(:active):checked:hover+.slider>.thumb{transform:translate(21px)}input:not(:disabled):checked:active+.slider>.thumb{transform:translate(18px);width:17px;height:14px}.slider{display:grid;width:40px;height:18px;border-radius:10px;border-style:solid;border-width:1.5px;transition:background-color var(--ControlNormalAnimationDuration);background-color:var(--ControlAltFillColorSecondary)}.thumb{display:grid;width:12px;height:12px;border-radius:7px;align-self:center;margin:0 3px;transition:transform var(--ControlNormalAnimationDuration);transition:width var(--ControlFastAnimationDuration);transition:margin-left var(--ControlFastAnimationDuration)}\n"] }]
1009
- }] });
1010
-
1011
- class ListBoxComponent extends SelectorComponent {
1012
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ListBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1013
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ListBoxComponent, isStandalone: true, selector: "ListBox", usesInheritance: true, ngImport: i0, template: "<div *ngFor=\"let item of ItemSource; index as index; trackBy: getValue\" class=\"item\" [ngClass]=\"{'selected': index == SelectedIndex}\" (click)=\"onItemClick($event, index, item)\" [id]=\"'xaml-selector-'+_id+'-item-'+index\" [ngStyle]=\"{'align-content': alignContent, 'justify-content': justifyContent}\">\n <ng-container *ngIf=\"ItemTemplate\">\n <ng-container *ngTemplateOutlet=\"ItemTemplate; context: { $implicit: item }\"/>\n </ng-container>\n <ng-container *ngIf=\"!ItemTemplate\">{{ DisplayMemberPath ? item[DisplayMemberPath] : item }}</ng-container>\n </div>", isInline: true, styles: [":host{position:relative}:host{display:flex;flex-direction:column;background-color:var(--SystemChromeMediumLowColor)}:host .item{display:grid;padding:12px;margin:0}:host:not(.disabled) .item:not(:hover):not(:active):not(.selected){color:var(--TextFillColorPrimary)}:host:not(.disabled) .item:hover:not(.active):not(.selected){background-color:var(--SubtleFillColorSecondary)}:host:not(.disabled) .item:active:not(.selected){background-color:var(--SubtleFillColorTertiary)}:host:not(.disabled) .item:not(:hover):not(:active).selected{background-color:var(--SystemControlHighlightListAccentLow)}:host:not(.disabled) .item:hover:not(:active).selected{background-color:var(--SystemControlHighlightListAccentMedium)}:host:not(.disabled) .item:active.selected{background-color:var(--SystemControlHighlightListAccentHigh)}:host.disabled .item:not(.selected){color:var(--TextFillColorDisabled)}:host.disabled .item.selected{background-color:var(--SubtleFillColorSecondary);color:var(--AccentFillColorDisabled)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1188
+ class GridProperty {
1014
1189
  }
1015
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ListBoxComponent, decorators: [{
1016
- type: Component,
1017
- args: [{ selector: 'ListBox', imports: [CommonModule], template: `<div *ngFor="let item of ItemSource; index as index; trackBy: getValue" class="item" [ngClass]="{'selected': index == SelectedIndex}" (click)="onItemClick($event, index, item)" [id]="'xaml-selector-'+_id+'-item-'+index" [ngStyle]="{'align-content': alignContent, 'justify-content': justifyContent}">
1018
- ${SelectorItemTemplate}
1019
- </div>`, styles: [":host{position:relative}:host{display:flex;flex-direction:column;background-color:var(--SystemChromeMediumLowColor)}:host .item{display:grid;padding:12px;margin:0}:host:not(.disabled) .item:not(:hover):not(:active):not(.selected){color:var(--TextFillColorPrimary)}:host:not(.disabled) .item:hover:not(.active):not(.selected){background-color:var(--SubtleFillColorSecondary)}:host:not(.disabled) .item:active:not(.selected){background-color:var(--SubtleFillColorTertiary)}:host:not(.disabled) .item:not(:hover):not(:active).selected{background-color:var(--SystemControlHighlightListAccentLow)}:host:not(.disabled) .item:hover:not(:active).selected{background-color:var(--SystemControlHighlightListAccentMedium)}:host:not(.disabled) .item:active.selected{background-color:var(--SystemControlHighlightListAccentHigh)}:host.disabled .item:not(.selected){color:var(--TextFillColorDisabled)}:host.disabled .item.selected{background-color:var(--SubtleFillColorSecondary);color:var(--AccentFillColorDisabled)}\n"] }]
1020
- }] });
1021
-
1022
- class FlyoutComponent extends PopupComponent {
1190
+ class GridDirective {
1023
1191
  constructor() {
1024
- super(...arguments);
1025
- this.Placement = 'Top';
1192
+ this.Grid = new GridProperty();
1026
1193
  }
1027
- get contentStyle() {
1028
- let alignSelf;
1029
- let justifySelf;
1030
- switch (this.Placement) {
1031
- case 'Top':
1032
- case 'Bottom':
1033
- justifySelf = 'center';
1034
- break;
1035
- case 'TopEdgeAlignedLeft':
1036
- case 'BottomEdgeAlignedLeft':
1037
- justifySelf = 'left';
1038
- break;
1039
- case 'TopEdgeAlignedRight':
1040
- case 'BottomEdgeAlignedRight':
1041
- justifySelf = 'right';
1042
- break;
1043
- case 'Left':
1044
- case 'Right':
1045
- alignSelf = 'center';
1046
- break;
1047
- case 'LeftEdgeAlignedTop':
1048
- case 'RightEdgeAlignedTop':
1049
- alignSelf = 'flex-start';
1050
- break;
1051
- case 'LeftEdgeAlignedBottom':
1052
- case 'RightEdgeAlignedBottom':
1053
- alignSelf = 'flex-end';
1054
- break;
1055
- }
1056
- return {
1057
- 'align-self': alignSelf,
1058
- 'justify-self': justifySelf,
1059
- };
1060
- }
1061
- get containerStyle() {
1062
- let top = '0';
1063
- let left = '0';
1064
- let right = '0';
1065
- let bottom = '0';
1066
- let transform;
1067
- function translate(x, y, isOpen) {
1068
- let result = '';
1069
- if (x !== 0) {
1070
- result += `translateX(${x > 0 ? '' : '-'}100%)`;
1071
- if (!isOpen) {
1072
- result += `translateX(${x > 0 ? '-' : ''}10px)`;
1073
- }
1074
- }
1075
- if (y !== 0) {
1076
- result += `translateY(${y > 0 ? '' : '-'}100%)`;
1077
- if (!isOpen) {
1078
- result += `translateY(${y > 0 ? '-' : ''}10px)`;
1079
- }
1080
- }
1081
- return result;
1082
- }
1083
- switch (this.Placement) {
1084
- case 'Top':
1085
- case 'TopEdgeAlignedLeft':
1086
- case 'TopEdgeAlignedRight':
1087
- bottom = undefined;
1088
- transform = translate(0, -1, this.IsOpen);
1089
- break;
1090
- case 'Bottom':
1091
- case 'BottomEdgeAlignedLeft':
1092
- case 'BottomEdgeAlignedRight':
1093
- top = undefined;
1094
- transform = translate(0, 1, this.IsOpen);
1095
- break;
1096
- case 'Left':
1097
- case 'LeftEdgeAlignedBottom':
1098
- case 'LeftEdgeAlignedTop':
1099
- right = undefined;
1100
- transform = translate(-1, 0, this.IsOpen);
1101
- break;
1102
- case 'Right':
1103
- case 'RightEdgeAlignedBottom':
1104
- case 'RightEdgeAlignedTop':
1105
- left = undefined;
1106
- transform = translate(1, 0, this.IsOpen);
1107
- break;
1108
- }
1109
- let margin;
1110
- switch (this.Placement) {
1111
- case 'Top':
1112
- margin = '0 -100vw -100vh -100vw';
1113
- break;
1114
- case 'TopEdgeAlignedLeft':
1115
- margin = '0 -100vw -100vh 0';
1116
- break;
1117
- case 'TopEdgeAlignedRight':
1118
- margin = '0 0 -100vh -100vw';
1119
- break;
1120
- case 'Bottom':
1121
- margin = '-100vh -100vw 0 -100vw';
1122
- break;
1123
- case 'BottomEdgeAlignedLeft':
1124
- margin = '0 -100vw 0 0';
1125
- break;
1126
- case 'BottomEdgeAlignedRight':
1127
- margin = '0 0 0 -100vw';
1128
- break;
1129
- case 'Left':
1130
- margin = '-100vh -100vw -100vh 0';
1131
- break;
1132
- case 'LeftEdgeAlignedTop':
1133
- margin = '0 -100vw -100vh 0';
1134
- break;
1135
- case 'LeftEdgeAlignedBottom':
1136
- margin = '-100vh -100vw 0 0';
1137
- break;
1138
- case 'Right':
1139
- margin = '-100vh 0 -100vh -100vw';
1140
- break;
1141
- case 'RightEdgeAlignedTop':
1142
- margin = '0 0 -100vh -100vw';
1143
- break;
1144
- case 'RightEdgeAlignedBottom':
1145
- margin = '-100vh 0 0 -100vw';
1146
- break;
1147
- }
1148
- return {
1149
- 'top': top,
1150
- 'left': left,
1151
- 'right': right,
1152
- 'bottom': bottom,
1153
- 'transform': transform,
1154
- 'margin': margin,
1155
- 'transition': 'transform var(--ControlNormalAnimationDuration)'
1156
- };
1157
- }
1158
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FlyoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1159
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: FlyoutComponent, isStandalone: true, selector: "Flyout", inputs: { Placement: "Placement" }, usesInheritance: true, ngImport: i0, template: `<div class="popup-backdrop" (click)="onBackdropClick($event)" *ngIf="IsOpen"></div>
1160
- <div class="popup-container" [ngStyle]="containerStyle" [ngClass]="containerClass">
1161
- <div class="popup-content" [ngStyle]="contentStyle" *ngIf="isRendered"><ng-content/></div>
1162
- </div>`, isInline: true, styles: [":host{position:relative}:host{z-index:900}.popup-container{background-color:transparent;display:grid;padding:0;margin:0;border:0;position:absolute;pointer-events:none;z-index:1000}.popup-container>.popup-content{display:grid;padding:16px;border-width:1px;border-style:solid;border-radius:var(--OverlayCornerRadius);opacity:0;transition:opacity var(--ControlNormalAnimationDuration);-webkit-backdrop-filter:var(--AcrylicBlur);backdrop-filter:var(--AcrylicBlur);box-shadow:0 0 15px #0000001a;border-color:var(--SurfaceStrokeColorFlyout);background-color:var(--AcrylicInAppFillColorDefault)}.popup-container.popup-open>.popup-content{opacity:1;pointer-events:all}.popup-backdrop{position:fixed;inset:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1163
- }
1164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FlyoutComponent, decorators: [{
1165
- type: Component,
1166
- args: [{ selector: 'Flyout', imports: [CommonModule], template: `<div class="popup-backdrop" (click)="onBackdropClick($event)" *ngIf="IsOpen"></div>
1167
- <div class="popup-container" [ngStyle]="containerStyle" [ngClass]="containerClass">
1168
- <div class="popup-content" [ngStyle]="contentStyle" *ngIf="isRendered"><ng-content/></div>
1169
- </div>`, styles: [":host{position:relative}:host{z-index:900}.popup-container{background-color:transparent;display:grid;padding:0;margin:0;border:0;position:absolute;pointer-events:none;z-index:1000}.popup-container>.popup-content{display:grid;padding:16px;border-width:1px;border-style:solid;border-radius:var(--OverlayCornerRadius);opacity:0;transition:opacity var(--ControlNormalAnimationDuration);-webkit-backdrop-filter:var(--AcrylicBlur);backdrop-filter:var(--AcrylicBlur);box-shadow:0 0 15px #0000001a;border-color:var(--SurfaceStrokeColorFlyout);background-color:var(--AcrylicInAppFillColorDefault)}.popup-container.popup-open>.popup-content{opacity:1;pointer-events:all}.popup-backdrop{position:fixed;inset:0}\n"] }]
1170
- }], propDecorators: { Placement: [{
1171
- type: Input
1172
- }] } });
1173
-
1174
- class TextBlockComponent extends FrameworkElementComponent {
1175
- constructor() {
1176
- super(...arguments);
1177
- this.FontWeight = 'Normal';
1178
- this.TextAlignment = 'Left';
1179
- this.TextWrapping = 'NoWrap';
1180
- }
1181
- get fontWeight() {
1182
- return TextBlockComponent.ToFontWeight(this.FontWeight);
1183
- }
1184
- static ToFontWeight(value) {
1185
- switch (value) {
1186
- case 'Black':
1187
- return 900;
1188
- case 'Bold':
1189
- return 700;
1190
- case 'ExtraBlack':
1191
- return 950;
1192
- case 'ExtraBold':
1193
- return 800;
1194
- case 'ExtraLight':
1195
- return 200;
1196
- case 'Light':
1197
- return 300;
1198
- case 'Medium':
1199
- return 500;
1200
- case 'Normal':
1201
- return 400;
1202
- case 'SemiBold':
1203
- return 600;
1204
- case 'SemiLight':
1205
- return 350;
1206
- case 'Thin':
1207
- return 100;
1208
- }
1209
- }
1210
- get userSelect() {
1211
- return this.IsTextSelectionEnabled === 'True' ? 'text' : 'none';
1212
- }
1213
- get textDecorationLine() {
1214
- switch (this.TextDecorations) {
1215
- case 'None':
1216
- return 'none';
1217
- case 'Strikethrough':
1218
- return 'line-through';
1219
- case 'Underline':
1220
- return 'underline';
1221
- default:
1222
- return undefined;
1223
- }
1224
- }
1225
- get textOverflow() {
1226
- switch (this.TextTrimming) {
1227
- case 'None':
1228
- case 'Clip':
1229
- return 'clip';
1230
- case 'CharacterEllipsis':
1231
- return 'Ellipsis';
1232
- default:
1233
- return undefined;
1234
- }
1235
- }
1236
- get whiteSpace() {
1237
- switch (this.TextWrapping) {
1238
- case 'NoWrap':
1239
- return 'nowrap';
1240
- case 'Wrap':
1241
- return 'normal';
1242
- }
1243
- }
1244
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: TextBlockComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1245
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: TextBlockComponent, isStandalone: true, selector: "TextBlock", inputs: { FontFamily: "FontFamily", Text: "Text", FontSize: "FontSize", FontStyle: "FontStyle", FontWeight: "FontWeight", Foreground: "Foreground", TextAlignment: "TextAlignment", IsTextSelectionEnabled: "IsTextSelectionEnabled", TextDecorations: "TextDecorations", TextTrimming: "TextTrimming", TextWrapping: "TextWrapping" }, host: { properties: { "style.font-family": "this.FontFamily", "style.font-size": "this.FontSize", "style.font-style": "this.FontStyle", "style.color": "this.Foreground", "style.text-align": "this.TextAlignment", "style.font-weight": "this.fontWeight", "style.user-select": "this.userSelect", "style.text-decoration-line": "this.textDecorationLine", "style.text-overflow": "this.textOverflow", "style.white-space": "this.whiteSpace" } }, usesInheritance: true, ngImport: i0, template: `<ng-container>
1246
- <ng-content *ngIf="Text === undefined"/>
1247
- <ng-container *ngIf="Text !== undefined">{{Text}}</ng-container>
1248
- </ng-container>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
1249
- }
1250
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: TextBlockComponent, decorators: [{
1251
- type: Component,
1252
- args: [{
1253
- selector: 'TextBlock',
1254
- imports: [CommonModule],
1255
- template: `<ng-container>
1256
- <ng-content *ngIf="Text === undefined"/>
1257
- <ng-container *ngIf="Text !== undefined">{{Text}}</ng-container>
1258
- </ng-container>`
1259
- }]
1260
- }], propDecorators: { FontFamily: [{
1261
- type: Input
1262
- }, {
1263
- type: HostBinding,
1264
- args: ['style.font-family']
1265
- }], Text: [{
1266
- type: Input
1267
- }], FontSize: [{
1268
- type: Input
1269
- }, {
1270
- type: HostBinding,
1271
- args: ['style.font-size']
1272
- }], FontStyle: [{
1273
- type: Input
1274
- }, {
1275
- type: HostBinding,
1276
- args: ['style.font-style']
1277
- }], FontWeight: [{
1278
- type: Input
1279
- }], Foreground: [{
1280
- type: Input
1281
- }, {
1282
- type: HostBinding,
1283
- args: ['style.color']
1284
- }], TextAlignment: [{
1285
- type: Input
1286
- }, {
1287
- type: HostBinding,
1288
- args: ['style.text-align']
1289
- }], IsTextSelectionEnabled: [{
1290
- type: Input
1291
- }], TextDecorations: [{
1292
- type: Input
1293
- }], TextTrimming: [{
1294
- type: Input
1295
- }], TextWrapping: [{
1296
- type: Input
1297
- }], fontWeight: [{
1298
- type: HostBinding,
1299
- args: ['style.font-weight']
1300
- }], userSelect: [{
1301
- type: HostBinding,
1302
- args: ['style.user-select']
1303
- }], textDecorationLine: [{
1304
- type: HostBinding,
1305
- args: ['style.text-decoration-line']
1306
- }], textOverflow: [{
1307
- type: HostBinding,
1308
- args: ['style.text-overflow']
1309
- }], whiteSpace: [{
1310
- type: HostBinding,
1311
- args: ['style.white-space']
1312
- }] } });
1313
-
1314
- class FontIconComponent extends FrameworkElementComponent {
1315
- constructor() {
1316
- super(...arguments);
1317
- this.FontWeight = 'Normal';
1318
- }
1319
- get fontWeight() {
1320
- return TextBlockComponent.ToFontWeight(this.FontWeight);
1321
- }
1322
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FontIconComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1323
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: FontIconComponent, isStandalone: true, selector: "FontIcon", inputs: { FontFamily: "FontFamily", FontSize: "FontSize", FontStyle: "FontStyle", FontWeight: "FontWeight", Glyph: "Glyph" }, host: { properties: { "style.font-family": "this.FontFamily", "style.font-size": "this.FontSize", "style.font-style": "this.FontStyle", "style.font-weight": "this.fontWeight" } }, usesInheritance: true, ngImport: i0, template: `{{Glyph}}`, isInline: true, styles: [":host{font-family:Segoe Fluent Icons,Segoe MDL2 Assets}\n"] }); }
1324
- }
1325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FontIconComponent, decorators: [{
1326
- type: Component,
1327
- args: [{ selector: 'FontIcon', template: `{{Glyph}}`, styles: [":host{font-family:Segoe Fluent Icons,Segoe MDL2 Assets}\n"] }]
1328
- }], propDecorators: { FontFamily: [{
1329
- type: Input
1330
- }, {
1331
- type: HostBinding,
1332
- args: ['style.font-family']
1333
- }], FontSize: [{
1334
- type: Input
1335
- }, {
1336
- type: HostBinding,
1337
- args: ['style.font-size']
1338
- }], FontStyle: [{
1339
- type: Input
1340
- }, {
1341
- type: HostBinding,
1342
- args: ['style.font-style']
1343
- }], FontWeight: [{
1344
- type: Input
1345
- }], Glyph: [{
1346
- type: Input
1347
- }], fontWeight: [{
1348
- type: HostBinding,
1349
- args: ['style.font-weight']
1350
- }] } });
1351
-
1352
- class GridComponent extends PanelComponent {
1353
- constructor() {
1354
- super(...arguments);
1355
- this.Orientation = 'Horizontal';
1356
- }
1357
- get gridAutoFlow() {
1358
- return this.Orientation == 'Horizontal' ? 'row' : 'column';
1359
- }
1360
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1361
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: GridComponent, isStandalone: false, selector: "Grid", inputs: { ColumnDefinitions: "ColumnDefinitions", RowDefinitions: "RowDefinitions", ColumnSpacing: "ColumnSpacing", RowSpacing: "RowSpacing", Orientation: "Orientation" }, host: { properties: { "style.grid-template-columns": "this.ColumnDefinitions", "style.grid-template-rows": "this.RowDefinitions", "style.column-gap": "this.ColumnSpacing", "style.row-gap": "this.RowSpacing", "style.grid-auto-flow": "this.gridAutoFlow" } }, usesInheritance: true, ngImport: i0, template: `<ng-content/>`, isInline: true, styles: [":host{display:grid;position:relative}\n"] }); }
1362
- }
1363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: GridComponent, decorators: [{
1364
- type: Component,
1365
- args: [{ selector: 'Grid', template: `<ng-content/>`, standalone: false, styles: [":host{display:grid;position:relative}\n"] }]
1366
- }], propDecorators: { ColumnDefinitions: [{
1367
- type: Input
1368
- }, {
1369
- type: HostBinding,
1370
- args: ['style.grid-template-columns']
1371
- }], RowDefinitions: [{
1372
- type: Input
1373
- }, {
1374
- type: HostBinding,
1375
- args: ['style.grid-template-rows']
1376
- }], ColumnSpacing: [{
1377
- type: Input
1378
- }, {
1379
- type: HostBinding,
1380
- args: ['style.column-gap']
1381
- }], RowSpacing: [{
1382
- type: Input
1383
- }, {
1384
- type: HostBinding,
1385
- args: ['style.row-gap']
1386
- }], Orientation: [{
1387
- type: Input
1388
- }], gridAutoFlow: [{
1389
- type: HostBinding,
1390
- args: ['style.grid-auto-flow']
1391
- }] } });
1392
- class GridProperty {
1393
- }
1394
- class GridDirective {
1395
- constructor() {
1396
- this.Grid = new GridProperty();
1397
- }
1398
- get gridColumnStart() {
1399
- return this.Grid.Column !== undefined ? this.Grid.Column + 1 : undefined;
1194
+ get gridColumnStart() {
1195
+ return this.Grid.Column !== undefined ? this.Grid.Column + 1 : undefined;
1400
1196
  }
1401
1197
  get gridRowStart() {
1402
1198
  return this.Grid.Row !== undefined ? this.Grid.Row + 1 : undefined;
@@ -1532,7 +1328,633 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
1532
1328
  }]
1533
1329
  }] });
1534
1330
 
1535
- class ToolTipDirective {
1331
+ class SplitButtonComponent extends FrameworkElementComponent {
1332
+ constructor() {
1333
+ super(...arguments);
1334
+ this.IsEnabled = true;
1335
+ this.Click = new EventEmitter();
1336
+ }
1337
+ get buttonClass() {
1338
+ return this._popup?.IsOpen ? 'flyout-open' : undefined;
1339
+ }
1340
+ onButtonClick() {
1341
+ if (!this.IsEnabled)
1342
+ return;
1343
+ this.Click.emit();
1344
+ }
1345
+ onDropDownClick() {
1346
+ if (!this._popup || !this.IsEnabled)
1347
+ return;
1348
+ this._popup.IsOpen = true;
1349
+ }
1350
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: SplitButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1351
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: SplitButtonComponent, isStandalone: true, selector: "SplitButton", inputs: { IsEnabled: "IsEnabled" }, outputs: { Click: "Click" }, queries: [{ propertyName: "_popup", first: true, predicate: ["ButtonFlyout"], descendants: true }], usesInheritance: true, ngImport: i0, template: `<Grid ColumnDefinitions="1fr auto">
1352
+ <Button CornerRadius="4px 0 0 4px" [IsEnabled]="IsEnabled" (Click)="onButtonClick()" [ngClass]="buttonClass"><ng-content/></Button>
1353
+ <DropDownButton CornerRadius="0 4px 4px 0" Width="12px" (Click)="onDropDownClick()" [IsEnabled]="IsEnabled"/>
1354
+ </Grid>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "Button", inputs: ["IsEnabled", "HorizontalContentAlignment", "VerticalContentAlignment"], outputs: ["Click"] }, { kind: "component", type: DropDownButtonComponent, selector: "DropDownButton" }, { kind: "ngmodule", type: GridModule }, { kind: "component", type: GridComponent, selector: "Grid", inputs: ["ColumnDefinitions", "RowDefinitions", "ColumnSpacing", "RowSpacing", "Orientation"] }] }); }
1355
+ }
1356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: SplitButtonComponent, decorators: [{
1357
+ type: Component,
1358
+ args: [{
1359
+ selector: 'SplitButton',
1360
+ template: `<Grid ColumnDefinitions="1fr auto">
1361
+ <Button CornerRadius="4px 0 0 4px" [IsEnabled]="IsEnabled" (Click)="onButtonClick()" [ngClass]="buttonClass"><ng-content/></Button>
1362
+ <DropDownButton CornerRadius="0 4px 4px 0" Width="12px" (Click)="onDropDownClick()" [IsEnabled]="IsEnabled"/>
1363
+ </Grid>`,
1364
+ imports: [CommonModule, ButtonComponent, DropDownButtonComponent, GridModule]
1365
+ }]
1366
+ }], propDecorators: { IsEnabled: [{
1367
+ type: Input
1368
+ }], Click: [{
1369
+ type: Output
1370
+ }], _popup: [{
1371
+ type: ContentChild,
1372
+ args: ['ButtonFlyout']
1373
+ }] } });
1374
+
1375
+ class ToggleButtonComponent extends ButtonComponent {
1376
+ constructor() {
1377
+ super(...arguments);
1378
+ this.IsChecked = false;
1379
+ this.IsCheckedChange = new EventEmitter();
1380
+ }
1381
+ onPointerUp(event) {
1382
+ if (!this.IsEnabled)
1383
+ return;
1384
+ this.IsChecked = !this.IsChecked;
1385
+ this.IsCheckedChange.emit(this.IsChecked);
1386
+ }
1387
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ToggleButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1388
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ToggleButtonComponent, isStandalone: true, selector: "ToggleButton", inputs: { IsChecked: "IsChecked" }, outputs: { IsCheckedChange: "IsCheckedChange" }, host: { listeners: { "pointerup": "onPointerUp($event)" }, properties: { "class.checked": "this.IsChecked" } }, usesInheritance: true, ngImport: i0, template: `<ng-content/>`, isInline: true, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n"] }); }
1389
+ }
1390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ToggleButtonComponent, decorators: [{
1391
+ type: Component,
1392
+ args: [{ selector: 'ToggleButton', template: `<ng-content/>`, styles: [":host{position:relative}:host{display:grid;padding:5px 11px;border-width:var(--ControlBorderThickness);border-style:solid;border-radius:var(--ControlCornerRadius);position:relative;background:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorPrimary);transition:all var(--ControlFastAnimationDuration)}:host::ng-deep *{color:var(--TextFillColorPrimary)}:host:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--ControlFillColorTertiary);color:var(--TextFillColorSecondary)}:host:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.disabled:not(.checked){background:var(--ControlFillColorDisabled);color:var(--TextFillColorDisabled)}:host.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}:host.checked:not(.disabled){background:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault);color:var(--TextOnAccentFillColorPrimary)}:host.checked:not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary);color:var(--TextOnAccentFillColorPrimary)}:host:hover.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorPrimary)}:host:active.checked:not(.flyout-open):not(.disabled){background:var(--AccentFillColorTertiary);border-color:var(--ControlFillColorTransparent);color:var(--TextOnAccentFillColorSecondary)}:host:active.checked:not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextOnAccentFillColorSecondary)}:host.checked.disabled{background:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled);color:var(--TextOnAccentFillColorDisabled)}:host.checked.disabled::ng-deep *{color:var(--TextOnAccentFillColorDisabled)}:host.InlineButtonStyle{border-style:none;border-width:0;background-color:transparent}:host.InlineButtonStyle:hover:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled){background:var(--SubtleFillColorTertiary);color:var(--TextFillColorSecondary)}:host.InlineButtonStyle:active:not(.checked):not(.flyout-open):not(.disabled)::ng-deep *{color:var(--TextFillColorSecondary)}:host.InlineButtonStyle.disabled:not(.checked){background:var(--SubtleFillColorDisabled);color:var(--TextFillColorDisabled)}:host.InlineButtonStyle.disabled:not(.checked)::ng-deep *{color:var(--TextFillColorDisabled)}\n"] }]
1393
+ }], propDecorators: { IsChecked: [{
1394
+ type: Input
1395
+ }, {
1396
+ type: HostBinding,
1397
+ args: ['class.checked']
1398
+ }], IsCheckedChange: [{
1399
+ type: Output
1400
+ }], onPointerUp: [{
1401
+ type: HostListener,
1402
+ args: ['pointerup', ['$event']]
1403
+ }] } });
1404
+
1405
+ class ToggleSwitchComponent extends CheckBoxComponent {
1406
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ToggleSwitchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1407
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ToggleSwitchComponent, isStandalone: true, selector: "ToggleSwitch", usesInheritance: true, ngImport: i0, template: `<label class="container">
1408
+ <input type="checkbox" [checked]="IsChecked" (change)="onChange($event)" [disabled]="!IsEnabled">
1409
+ <div class="slider">
1410
+ <div class="thumb"></div>
1411
+ </div>
1412
+ <div class="content"><ng-content/></div>
1413
+ </label>`, isInline: true, styles: [":host{position:relative}.container{display:grid;grid-template-columns:auto 1fr;column-gap:6px}input{display:none}input:not(:checked):not(:active):not(:disabled)+.slider:not(:hover){background-color:var(--ControlAltFillColorSecondary);border-color:var(--ControlStrongStrokeColorDefault)}input:not(:checked):not(:active):not(:disabled)+.slider:not(:hover)>.thumb{background-color:var(--TextFillColorSecondary)}input:not(:checked):not(:active):not(:disabled)+.slider:hover{background-color:var(--ControlAltFillColorTertiary);border-color:var(--ControlStrongStrokeColorDefault)}input:not(:checked):not(:active):not(:disabled)+.slider:hover>.thumb{background-color:var(--TextFillColorSecondary)}input:not(:checked):active:not(:disabled)+.slider{background-color:var(--ControlAltFillColorQuarternary);border-color:var(--ControlStrongStrokeColorDefault)}input:not(:checked):active:not(:disabled)+.slider>.thumb{background-color:var(--TextFillColorSecondary)}input:not(:checked):disabled+.slider{background-color:var(--ControlAltFillColorDisabled);border-color:var(--ControlStrongStrokeColorDisabled)}input:not(:checked):disabled+.slider>.thumb{background-color:var(--TextFillColorDisabled)}input:checked:not(:active):not(:disabled)+.slider:not(:hover){background-color:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault)}input:checked:not(:active):not(:disabled)+.slider:not(:hover)>.thumb{background-color:var(--TextOnAccentFillColorPrimary)}input:checked:not(:active):not(:disabled)+.slider:hover{background-color:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary)}input:checked:not(:active):not(:disabled)+.slider:hover>.thumb{background-color:var(--TextOnAccentFillColorPrimary)}input:checked:active:not(:disabled)+.slider{background-color:var(--AccentFillColorTertiary);border-color:var(--AccentFillColorTertiary)}input:checked:active:not(:disabled)+.slider>.thumb{background-color:var(--TextOnAccentFillColorPrimary)}input:checked:disabled+.slider{background-color:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled)}input:checked:disabled+.slider>.thumb{background-color:var(--TextOnAccentFillColorDisabled)}input:checked+.slider>.thumb{transform:translate(22px)}input:not(:disabled):active+.slider>.thumb{width:17px;height:14px;transform:translate(-1px)}input:not(:disabled):not(:active):hover+.slider>.thumb{width:14px;height:14px;transform:translate(-1px)}input:not(:disabled):not(:active):checked:hover+.slider>.thumb{transform:translate(21px)}input:not(:disabled):checked:active+.slider>.thumb{transform:translate(18px);width:17px;height:14px}.slider{display:grid;width:40px;height:18px;border-radius:10px;border-style:solid;border-width:1.5px;transition:background-color var(--ControlNormalAnimationDuration);background-color:var(--ControlAltFillColorSecondary)}.thumb{display:grid;width:12px;height:12px;border-radius:7px;align-self:center;margin:0 3px;transition:transform var(--ControlNormalAnimationDuration);transition:width var(--ControlFastAnimationDuration);transition:margin-left var(--ControlFastAnimationDuration)}\n"] }); }
1414
+ }
1415
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ToggleSwitchComponent, decorators: [{
1416
+ type: Component,
1417
+ args: [{ selector: 'ToggleSwitch', template: `<label class="container">
1418
+ <input type="checkbox" [checked]="IsChecked" (change)="onChange($event)" [disabled]="!IsEnabled">
1419
+ <div class="slider">
1420
+ <div class="thumb"></div>
1421
+ </div>
1422
+ <div class="content"><ng-content/></div>
1423
+ </label>`, styles: [":host{position:relative}.container{display:grid;grid-template-columns:auto 1fr;column-gap:6px}input{display:none}input:not(:checked):not(:active):not(:disabled)+.slider:not(:hover){background-color:var(--ControlAltFillColorSecondary);border-color:var(--ControlStrongStrokeColorDefault)}input:not(:checked):not(:active):not(:disabled)+.slider:not(:hover)>.thumb{background-color:var(--TextFillColorSecondary)}input:not(:checked):not(:active):not(:disabled)+.slider:hover{background-color:var(--ControlAltFillColorTertiary);border-color:var(--ControlStrongStrokeColorDefault)}input:not(:checked):not(:active):not(:disabled)+.slider:hover>.thumb{background-color:var(--TextFillColorSecondary)}input:not(:checked):active:not(:disabled)+.slider{background-color:var(--ControlAltFillColorQuarternary);border-color:var(--ControlStrongStrokeColorDefault)}input:not(:checked):active:not(:disabled)+.slider>.thumb{background-color:var(--TextFillColorSecondary)}input:not(:checked):disabled+.slider{background-color:var(--ControlAltFillColorDisabled);border-color:var(--ControlStrongStrokeColorDisabled)}input:not(:checked):disabled+.slider>.thumb{background-color:var(--TextFillColorDisabled)}input:checked:not(:active):not(:disabled)+.slider:not(:hover){background-color:var(--AccentFillColorDefault);border-color:var(--AccentFillColorDefault)}input:checked:not(:active):not(:disabled)+.slider:not(:hover)>.thumb{background-color:var(--TextOnAccentFillColorPrimary)}input:checked:not(:active):not(:disabled)+.slider:hover{background-color:var(--AccentFillColorSecondary);border-color:var(--AccentFillColorSecondary)}input:checked:not(:active):not(:disabled)+.slider:hover>.thumb{background-color:var(--TextOnAccentFillColorPrimary)}input:checked:active:not(:disabled)+.slider{background-color:var(--AccentFillColorTertiary);border-color:var(--AccentFillColorTertiary)}input:checked:active:not(:disabled)+.slider>.thumb{background-color:var(--TextOnAccentFillColorPrimary)}input:checked:disabled+.slider{background-color:var(--AccentFillColorDisabled);border-color:var(--AccentFillColorDisabled)}input:checked:disabled+.slider>.thumb{background-color:var(--TextOnAccentFillColorDisabled)}input:checked+.slider>.thumb{transform:translate(22px)}input:not(:disabled):active+.slider>.thumb{width:17px;height:14px;transform:translate(-1px)}input:not(:disabled):not(:active):hover+.slider>.thumb{width:14px;height:14px;transform:translate(-1px)}input:not(:disabled):not(:active):checked:hover+.slider>.thumb{transform:translate(21px)}input:not(:disabled):checked:active+.slider>.thumb{transform:translate(18px);width:17px;height:14px}.slider{display:grid;width:40px;height:18px;border-radius:10px;border-style:solid;border-width:1.5px;transition:background-color var(--ControlNormalAnimationDuration);background-color:var(--ControlAltFillColorSecondary)}.thumb{display:grid;width:12px;height:12px;border-radius:7px;align-self:center;margin:0 3px;transition:transform var(--ControlNormalAnimationDuration);transition:width var(--ControlFastAnimationDuration);transition:margin-left var(--ControlFastAnimationDuration)}\n"] }]
1424
+ }] });
1425
+
1426
+ class ListBoxComponent extends SelectorComponent {
1427
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ListBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1428
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ListBoxComponent, isStandalone: true, selector: "ListBox", usesInheritance: true, ngImport: i0, template: "<div *ngFor=\"let item of ItemSource; index as index; trackBy: getValue\" class=\"item\" [ngClass]=\"{'selected': index == SelectedIndex}\" (click)=\"onItemClick($event, index, item)\" [id]=\"'xaml-selector-'+_id+'-item-'+index\" [ngStyle]=\"{'align-content': alignContent, 'justify-content': justifyContent}\">\n <ng-container *ngIf=\"ItemTemplate\">\n <ng-container *ngTemplateOutlet=\"ItemTemplate; context: { $implicit: item }\"/>\n </ng-container>\n <ng-container *ngIf=\"!ItemTemplate\">{{ DisplayMemberPath ? item[DisplayMemberPath] : item }}</ng-container>\n </div>", isInline: true, styles: [":host{position:relative}:host{display:flex;flex-direction:column;background-color:var(--SystemChromeMediumLowColor)}:host .item{display:grid;padding:12px;margin:0}:host:not(.disabled) .item:not(:hover):not(:active):not(.selected){color:var(--TextFillColorPrimary)}:host:not(.disabled) .item:hover:not(.active):not(.selected){background-color:var(--SubtleFillColorSecondary)}:host:not(.disabled) .item:active:not(.selected){background-color:var(--SubtleFillColorTertiary)}:host:not(.disabled) .item:not(:hover):not(:active).selected{background-color:var(--SystemControlHighlightListAccentLow)}:host:not(.disabled) .item:hover:not(:active).selected{background-color:var(--SystemControlHighlightListAccentMedium)}:host:not(.disabled) .item:active.selected{background-color:var(--SystemControlHighlightListAccentHigh)}:host.disabled .item:not(.selected){color:var(--TextFillColorDisabled)}:host.disabled .item.selected{background-color:var(--SubtleFillColorSecondary);color:var(--AccentFillColorDisabled)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1429
+ }
1430
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ListBoxComponent, decorators: [{
1431
+ type: Component,
1432
+ args: [{ selector: 'ListBox', imports: [CommonModule], template: `<div *ngFor="let item of ItemSource; index as index; trackBy: getValue" class="item" [ngClass]="{'selected': index == SelectedIndex}" (click)="onItemClick($event, index, item)" [id]="'xaml-selector-'+_id+'-item-'+index" [ngStyle]="{'align-content': alignContent, 'justify-content': justifyContent}">
1433
+ ${SelectorItemTemplate}
1434
+ </div>`, styles: [":host{position:relative}:host{display:flex;flex-direction:column;background-color:var(--SystemChromeMediumLowColor)}:host .item{display:grid;padding:12px;margin:0}:host:not(.disabled) .item:not(:hover):not(:active):not(.selected){color:var(--TextFillColorPrimary)}:host:not(.disabled) .item:hover:not(.active):not(.selected){background-color:var(--SubtleFillColorSecondary)}:host:not(.disabled) .item:active:not(.selected){background-color:var(--SubtleFillColorTertiary)}:host:not(.disabled) .item:not(:hover):not(:active).selected{background-color:var(--SystemControlHighlightListAccentLow)}:host:not(.disabled) .item:hover:not(:active).selected{background-color:var(--SystemControlHighlightListAccentMedium)}:host:not(.disabled) .item:active.selected{background-color:var(--SystemControlHighlightListAccentHigh)}:host.disabled .item:not(.selected){color:var(--TextFillColorDisabled)}:host.disabled .item.selected{background-color:var(--SubtleFillColorSecondary);color:var(--AccentFillColorDisabled)}\n"] }]
1435
+ }] });
1436
+
1437
+ class FlyoutComponent extends PopupComponent {
1438
+ constructor() {
1439
+ super(...arguments);
1440
+ this.Placement = 'Top';
1441
+ }
1442
+ get contentStyle() {
1443
+ let alignSelf;
1444
+ let justifySelf;
1445
+ switch (this.Placement) {
1446
+ case 'Top':
1447
+ case 'Bottom':
1448
+ justifySelf = 'center';
1449
+ break;
1450
+ case 'TopEdgeAlignedLeft':
1451
+ case 'BottomEdgeAlignedLeft':
1452
+ justifySelf = 'left';
1453
+ break;
1454
+ case 'TopEdgeAlignedRight':
1455
+ case 'BottomEdgeAlignedRight':
1456
+ justifySelf = 'right';
1457
+ break;
1458
+ case 'Left':
1459
+ case 'Right':
1460
+ alignSelf = 'center';
1461
+ break;
1462
+ case 'LeftEdgeAlignedTop':
1463
+ case 'RightEdgeAlignedTop':
1464
+ alignSelf = 'flex-start';
1465
+ break;
1466
+ case 'LeftEdgeAlignedBottom':
1467
+ case 'RightEdgeAlignedBottom':
1468
+ alignSelf = 'flex-end';
1469
+ break;
1470
+ }
1471
+ return {
1472
+ 'align-self': alignSelf,
1473
+ 'justify-self': justifySelf,
1474
+ };
1475
+ }
1476
+ get containerStyle() {
1477
+ let top = '0';
1478
+ let left = '0';
1479
+ let right = '0';
1480
+ let bottom = '0';
1481
+ let transform;
1482
+ function translate(x, y, isOpen) {
1483
+ let result = '';
1484
+ if (x !== 0) {
1485
+ result += `translateX(${x > 0 ? '' : '-'}100%)`;
1486
+ if (!isOpen) {
1487
+ result += `translateX(${x > 0 ? '-' : ''}10px)`;
1488
+ }
1489
+ }
1490
+ if (y !== 0) {
1491
+ result += `translateY(${y > 0 ? '' : '-'}100%)`;
1492
+ if (!isOpen) {
1493
+ result += `translateY(${y > 0 ? '-' : ''}10px)`;
1494
+ }
1495
+ }
1496
+ return result;
1497
+ }
1498
+ switch (this.Placement) {
1499
+ case 'Top':
1500
+ case 'TopEdgeAlignedLeft':
1501
+ case 'TopEdgeAlignedRight':
1502
+ bottom = undefined;
1503
+ transform = translate(0, -1, this.IsOpen);
1504
+ break;
1505
+ case 'Bottom':
1506
+ case 'BottomEdgeAlignedLeft':
1507
+ case 'BottomEdgeAlignedRight':
1508
+ top = undefined;
1509
+ transform = translate(0, 1, this.IsOpen);
1510
+ break;
1511
+ case 'Left':
1512
+ case 'LeftEdgeAlignedBottom':
1513
+ case 'LeftEdgeAlignedTop':
1514
+ right = undefined;
1515
+ transform = translate(-1, 0, this.IsOpen);
1516
+ break;
1517
+ case 'Right':
1518
+ case 'RightEdgeAlignedBottom':
1519
+ case 'RightEdgeAlignedTop':
1520
+ left = undefined;
1521
+ transform = translate(1, 0, this.IsOpen);
1522
+ break;
1523
+ }
1524
+ let margin;
1525
+ switch (this.Placement) {
1526
+ case 'Top':
1527
+ margin = '0 -100vw -100vh -100vw';
1528
+ break;
1529
+ case 'TopEdgeAlignedLeft':
1530
+ margin = '0 -100vw -100vh 0';
1531
+ break;
1532
+ case 'TopEdgeAlignedRight':
1533
+ margin = '0 0 -100vh -100vw';
1534
+ break;
1535
+ case 'Bottom':
1536
+ margin = '-100vh -100vw 0 -100vw';
1537
+ break;
1538
+ case 'BottomEdgeAlignedLeft':
1539
+ margin = '0 -100vw 0 0';
1540
+ break;
1541
+ case 'BottomEdgeAlignedRight':
1542
+ margin = '0 0 0 -100vw';
1543
+ break;
1544
+ case 'Left':
1545
+ margin = '-100vh -100vw -100vh 0';
1546
+ break;
1547
+ case 'LeftEdgeAlignedTop':
1548
+ margin = '0 -100vw -100vh 0';
1549
+ break;
1550
+ case 'LeftEdgeAlignedBottom':
1551
+ margin = '-100vh -100vw 0 0';
1552
+ break;
1553
+ case 'Right':
1554
+ margin = '-100vh 0 -100vh -100vw';
1555
+ break;
1556
+ case 'RightEdgeAlignedTop':
1557
+ margin = '0 0 -100vh -100vw';
1558
+ break;
1559
+ case 'RightEdgeAlignedBottom':
1560
+ margin = '-100vh 0 0 -100vw';
1561
+ break;
1562
+ }
1563
+ return {
1564
+ 'top': top,
1565
+ 'left': left,
1566
+ 'right': right,
1567
+ 'bottom': bottom,
1568
+ 'transform': transform,
1569
+ 'margin': margin,
1570
+ 'transition': 'transform var(--ControlNormalAnimationDuration)'
1571
+ };
1572
+ }
1573
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FlyoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1574
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: FlyoutComponent, isStandalone: true, selector: "Flyout", inputs: { Placement: "Placement" }, providers: [{ provide: 'xaml-flyout', useExisting: FlyoutComponent }], usesInheritance: true, ngImport: i0, template: `<div class="popup-backdrop" (click)="onBackdropClick($event)" *ngIf="IsOpen"></div>
1575
+ <div class="popup-container" [ngStyle]="containerStyle" [ngClass]="containerClass">
1576
+ <div class="popup-content" [ngStyle]="contentStyle" *ngIf="isRendered"><ng-content/></div>
1577
+ </div>`, isInline: true, styles: [":host{position:relative}:host{position:static}.popup-container{background-color:transparent;display:grid;padding:0;margin:0;border:0;pointer-events:none;position:absolute;z-index:1000}.popup-container>.popup-content{display:grid;padding:16px;border-width:1px;border-style:solid;border-radius:var(--OverlayCornerRadius);opacity:0;transition:opacity var(--ControlNormalAnimationDuration);-webkit-backdrop-filter:var(--AcrylicBlur);backdrop-filter:var(--AcrylicBlur);box-shadow:0 0 15px #00000080;border-color:var(--SurfaceStrokeColorFlyout);background-color:var(--AcrylicInAppFillColorDefault)}.popup-container.flyout-open>.popup-content{opacity:1;pointer-events:all}.popup-backdrop{z-index:900;position:fixed;inset:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1578
+ }
1579
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FlyoutComponent, decorators: [{
1580
+ type: Component,
1581
+ args: [{ selector: 'Flyout', imports: [CommonModule], template: `<div class="popup-backdrop" (click)="onBackdropClick($event)" *ngIf="IsOpen"></div>
1582
+ <div class="popup-container" [ngStyle]="containerStyle" [ngClass]="containerClass">
1583
+ <div class="popup-content" [ngStyle]="contentStyle" *ngIf="isRendered"><ng-content/></div>
1584
+ </div>`, providers: [{ provide: 'xaml-flyout', useExisting: FlyoutComponent }], styles: [":host{position:relative}:host{position:static}.popup-container{background-color:transparent;display:grid;padding:0;margin:0;border:0;pointer-events:none;position:absolute;z-index:1000}.popup-container>.popup-content{display:grid;padding:16px;border-width:1px;border-style:solid;border-radius:var(--OverlayCornerRadius);opacity:0;transition:opacity var(--ControlNormalAnimationDuration);-webkit-backdrop-filter:var(--AcrylicBlur);backdrop-filter:var(--AcrylicBlur);box-shadow:0 0 15px #00000080;border-color:var(--SurfaceStrokeColorFlyout);background-color:var(--AcrylicInAppFillColorDefault)}.popup-container.flyout-open>.popup-content{opacity:1;pointer-events:all}.popup-backdrop{z-index:900;position:fixed;inset:0}\n"] }]
1585
+ }], propDecorators: { Placement: [{
1586
+ type: Input
1587
+ }] } });
1588
+
1589
+ class MenuFlyoutComponent extends FlyoutComponent {
1590
+ onMenuClick(event) {
1591
+ this.IsOpen = false;
1592
+ event.stopPropagation();
1593
+ }
1594
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: MenuFlyoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1595
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: MenuFlyoutComponent, isStandalone: true, selector: "MenuFlyout", providers: [{ provide: 'xaml-flyout', useExisting: MenuFlyoutComponent }], usesInheritance: true, ngImport: i0, template: `<div class="popup-backdrop" (click)="onBackdropClick($event)" *ngIf="IsOpen"></div>
1596
+ <div class="popup-container" [ngStyle]="containerStyle" [ngClass]="containerClass">
1597
+ <div class="popup-content" [ngStyle]="contentStyle" *ngIf="isRendered">
1598
+ <div class="menu-container" (click)="onMenuClick($event)">
1599
+ <ng-content/>
1600
+ </div>
1601
+ </div>
1602
+ </div>`, isInline: true, styles: [":host{position:relative}:host{position:static}.popup-container{background-color:transparent;display:grid;padding:0;margin:0;border:0;pointer-events:none;position:absolute;z-index:1000}.popup-container>.popup-content{display:grid;padding:16px;border-width:1px;border-style:solid;border-radius:var(--OverlayCornerRadius);opacity:0;transition:opacity var(--ControlNormalAnimationDuration);-webkit-backdrop-filter:var(--AcrylicBlur);backdrop-filter:var(--AcrylicBlur);box-shadow:0 0 15px #00000080;border-color:var(--SurfaceStrokeColorFlyout);background-color:var(--AcrylicInAppFillColorDefault)}.popup-container.flyout-open>.popup-content{opacity:1;pointer-events:all}.popup-backdrop{z-index:900;position:fixed;inset:0}\n", ".popup-container{left:0;right:0;top:0}.popup-container>.popup-content{padding:2px}.popup-container>.popup-content>.menu-container{margin:-3px 0;display:table;border-spacing:0 3px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1603
+ }
1604
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: MenuFlyoutComponent, decorators: [{
1605
+ type: Component,
1606
+ args: [{ selector: 'MenuFlyout', imports: [CommonModule], template: `<div class="popup-backdrop" (click)="onBackdropClick($event)" *ngIf="IsOpen"></div>
1607
+ <div class="popup-container" [ngStyle]="containerStyle" [ngClass]="containerClass">
1608
+ <div class="popup-content" [ngStyle]="contentStyle" *ngIf="isRendered">
1609
+ <div class="menu-container" (click)="onMenuClick($event)">
1610
+ <ng-content/>
1611
+ </div>
1612
+ </div>
1613
+ </div>`, providers: [{ provide: 'xaml-flyout', useExisting: MenuFlyoutComponent }], styles: [":host{position:relative}:host{position:static}.popup-container{background-color:transparent;display:grid;padding:0;margin:0;border:0;pointer-events:none;position:absolute;z-index:1000}.popup-container>.popup-content{display:grid;padding:16px;border-width:1px;border-style:solid;border-radius:var(--OverlayCornerRadius);opacity:0;transition:opacity var(--ControlNormalAnimationDuration);-webkit-backdrop-filter:var(--AcrylicBlur);backdrop-filter:var(--AcrylicBlur);box-shadow:0 0 15px #00000080;border-color:var(--SurfaceStrokeColorFlyout);background-color:var(--AcrylicInAppFillColorDefault)}.popup-container.flyout-open>.popup-content{opacity:1;pointer-events:all}.popup-backdrop{z-index:900;position:fixed;inset:0}\n", ".popup-container{left:0;right:0;top:0}.popup-container>.popup-content{padding:2px}.popup-container>.popup-content>.menu-container{margin:-3px 0;display:table;border-spacing:0 3px}\n"] }]
1614
+ }] });
1615
+
1616
+ class ContextFlyoutDirective {
1617
+ constructor(_hostComponent, _viewContainer) {
1618
+ this._hostComponent = _hostComponent;
1619
+ this._viewContainer = _viewContainer;
1620
+ this._positionX = 0;
1621
+ this._positionY = 0;
1622
+ }
1623
+ get style() {
1624
+ return {
1625
+ 'position': 'fixed',
1626
+ 'left': this._positionX + 'px',
1627
+ 'top': this._positionY + 'px'
1628
+ };
1629
+ }
1630
+ ngAfterViewInit() {
1631
+ this._flyout = this._viewContainer.injector.get(FlyoutComponent, null) ||
1632
+ this._viewContainer.injector.get(MenuFlyoutComponent, null);
1633
+ if (this._flyout) {
1634
+ this._flyout.Placement = 'BottomEdgeAlignedLeft';
1635
+ }
1636
+ let parentElement = this._hostComponent.nativeElement.parentElement;
1637
+ if (parentElement) {
1638
+ parentElement.oncontextmenu = p => this.onContextMenu(p);
1639
+ }
1640
+ }
1641
+ onContextMenu(event) {
1642
+ if (!this._flyout)
1643
+ return;
1644
+ if (!this._flyout.IsOpen) {
1645
+ this._positionX = event.clientX;
1646
+ this._positionY = event.clientY;
1647
+ this._flyout.IsOpen = true;
1648
+ }
1649
+ else {
1650
+ this._flyout.IsOpen = false;
1651
+ }
1652
+ event.preventDefault();
1653
+ event.stopPropagation();
1654
+ }
1655
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ContextFlyoutDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1656
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.6", type: ContextFlyoutDirective, isStandalone: true, selector: "[ContextFlyout]", host: { properties: { "style": "this.style" } }, ngImport: i0 }); }
1657
+ }
1658
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ContextFlyoutDirective, decorators: [{
1659
+ type: Directive,
1660
+ args: [{
1661
+ selector: '[ContextFlyout]'
1662
+ }]
1663
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }], propDecorators: { style: [{
1664
+ type: HostBinding,
1665
+ args: ['style']
1666
+ }] } });
1667
+
1668
+ class TextBlockComponent extends FrameworkElementComponent {
1669
+ constructor() {
1670
+ super(...arguments);
1671
+ this.FontWeight = 'Normal';
1672
+ this.TextAlignment = 'Left';
1673
+ this.TextWrapping = 'NoWrap';
1674
+ }
1675
+ get fontWeight() {
1676
+ return TextBlockComponent.ToFontWeight(this.FontWeight);
1677
+ }
1678
+ static ToFontWeight(value) {
1679
+ switch (value) {
1680
+ case 'Black':
1681
+ return 900;
1682
+ case 'Bold':
1683
+ return 700;
1684
+ case 'ExtraBlack':
1685
+ return 950;
1686
+ case 'ExtraBold':
1687
+ return 800;
1688
+ case 'ExtraLight':
1689
+ return 200;
1690
+ case 'Light':
1691
+ return 300;
1692
+ case 'Medium':
1693
+ return 500;
1694
+ case 'Normal':
1695
+ return 400;
1696
+ case 'SemiBold':
1697
+ return 600;
1698
+ case 'SemiLight':
1699
+ return 350;
1700
+ case 'Thin':
1701
+ return 100;
1702
+ }
1703
+ }
1704
+ get userSelect() {
1705
+ return this.IsTextSelectionEnabled === 'True' ? 'text' : 'none';
1706
+ }
1707
+ get textDecorationLine() {
1708
+ switch (this.TextDecorations) {
1709
+ case 'None':
1710
+ return 'none';
1711
+ case 'Strikethrough':
1712
+ return 'line-through';
1713
+ case 'Underline':
1714
+ return 'underline';
1715
+ default:
1716
+ return undefined;
1717
+ }
1718
+ }
1719
+ get textOverflow() {
1720
+ switch (this.TextTrimming) {
1721
+ case 'None':
1722
+ case 'Clip':
1723
+ return 'clip';
1724
+ case 'CharacterEllipsis':
1725
+ return 'Ellipsis';
1726
+ default:
1727
+ return undefined;
1728
+ }
1729
+ }
1730
+ get whiteSpace() {
1731
+ switch (this.TextWrapping) {
1732
+ case 'NoWrap':
1733
+ return 'nowrap';
1734
+ case 'Wrap':
1735
+ return 'normal';
1736
+ }
1737
+ }
1738
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: TextBlockComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1739
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: TextBlockComponent, isStandalone: true, selector: "TextBlock", inputs: { FontFamily: "FontFamily", Text: "Text", FontSize: "FontSize", FontStyle: "FontStyle", FontWeight: "FontWeight", Foreground: "Foreground", TextAlignment: "TextAlignment", IsTextSelectionEnabled: "IsTextSelectionEnabled", TextDecorations: "TextDecorations", TextTrimming: "TextTrimming", TextWrapping: "TextWrapping" }, host: { properties: { "style.font-family": "this.FontFamily", "style.font-size": "this.FontSize", "style.font-style": "this.FontStyle", "style.color": "this.Foreground", "style.text-align": "this.TextAlignment", "style.font-weight": "this.fontWeight", "style.user-select": "this.userSelect", "style.text-decoration-line": "this.textDecorationLine", "style.text-overflow": "this.textOverflow", "style.white-space": "this.whiteSpace" } }, usesInheritance: true, ngImport: i0, template: `<ng-container>
1740
+ <ng-content *ngIf="Text === undefined"/>
1741
+ <ng-container *ngIf="Text !== undefined">{{Text}}</ng-container>
1742
+ </ng-container>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
1743
+ }
1744
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: TextBlockComponent, decorators: [{
1745
+ type: Component,
1746
+ args: [{
1747
+ selector: 'TextBlock',
1748
+ imports: [CommonModule],
1749
+ template: `<ng-container>
1750
+ <ng-content *ngIf="Text === undefined"/>
1751
+ <ng-container *ngIf="Text !== undefined">{{Text}}</ng-container>
1752
+ </ng-container>`
1753
+ }]
1754
+ }], propDecorators: { FontFamily: [{
1755
+ type: Input
1756
+ }, {
1757
+ type: HostBinding,
1758
+ args: ['style.font-family']
1759
+ }], Text: [{
1760
+ type: Input
1761
+ }], FontSize: [{
1762
+ type: Input
1763
+ }, {
1764
+ type: HostBinding,
1765
+ args: ['style.font-size']
1766
+ }], FontStyle: [{
1767
+ type: Input
1768
+ }, {
1769
+ type: HostBinding,
1770
+ args: ['style.font-style']
1771
+ }], FontWeight: [{
1772
+ type: Input
1773
+ }], Foreground: [{
1774
+ type: Input
1775
+ }, {
1776
+ type: HostBinding,
1777
+ args: ['style.color']
1778
+ }], TextAlignment: [{
1779
+ type: Input
1780
+ }, {
1781
+ type: HostBinding,
1782
+ args: ['style.text-align']
1783
+ }], IsTextSelectionEnabled: [{
1784
+ type: Input
1785
+ }], TextDecorations: [{
1786
+ type: Input
1787
+ }], TextTrimming: [{
1788
+ type: Input
1789
+ }], TextWrapping: [{
1790
+ type: Input
1791
+ }], fontWeight: [{
1792
+ type: HostBinding,
1793
+ args: ['style.font-weight']
1794
+ }], userSelect: [{
1795
+ type: HostBinding,
1796
+ args: ['style.user-select']
1797
+ }], textDecorationLine: [{
1798
+ type: HostBinding,
1799
+ args: ['style.text-decoration-line']
1800
+ }], textOverflow: [{
1801
+ type: HostBinding,
1802
+ args: ['style.text-overflow']
1803
+ }], whiteSpace: [{
1804
+ type: HostBinding,
1805
+ args: ['style.white-space']
1806
+ }] } });
1807
+
1808
+ class FontIconComponent extends FrameworkElementComponent {
1809
+ constructor() {
1810
+ super(...arguments);
1811
+ this.FontWeight = 'Normal';
1812
+ }
1813
+ get fontWeight() {
1814
+ return TextBlockComponent.ToFontWeight(this.FontWeight);
1815
+ }
1816
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FontIconComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1817
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: FontIconComponent, isStandalone: true, selector: "FontIcon", inputs: { FontFamily: "FontFamily", FontSize: "FontSize", FontStyle: "FontStyle", FontWeight: "FontWeight", Glyph: "Glyph" }, host: { properties: { "style.font-family": "this.FontFamily", "style.font-size": "this.FontSize", "style.font-style": "this.FontStyle", "style.font-weight": "this.fontWeight" } }, usesInheritance: true, ngImport: i0, template: `{{Glyph}}`, isInline: true, styles: [":host{font-family:Segoe Fluent Icons,Segoe MDL2 Assets}\n"] }); }
1818
+ }
1819
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: FontIconComponent, decorators: [{
1820
+ type: Component,
1821
+ args: [{ selector: 'FontIcon', template: `{{Glyph}}`, styles: [":host{font-family:Segoe Fluent Icons,Segoe MDL2 Assets}\n"] }]
1822
+ }], propDecorators: { FontFamily: [{
1823
+ type: Input
1824
+ }, {
1825
+ type: HostBinding,
1826
+ args: ['style.font-family']
1827
+ }], FontSize: [{
1828
+ type: Input
1829
+ }, {
1830
+ type: HostBinding,
1831
+ args: ['style.font-size']
1832
+ }], FontStyle: [{
1833
+ type: Input
1834
+ }, {
1835
+ type: HostBinding,
1836
+ args: ['style.font-style']
1837
+ }], FontWeight: [{
1838
+ type: Input
1839
+ }], Glyph: [{
1840
+ type: Input
1841
+ }], fontWeight: [{
1842
+ type: HostBinding,
1843
+ args: ['style.font-weight']
1844
+ }] } });
1845
+
1846
+ class ImageComponent extends FrameworkElementComponent {
1847
+ constructor() {
1848
+ super(...arguments);
1849
+ this.Stretch = 'Uniform';
1850
+ }
1851
+ get imageStyle() {
1852
+ return {
1853
+ width: this.Width,
1854
+ height: this.Height
1855
+ };
1856
+ }
1857
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ImageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1858
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ImageComponent, isStandalone: true, selector: "Image", inputs: { Source: "Source", Stretch: "Stretch" }, usesInheritance: true, ngImport: i0, template: `<img [src]="Source" [class]="Stretch" [ngStyle]="imageStyle" [alt]="">`, isInline: true, styles: [":host{display:grid;overflow:hidden}img{place-self:stretch}img.None{object-fit:none}img.Fill{object-fit:fill}img.Uniform{object-fit:contain}img.UniformToFill{object-fit:cover}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
1859
+ }
1860
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ImageComponent, decorators: [{
1861
+ type: Component,
1862
+ args: [{ selector: 'Image', template: `<img [src]="Source" [class]="Stretch" [ngStyle]="imageStyle" [alt]="">`, imports: [CommonModule], styles: [":host{display:grid;overflow:hidden}img{place-self:stretch}img.None{object-fit:none}img.Fill{object-fit:fill}img.Uniform{object-fit:contain}img.UniformToFill{object-fit:cover}\n"] }]
1863
+ }], propDecorators: { Source: [{
1864
+ type: Input
1865
+ }], Stretch: [{
1866
+ type: Input
1867
+ }] } });
1868
+
1869
+ class AppBarButtonComponent extends FrameworkElementComponent {
1870
+ constructor() {
1871
+ super(...arguments);
1872
+ this.IsEnabled = true;
1873
+ this.Click = new EventEmitter();
1874
+ }
1875
+ get disabled() {
1876
+ return !this.IsEnabled;
1877
+ }
1878
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AppBarButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1879
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: AppBarButtonComponent, isStandalone: true, selector: "AppBarButton", inputs: { IsEnabled: "IsEnabled", Text: "Text", Icon: "Icon" }, outputs: { Click: "Click" }, host: { properties: { "class.disabled": "this.disabled" } }, usesInheritance: true, ngImport: i0, template: `<div class="icon">{{Icon}}</div><div class="text">{{Text}}</div>`, isInline: true, styles: [":host{position:relative}:host{display:flex;flex-direction:row;align-items:center;transition:background-color var(--ControlNormalAnimationDuration);border-radius:var(--ControlCornerRadius);gap:4px;padding:6px;background-color:var(--SubtleFillColorTransparent)}:host *{color:var(--TextFillColorPrimary)}:host:hover{background-color:var(--SubtleFillColorSecondary)}:host:hover *{color:var(--TextFillColorPrimary)}:host:active{background-color:var(--SubtleFillColorTertiary)}:host:active *{color:var(--TextFillColorSecondary)}:host.disabled{background-color:var(--SubtleFillColorDisabled)}:host.disabled *{color:var(--TextFillColorDisabled)}:host .icon{font-family:var(--SymbolFontFamily)}\n"] }); }
1880
+ }
1881
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AppBarButtonComponent, decorators: [{
1882
+ type: Component,
1883
+ args: [{ selector: 'AppBarButton', template: `<div class="icon">{{Icon}}</div><div class="text">{{Text}}</div>`, styles: [":host{position:relative}:host{display:flex;flex-direction:row;align-items:center;transition:background-color var(--ControlNormalAnimationDuration);border-radius:var(--ControlCornerRadius);gap:4px;padding:6px;background-color:var(--SubtleFillColorTransparent)}:host *{color:var(--TextFillColorPrimary)}:host:hover{background-color:var(--SubtleFillColorSecondary)}:host:hover *{color:var(--TextFillColorPrimary)}:host:active{background-color:var(--SubtleFillColorTertiary)}:host:active *{color:var(--TextFillColorSecondary)}:host.disabled{background-color:var(--SubtleFillColorDisabled)}:host.disabled *{color:var(--TextFillColorDisabled)}:host .icon{font-family:var(--SymbolFontFamily)}\n"] }]
1884
+ }], propDecorators: { IsEnabled: [{
1885
+ type: Input
1886
+ }], Text: [{
1887
+ type: Input
1888
+ }], Icon: [{
1889
+ type: Input
1890
+ }], Click: [{
1891
+ type: Output
1892
+ }], disabled: [{
1893
+ type: HostBinding,
1894
+ args: ['class.disabled']
1895
+ }] } });
1896
+
1897
+ class CommandBarComponent extends FrameworkElementComponent {
1898
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: CommandBarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1899
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: CommandBarComponent, isStandalone: true, selector: "CommandBar", usesInheritance: true, ngImport: i0, template: `<ng-content/>`, isInline: true, styles: [":host{display:flex;flex-direction:row;align-items:stretch;justify-content:flex-start;padding:3px;gap:3px}\n"] }); }
1900
+ }
1901
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: CommandBarComponent, decorators: [{
1902
+ type: Component,
1903
+ args: [{ selector: 'CommandBar', template: `<ng-content/>`, styles: [":host{display:flex;flex-direction:row;align-items:stretch;justify-content:flex-start;padding:3px;gap:3px}\n"] }]
1904
+ }] });
1905
+
1906
+ class MenuFlyoutItemBase {
1907
+ }
1908
+
1909
+ class MenuFlyoutItemComponent extends MenuFlyoutItemBase {
1910
+ constructor() {
1911
+ super(...arguments);
1912
+ this.IsEnabled = true;
1913
+ this.Text = '';
1914
+ this.Click = new EventEmitter();
1915
+ }
1916
+ get disabled() {
1917
+ return !this.IsEnabled;
1918
+ }
1919
+ onClick() {
1920
+ this.Click.emit();
1921
+ }
1922
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: MenuFlyoutItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1923
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: MenuFlyoutItemComponent, isStandalone: true, selector: "MenuFlyoutItem", inputs: { IsEnabled: "IsEnabled", Text: "Text", Icon: "Icon" }, outputs: { Click: "Click" }, host: { listeners: { "click": "onClick()" }, properties: { "class.disabled": "this.disabled" } }, usesInheritance: true, ngImport: i0, template: `<div class="icon">{{Icon}}</div>
1924
+ <div class="text">{{Text}}</div>
1925
+ <div class="submenu-indicator"></div>`, isInline: true, styles: [":host{position:relative}:host{display:table-row}:host:hover:not(.disabled)>*{background-color:var(--SubtleFillColorSecondary)}:host.disabled>*{color:var(--TextFillColorDisabled)}.icon{display:table-cell;padding:3px 6px;border-radius:var(--ControlCornerRadius) 0 0 var(--ControlCornerRadius);font-family:var(--SymbolFontFamily)}.text{display:table-cell;padding:3px;margin:6px 0}.submenu-indicator{display:table-cell;padding:3px 6px;border-radius:0 var(--ControlCornerRadius) var(--ControlCornerRadius) 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
1926
+ }
1927
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: MenuFlyoutItemComponent, decorators: [{
1928
+ type: Component,
1929
+ args: [{ selector: 'MenuFlyoutItem', imports: [CommonModule], template: `<div class="icon">{{Icon}}</div>
1930
+ <div class="text">{{Text}}</div>
1931
+ <div class="submenu-indicator"></div>`, styles: [":host{position:relative}:host{display:table-row}:host:hover:not(.disabled)>*{background-color:var(--SubtleFillColorSecondary)}:host.disabled>*{color:var(--TextFillColorDisabled)}.icon{display:table-cell;padding:3px 6px;border-radius:var(--ControlCornerRadius) 0 0 var(--ControlCornerRadius);font-family:var(--SymbolFontFamily)}.text{display:table-cell;padding:3px;margin:6px 0}.submenu-indicator{display:table-cell;padding:3px 6px;border-radius:0 var(--ControlCornerRadius) var(--ControlCornerRadius) 0}\n"] }]
1932
+ }], propDecorators: { IsEnabled: [{
1933
+ type: Input
1934
+ }], Text: [{
1935
+ type: Input
1936
+ }], Icon: [{
1937
+ type: Input
1938
+ }], Click: [{
1939
+ type: Output
1940
+ }], disabled: [{
1941
+ type: HostBinding,
1942
+ args: ['class.disabled']
1943
+ }], onClick: [{
1944
+ type: HostListener,
1945
+ args: ['click', []]
1946
+ }] } });
1947
+
1948
+ class MenuFlyoutSeparator extends MenuFlyoutItemBase {
1949
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: MenuFlyoutSeparator, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1950
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: MenuFlyoutSeparator, isStandalone: true, selector: "MenuFlyoutSeparator", usesInheritance: true, ngImport: i0, template: `<div class="separator"></div>`, isInline: true, styles: [":host{position:relative}:host{display:table-row;position:relative}:host>.separator{position:absolute;display:block;inset:-.5px -2px;background-color:var(--DividerStrokeColorDefault)}\n"] }); }
1951
+ }
1952
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: MenuFlyoutSeparator, decorators: [{
1953
+ type: Component,
1954
+ args: [{ selector: 'MenuFlyoutSeparator', template: `<div class="separator"></div>`, styles: [":host{position:relative}:host{display:table-row;position:relative}:host>.separator{position:absolute;display:block;inset:-.5px -2px;background-color:var(--DividerStrokeColorDefault)}\n"] }]
1955
+ }] });
1956
+
1957
+ class ToolTipDirective {
1536
1958
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ToolTipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1537
1959
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.6", type: ToolTipDirective, isStandalone: false, selector: "[ToolTipService-ToolTip]", inputs: { ToolTip: ["ToolTipService-ToolTip", "ToolTip"] }, host: { properties: { "attr.title": "this.ToolTip" } }, ngImport: i0 }); }
1538
1960
  }
@@ -1562,6 +1984,144 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
1562
1984
  }]
1563
1985
  }] });
1564
1986
 
1987
+ class NumberBoxComponent extends FrameworkElementComponent {
1988
+ get Text() {
1989
+ return this._text;
1990
+ }
1991
+ get Value() {
1992
+ return this._value;
1993
+ }
1994
+ set Value(value) {
1995
+ this.setValue(value);
1996
+ this.updateText();
1997
+ }
1998
+ setValue(value) {
1999
+ value = this.clampValue(value);
2000
+ if (value == this.Value)
2001
+ return;
2002
+ this._value = value;
2003
+ this.ValueChange.emit(value);
2004
+ }
2005
+ constructor() {
2006
+ super();
2007
+ this.IsEnabled = true;
2008
+ this.PlaceholderText = '';
2009
+ this.TextAlignment = 'Left';
2010
+ this.InputMode = 'Float';
2011
+ this.Minimum = -Infinity;
2012
+ this.Maximum = Infinity;
2013
+ this.SmallChange = 1;
2014
+ this.LargeChange = 10;
2015
+ this.NumberFormatter = (value) => value.toString();
2016
+ this.ValueChange = new EventEmitter();
2017
+ this._text = '';
2018
+ this._value = NaN;
2019
+ this.TextAlignment = 'Right';
2020
+ }
2021
+ onChange() {
2022
+ this._text = this._input.nativeElement.value;
2023
+ let value;
2024
+ switch (this.InputMode) {
2025
+ case 'Float':
2026
+ value = parseFloat(this._text);
2027
+ break;
2028
+ case 'Integer':
2029
+ value = parseInt(this._text);
2030
+ break;
2031
+ }
2032
+ this.setValue(value);
2033
+ }
2034
+ clampValue(value) {
2035
+ if (!Number.isNaN(value)) {
2036
+ if (this.Minimum !== undefined && value < this.Minimum)
2037
+ value = this.Minimum;
2038
+ if (this.Maximum !== undefined && value > this.Maximum)
2039
+ value = this.Maximum;
2040
+ }
2041
+ return value;
2042
+ }
2043
+ onIncreaseClick() {
2044
+ this.Value += this.SmallChange;
2045
+ }
2046
+ onDecreaseClick() {
2047
+ this.Value -= this.SmallChange;
2048
+ }
2049
+ onBlur() {
2050
+ this.updateText();
2051
+ this._input.nativeElement.value = this._text;
2052
+ }
2053
+ onKeyDown(event) {
2054
+ switch (event.key) {
2055
+ case 'ArrowUp':
2056
+ this.Value += this.SmallChange;
2057
+ break;
2058
+ case 'ArrowDown':
2059
+ this.Value -= this.SmallChange;
2060
+ break;
2061
+ case 'PageUp':
2062
+ this.Value += this.LargeChange;
2063
+ break;
2064
+ case 'PageDown':
2065
+ this.Value -= this.LargeChange;
2066
+ break;
2067
+ }
2068
+ }
2069
+ updateText() {
2070
+ this._text = Number.isNaN(this.Value) ? '' : this.NumberFormatter(this.Value);
2071
+ }
2072
+ onContextMenu(event) {
2073
+ event.stopPropagation();
2074
+ }
2075
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: NumberBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2076
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: NumberBoxComponent, isStandalone: true, selector: "NumberBox", inputs: { IsEnabled: "IsEnabled", PlaceholderText: "PlaceholderText", TextAlignment: "TextAlignment", InputMode: "InputMode", Minimum: "Minimum", Maximum: "Maximum", SmallChange: "SmallChange", LargeChange: "LargeChange", NumberFormatter: "NumberFormatter", Value: "Value" }, outputs: { ValueChange: "ValueChange" }, host: { listeners: { "contextmenu": "onContextMenu($event)" } }, viewQueries: [{ propertyName: "_input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: `<label>
2077
+ <input #input type="text" [disabled]="!IsEnabled" [value]="Text" (change)="onChange()" [placeholder]="PlaceholderText" [style]="{'text-align': TextAlignment}" (blur)="onBlur()" (keydown)="onKeyDown($event)"/>
2078
+ <div class="popup">
2079
+ <RepeatButton Class="InlineButtonStyle" (Click)="onIncreaseClick()" [Delay]="500" [Interval]="50"><FontIcon Glyph="&#xE70E;"/></RepeatButton>
2080
+ <RepeatButton Class="InlineButtonStyle" (Click)="onDecreaseClick()" [Delay]="500" [Interval]="50"><FontIcon Glyph="&#xE70D;"/></RepeatButton>
2081
+ </div>
2082
+ <div class="icon">&#xEC8F;</div>
2083
+ </label>`, isInline: true, styles: [":host{position:relative}:host{display:grid}textarea{resize:none}input,textarea{outline-style:none;border-style:solid;border-width:1px;border-radius:var(--ControlCornerRadius);padding:6px;background-color:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);border-bottom-color:var(--ControlStrongStrokeColorDefault);color:var(--TextFillColorPrimary)}input::placeholder,textarea::placeholder{color:var(--TextFillColorSecondary);opacity:1}input:hover,textarea:hover{background-color:var(--ControlFillColorSecondary)}input:focus,input:active,textarea:focus,textarea:active{background-color:var(--ControlFillColorInputActive);border-bottom-color:var(--AccentFillColorDefault)}input:disabled,textarea:disabled{background-color:var(--ControlFillColorDisabled);border-bottom-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorDisabled)}::selection{background-color:var(--SystemAccentColor);color:var(--TextOnAccentFillColorPrimary)}\n", "label{display:grid;position:relative}input{grid-column-start:1;grid-row-start:1;padding-left:24px}.icon{grid-column-start:1;grid-row-start:1;align-self:center;justify-self:left;font-family:var(--SymbolFontFamily);margin-left:6px;color:var(--TextFillColorSecondary)}.popup{position:absolute;display:none;flex-direction:column;justify-content:center;left:0;top:50%;transform:translateY(-50%);border-width:1px;border-style:solid;border-radius:var(--OverlayCornerRadius);border-color:var(--SurfaceStrokeColorFlyout);background-color:var(--AcrylicInAppFillColorDefault);-webkit-backdrop-filter:var(--AcrylicBlur);backdrop-filter:var(--AcrylicBlur);box-shadow:0 0 15px #0000001a;gap:3px;padding:3px;z-index:1000}.popup .InlineButtonStyle{padding:5px}input:focus+.popup,input:active+.popup{display:flex}\n"], dependencies: [{ kind: "component", type: RepeatButtonComponent, selector: "RepeatButton", inputs: ["Delay", "Interval"] }, { kind: "component", type: FontIconComponent, selector: "FontIcon", inputs: ["FontFamily", "FontSize", "FontStyle", "FontWeight", "Glyph"] }] }); }
2084
+ }
2085
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: NumberBoxComponent, decorators: [{
2086
+ type: Component,
2087
+ args: [{ selector: 'NumberBox', template: `<label>
2088
+ <input #input type="text" [disabled]="!IsEnabled" [value]="Text" (change)="onChange()" [placeholder]="PlaceholderText" [style]="{'text-align': TextAlignment}" (blur)="onBlur()" (keydown)="onKeyDown($event)"/>
2089
+ <div class="popup">
2090
+ <RepeatButton Class="InlineButtonStyle" (Click)="onIncreaseClick()" [Delay]="500" [Interval]="50"><FontIcon Glyph="&#xE70E;"/></RepeatButton>
2091
+ <RepeatButton Class="InlineButtonStyle" (Click)="onDecreaseClick()" [Delay]="500" [Interval]="50"><FontIcon Glyph="&#xE70D;"/></RepeatButton>
2092
+ </div>
2093
+ <div class="icon">&#xEC8F;</div>
2094
+ </label>`, imports: [RepeatButtonComponent, FontIconComponent], styles: [":host{position:relative}:host{display:grid}textarea{resize:none}input,textarea{outline-style:none;border-style:solid;border-width:1px;border-radius:var(--ControlCornerRadius);padding:6px;background-color:var(--ControlFillColorDefault);border-color:var(--ControlStrokeColorDefault);border-bottom-color:var(--ControlStrongStrokeColorDefault);color:var(--TextFillColorPrimary)}input::placeholder,textarea::placeholder{color:var(--TextFillColorSecondary);opacity:1}input:hover,textarea:hover{background-color:var(--ControlFillColorSecondary)}input:focus,input:active,textarea:focus,textarea:active{background-color:var(--ControlFillColorInputActive);border-bottom-color:var(--AccentFillColorDefault)}input:disabled,textarea:disabled{background-color:var(--ControlFillColorDisabled);border-bottom-color:var(--ControlStrokeColorDefault);color:var(--TextFillColorDisabled)}::selection{background-color:var(--SystemAccentColor);color:var(--TextOnAccentFillColorPrimary)}\n", "label{display:grid;position:relative}input{grid-column-start:1;grid-row-start:1;padding-left:24px}.icon{grid-column-start:1;grid-row-start:1;align-self:center;justify-self:left;font-family:var(--SymbolFontFamily);margin-left:6px;color:var(--TextFillColorSecondary)}.popup{position:absolute;display:none;flex-direction:column;justify-content:center;left:0;top:50%;transform:translateY(-50%);border-width:1px;border-style:solid;border-radius:var(--OverlayCornerRadius);border-color:var(--SurfaceStrokeColorFlyout);background-color:var(--AcrylicInAppFillColorDefault);-webkit-backdrop-filter:var(--AcrylicBlur);backdrop-filter:var(--AcrylicBlur);box-shadow:0 0 15px #0000001a;gap:3px;padding:3px;z-index:1000}.popup .InlineButtonStyle{padding:5px}input:focus+.popup,input:active+.popup{display:flex}\n"] }]
2095
+ }], ctorParameters: () => [], propDecorators: { IsEnabled: [{
2096
+ type: Input
2097
+ }], PlaceholderText: [{
2098
+ type: Input
2099
+ }], TextAlignment: [{
2100
+ type: Input
2101
+ }], InputMode: [{
2102
+ type: Input
2103
+ }], Minimum: [{
2104
+ type: Input
2105
+ }], Maximum: [{
2106
+ type: Input
2107
+ }], SmallChange: [{
2108
+ type: Input
2109
+ }], LargeChange: [{
2110
+ type: Input
2111
+ }], NumberFormatter: [{
2112
+ type: Input
2113
+ }], ValueChange: [{
2114
+ type: Output
2115
+ }], _input: [{
2116
+ type: ViewChild,
2117
+ args: ['input']
2118
+ }], Value: [{
2119
+ type: Input
2120
+ }], onContextMenu: [{
2121
+ type: HostListener,
2122
+ args: ['contextmenu', ['$event']]
2123
+ }] } });
2124
+
1565
2125
  class TextBoxComponent extends FrameworkElementComponent {
1566
2126
  constructor() {
1567
2127
  super(...arguments);
@@ -1636,5 +2196,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
1636
2196
  * Generated bundle index. Do not edit.
1637
2197
  */
1638
2198
 
1639
- export { BorderComponent, ButtonComponent, CheckBoxComponent, ComboBoxComponent, DropDownButtonComponent, FlyoutComponent, FontIconComponent, FrameworkElementComponent, GridColumnDirective, GridColumnSpanDirective, GridComponent, GridDirective, GridModule, GridProperty, GridRowDirective, GridRowSpanDirective, ListBoxComponent, ListViewComponent, PanelComponent, PopupComponent, RadioButtonComponent, RadioButtonGroup, ScrollBarComponent, ScrollViewerComponent, SelectorComponent, SelectorItemTemplate, SliderComponent, StackPanelComponent, TextBlockComponent, TextBoxComponent, ToggleButtonComponent, ToggleSwitchComponent, ToolTipDirective, ToolTipServiceModule, XamlRootComponent, toAlignment, toJustification };
2199
+ export { AppBarButtonComponent, BorderComponent, ButtonComponent, CheckBoxComponent, ColorPickerComponent, ComboBoxComponent, CommandBarComponent, ContextFlyoutDirective, DropDownButtonComponent, FlyoutComponent, FontIconComponent, FrameworkElementComponent, GridColumnDirective, GridColumnSpanDirective, GridComponent, GridDirective, GridModule, GridProperty, GridRowDirective, GridRowSpanDirective, ImageComponent, ListBoxComponent, ListViewComponent, MenuFlyoutComponent, MenuFlyoutItemBase, MenuFlyoutItemComponent, MenuFlyoutSeparator, NumberBoxComponent, PanelComponent, PopupComponent, RadioButtonComponent, RadioButtonGroup, RepeatButtonComponent, ScrollBarComponent, ScrollViewerComponent, SelectorComponent, SelectorItemTemplate, SliderComponent, SplitButtonComponent, StackPanelComponent, TextBlockComponent, TextBoxComponent, ToggleButtonComponent, ToggleSwitchComponent, ToolTipDirective, ToolTipServiceModule, XamlRootComponent, colorToRgb, colorToString, rgbToHsl, stringToColor, toAlignment, toJustification };
1640
2200
  //# sourceMappingURL=xaml-ui.mjs.map