@public-ui/hydrate 2.0.0-rc.10 → 2.0.0-rc.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +373 -782
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -7082,7 +7082,7 @@ function transformOptions(options) {
7082
7082
  return options;
7083
7083
  }
7084
7084
 
7085
- function noop$1() {}
7085
+ function noop() {}
7086
7086
  function bindMemberFunctions(inst) {
7087
7087
  const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));
7088
7088
  mems.forEach(mem => {
@@ -7210,7 +7210,7 @@ class I18n extends EventEmitter {
7210
7210
  });
7211
7211
  }
7212
7212
  this.format = this.options.interpolation.format;
7213
- if (!callback) callback = noop$1;
7213
+ if (!callback) callback = noop;
7214
7214
  if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {
7215
7215
  const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
7216
7216
  if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];
@@ -7252,7 +7252,7 @@ class I18n extends EventEmitter {
7252
7252
  return deferred;
7253
7253
  }
7254
7254
  loadResources(language) {
7255
- let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$1;
7255
+ let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
7256
7256
  let usedCallback = callback;
7257
7257
  const usedLng = typeof language === 'string' ? language : this.language;
7258
7258
  if (typeof language === 'function') usedCallback = language;
@@ -7289,7 +7289,7 @@ class I18n extends EventEmitter {
7289
7289
  const deferred = defer();
7290
7290
  if (!lngs) lngs = this.languages;
7291
7291
  if (!ns) ns = this.options.ns;
7292
- if (!callback) callback = noop$1;
7292
+ if (!callback) callback = noop;
7293
7293
  this.services.backendConnector.reload(lngs, ns, err => {
7294
7294
  deferred.resolve();
7295
7295
  callback(err);
@@ -7507,7 +7507,7 @@ class I18n extends EventEmitter {
7507
7507
  }
7508
7508
  cloneInstance() {
7509
7509
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7510
- let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$1;
7510
+ let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
7511
7511
  const forkResourceStore = options.forkResourceStore;
7512
7512
  if (forkResourceStore) delete options.forkResourceStore;
7513
7513
  const mergedOptions = {
@@ -7564,7 +7564,7 @@ instance.createInstance = I18n.createInstance;
7564
7564
 
7565
7565
  class I18nextService {
7566
7566
  constructor() { }
7567
- static async getInstance(lng, translations) {
7567
+ static async createInstance(lng, translations) {
7568
7568
  if (Array.isArray(translations)) {
7569
7569
  translations = new Set(translations);
7570
7570
  }
@@ -7572,9 +7572,15 @@ class I18nextService {
7572
7572
  translations = new Set([translations]);
7573
7573
  }
7574
7574
  I18nextService.instance = new I18nextService();
7575
- await instance.init({
7576
- lng,
7577
- });
7575
+ if (!instance.isInitialized) {
7576
+ await instance.init({
7577
+ ns: [I18nextService.namespace],
7578
+ lng,
7579
+ });
7580
+ }
7581
+ else {
7582
+ await instance.loadNamespaces(I18nextService.namespace);
7583
+ }
7578
7584
  if (translations !== undefined) {
7579
7585
  translations.forEach((t) => t((l, t) => {
7580
7586
  I18nextService.instance.addResourceBundle(l, t);
@@ -7584,20 +7590,21 @@ class I18nextService {
7584
7590
  return this.instance;
7585
7591
  }
7586
7592
  static addResourceBundle(lng, translationMap) {
7587
- instance.addResourceBundle(lng, 'translation', translationMap, true);
7593
+ instance.addResourceBundle(lng, I18nextService.namespace, translationMap, true);
7588
7594
  }
7589
7595
  addResourceBundle(lng, translationMap) {
7590
7596
  I18nextService.addResourceBundle(lng, translationMap);
7591
7597
  }
7592
7598
  translate(key, options) {
7593
- return instance.t(key, Object.assign({ count: options === null || options === void 0 ? void 0 : options.count }, options === null || options === void 0 ? void 0 : options.placeholders));
7599
+ return instance.t(key, Object.assign({ ns: I18nextService.namespace, count: options === null || options === void 0 ? void 0 : options.count }, options === null || options === void 0 ? void 0 : options.placeholders));
7594
7600
  }
7595
7601
  }
7602
+ I18nextService.namespace = 'KoliBri';
7596
7603
 
7597
7604
  const register = async (themes, loaders, options) => {
7598
7605
  var _a, _b;
7599
7606
  if (STORE.I18n === undefined) {
7600
- const i18n = await I18nextService.getInstance((_b = (_a = options === null || options === void 0 ? void 0 : options.translation) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'de', options === null || options === void 0 ? void 0 : options.translations);
7607
+ const i18n = await I18nextService.createInstance((_b = (_a = options === null || options === void 0 ? void 0 : options.translation) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'de', options === null || options === void 0 ? void 0 : options.translations);
7601
7608
  Object.defineProperty(STORE, 'I18n', {
7602
7609
  value: i18n,
7603
7610
  writable: false,
@@ -7850,7 +7857,7 @@ const initKoliBri = () => {
7850
7857
  | . ' | .-. | | | ,--. | .-. \\ | .--' ,--.
7851
7858
  | |\\ \\ | '-' | | | | | | '--' / | | | |
7852
7859
  \`--' \`--´ \`---´ \`--' \`--' \`------´ \`--' \`--'
7853
- 🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io | 2.0.0-rc.10
7860
+ 🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io | 2.0.0-rc.11
7854
7861
  `, {
7855
7862
  forceLog: true,
7856
7863
  });
@@ -9108,614 +9115,6 @@ rgbaConvert.css = css_1;
9108
9115
  rgbaConvert.hex = hex_1;
9109
9116
  rgbaConvert.num = num_1;
9110
9117
 
9111
- function isFunction$1(value) {
9112
- return typeof value === 'function';
9113
- }
9114
-
9115
- function createErrorClass(createImpl) {
9116
- const _super = (instance) => {
9117
- Error.call(instance);
9118
- instance.stack = new Error().stack;
9119
- };
9120
- const ctorFunc = createImpl(_super);
9121
- ctorFunc.prototype = Object.create(Error.prototype);
9122
- ctorFunc.prototype.constructor = ctorFunc;
9123
- return ctorFunc;
9124
- }
9125
-
9126
- const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {
9127
- _super(this);
9128
- this.message = errors
9129
- ? `${errors.length} errors occurred during unsubscription:
9130
- ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}`
9131
- : '';
9132
- this.name = 'UnsubscriptionError';
9133
- this.errors = errors;
9134
- });
9135
-
9136
- function arrRemove(arr, item) {
9137
- if (arr) {
9138
- const index = arr.indexOf(item);
9139
- 0 <= index && arr.splice(index, 1);
9140
- }
9141
- }
9142
-
9143
- class Subscription {
9144
- constructor(initialTeardown) {
9145
- this.initialTeardown = initialTeardown;
9146
- this.closed = false;
9147
- this._parentage = null;
9148
- this._finalizers = null;
9149
- }
9150
- unsubscribe() {
9151
- let errors;
9152
- if (!this.closed) {
9153
- this.closed = true;
9154
- const { _parentage } = this;
9155
- if (_parentage) {
9156
- this._parentage = null;
9157
- if (Array.isArray(_parentage)) {
9158
- for (const parent of _parentage) {
9159
- parent.remove(this);
9160
- }
9161
- }
9162
- else {
9163
- _parentage.remove(this);
9164
- }
9165
- }
9166
- const { initialTeardown: initialFinalizer } = this;
9167
- if (isFunction$1(initialFinalizer)) {
9168
- try {
9169
- initialFinalizer();
9170
- }
9171
- catch (e) {
9172
- errors = e instanceof UnsubscriptionError ? e.errors : [e];
9173
- }
9174
- }
9175
- const { _finalizers } = this;
9176
- if (_finalizers) {
9177
- this._finalizers = null;
9178
- for (const finalizer of _finalizers) {
9179
- try {
9180
- execFinalizer(finalizer);
9181
- }
9182
- catch (err) {
9183
- errors = errors !== null && errors !== void 0 ? errors : [];
9184
- if (err instanceof UnsubscriptionError) {
9185
- errors = [...errors, ...err.errors];
9186
- }
9187
- else {
9188
- errors.push(err);
9189
- }
9190
- }
9191
- }
9192
- }
9193
- if (errors) {
9194
- throw new UnsubscriptionError(errors);
9195
- }
9196
- }
9197
- }
9198
- add(teardown) {
9199
- var _a;
9200
- if (teardown && teardown !== this) {
9201
- if (this.closed) {
9202
- execFinalizer(teardown);
9203
- }
9204
- else {
9205
- if (teardown instanceof Subscription) {
9206
- if (teardown.closed || teardown._hasParent(this)) {
9207
- return;
9208
- }
9209
- teardown._addParent(this);
9210
- }
9211
- (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);
9212
- }
9213
- }
9214
- }
9215
- _hasParent(parent) {
9216
- const { _parentage } = this;
9217
- return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));
9218
- }
9219
- _addParent(parent) {
9220
- const { _parentage } = this;
9221
- this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;
9222
- }
9223
- _removeParent(parent) {
9224
- const { _parentage } = this;
9225
- if (_parentage === parent) {
9226
- this._parentage = null;
9227
- }
9228
- else if (Array.isArray(_parentage)) {
9229
- arrRemove(_parentage, parent);
9230
- }
9231
- }
9232
- remove(teardown) {
9233
- const { _finalizers } = this;
9234
- _finalizers && arrRemove(_finalizers, teardown);
9235
- if (teardown instanceof Subscription) {
9236
- teardown._removeParent(this);
9237
- }
9238
- }
9239
- }
9240
- Subscription.EMPTY = (() => {
9241
- const empty = new Subscription();
9242
- empty.closed = true;
9243
- return empty;
9244
- })();
9245
- const EMPTY_SUBSCRIPTION = Subscription.EMPTY;
9246
- function isSubscription(value) {
9247
- return (value instanceof Subscription ||
9248
- (value && 'closed' in value && isFunction$1(value.remove) && isFunction$1(value.add) && isFunction$1(value.unsubscribe)));
9249
- }
9250
- function execFinalizer(finalizer) {
9251
- if (isFunction$1(finalizer)) {
9252
- finalizer();
9253
- }
9254
- else {
9255
- finalizer.unsubscribe();
9256
- }
9257
- }
9258
-
9259
- const config$1 = {
9260
- onUnhandledError: null,
9261
- onStoppedNotification: null,
9262
- Promise: undefined,
9263
- useDeprecatedSynchronousErrorHandling: false,
9264
- useDeprecatedNextContext: false,
9265
- };
9266
-
9267
- const timeoutProvider = {
9268
- setTimeout(handler, timeout, ...args) {
9269
- const { delegate } = timeoutProvider;
9270
- if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {
9271
- return delegate.setTimeout(handler, timeout, ...args);
9272
- }
9273
- return setTimeout(handler, timeout, ...args);
9274
- },
9275
- clearTimeout(handle) {
9276
- const { delegate } = timeoutProvider;
9277
- return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);
9278
- },
9279
- delegate: undefined,
9280
- };
9281
-
9282
- function reportUnhandledError(err) {
9283
- timeoutProvider.setTimeout(() => {
9284
- const { onUnhandledError } = config$1;
9285
- if (onUnhandledError) {
9286
- onUnhandledError(err);
9287
- }
9288
- else {
9289
- throw err;
9290
- }
9291
- });
9292
- }
9293
-
9294
- function noop() { }
9295
-
9296
- const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();
9297
- function errorNotification(error) {
9298
- return createNotification('E', undefined, error);
9299
- }
9300
- function nextNotification(value) {
9301
- return createNotification('N', value, undefined);
9302
- }
9303
- function createNotification(kind, value, error) {
9304
- return {
9305
- kind,
9306
- value,
9307
- error,
9308
- };
9309
- }
9310
-
9311
- function errorContext(cb) {
9312
- {
9313
- cb();
9314
- }
9315
- }
9316
-
9317
- class Subscriber extends Subscription {
9318
- constructor(destination) {
9319
- super();
9320
- this.isStopped = false;
9321
- if (destination) {
9322
- this.destination = destination;
9323
- if (isSubscription(destination)) {
9324
- destination.add(this);
9325
- }
9326
- }
9327
- else {
9328
- this.destination = EMPTY_OBSERVER;
9329
- }
9330
- }
9331
- static create(next, error, complete) {
9332
- return new SafeSubscriber(next, error, complete);
9333
- }
9334
- next(value) {
9335
- if (this.isStopped) {
9336
- handleStoppedNotification(nextNotification(value), this);
9337
- }
9338
- else {
9339
- this._next(value);
9340
- }
9341
- }
9342
- error(err) {
9343
- if (this.isStopped) {
9344
- handleStoppedNotification(errorNotification(err), this);
9345
- }
9346
- else {
9347
- this.isStopped = true;
9348
- this._error(err);
9349
- }
9350
- }
9351
- complete() {
9352
- if (this.isStopped) {
9353
- handleStoppedNotification(COMPLETE_NOTIFICATION, this);
9354
- }
9355
- else {
9356
- this.isStopped = true;
9357
- this._complete();
9358
- }
9359
- }
9360
- unsubscribe() {
9361
- if (!this.closed) {
9362
- this.isStopped = true;
9363
- super.unsubscribe();
9364
- this.destination = null;
9365
- }
9366
- }
9367
- _next(value) {
9368
- this.destination.next(value);
9369
- }
9370
- _error(err) {
9371
- try {
9372
- this.destination.error(err);
9373
- }
9374
- finally {
9375
- this.unsubscribe();
9376
- }
9377
- }
9378
- _complete() {
9379
- try {
9380
- this.destination.complete();
9381
- }
9382
- finally {
9383
- this.unsubscribe();
9384
- }
9385
- }
9386
- }
9387
- const _bind = Function.prototype.bind;
9388
- function bind(fn, thisArg) {
9389
- return _bind.call(fn, thisArg);
9390
- }
9391
- class ConsumerObserver {
9392
- constructor(partialObserver) {
9393
- this.partialObserver = partialObserver;
9394
- }
9395
- next(value) {
9396
- const { partialObserver } = this;
9397
- if (partialObserver.next) {
9398
- try {
9399
- partialObserver.next(value);
9400
- }
9401
- catch (error) {
9402
- handleUnhandledError(error);
9403
- }
9404
- }
9405
- }
9406
- error(err) {
9407
- const { partialObserver } = this;
9408
- if (partialObserver.error) {
9409
- try {
9410
- partialObserver.error(err);
9411
- }
9412
- catch (error) {
9413
- handleUnhandledError(error);
9414
- }
9415
- }
9416
- else {
9417
- handleUnhandledError(err);
9418
- }
9419
- }
9420
- complete() {
9421
- const { partialObserver } = this;
9422
- if (partialObserver.complete) {
9423
- try {
9424
- partialObserver.complete();
9425
- }
9426
- catch (error) {
9427
- handleUnhandledError(error);
9428
- }
9429
- }
9430
- }
9431
- }
9432
- class SafeSubscriber extends Subscriber {
9433
- constructor(observerOrNext, error, complete) {
9434
- super();
9435
- let partialObserver;
9436
- if (isFunction$1(observerOrNext) || !observerOrNext) {
9437
- partialObserver = {
9438
- next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),
9439
- error: error !== null && error !== void 0 ? error : undefined,
9440
- complete: complete !== null && complete !== void 0 ? complete : undefined,
9441
- };
9442
- }
9443
- else {
9444
- let context;
9445
- if (this && config$1.useDeprecatedNextContext) {
9446
- context = Object.create(observerOrNext);
9447
- context.unsubscribe = () => this.unsubscribe();
9448
- partialObserver = {
9449
- next: observerOrNext.next && bind(observerOrNext.next, context),
9450
- error: observerOrNext.error && bind(observerOrNext.error, context),
9451
- complete: observerOrNext.complete && bind(observerOrNext.complete, context),
9452
- };
9453
- }
9454
- else {
9455
- partialObserver = observerOrNext;
9456
- }
9457
- }
9458
- this.destination = new ConsumerObserver(partialObserver);
9459
- }
9460
- }
9461
- function handleUnhandledError(error) {
9462
- {
9463
- reportUnhandledError(error);
9464
- }
9465
- }
9466
- function defaultErrorHandler(err) {
9467
- throw err;
9468
- }
9469
- function handleStoppedNotification(notification, subscriber) {
9470
- const { onStoppedNotification } = config$1;
9471
- onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));
9472
- }
9473
- const EMPTY_OBSERVER = {
9474
- closed: true,
9475
- next: noop,
9476
- error: defaultErrorHandler,
9477
- complete: noop,
9478
- };
9479
-
9480
- const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();
9481
-
9482
- function identity(x) {
9483
- return x;
9484
- }
9485
-
9486
- function pipeFromArray(fns) {
9487
- if (fns.length === 0) {
9488
- return identity;
9489
- }
9490
- if (fns.length === 1) {
9491
- return fns[0];
9492
- }
9493
- return function piped(input) {
9494
- return fns.reduce((prev, fn) => fn(prev), input);
9495
- };
9496
- }
9497
-
9498
- class Observable {
9499
- constructor(subscribe) {
9500
- if (subscribe) {
9501
- this._subscribe = subscribe;
9502
- }
9503
- }
9504
- lift(operator) {
9505
- const observable = new Observable();
9506
- observable.source = this;
9507
- observable.operator = operator;
9508
- return observable;
9509
- }
9510
- subscribe(observerOrNext, error, complete) {
9511
- const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);
9512
- errorContext(() => {
9513
- const { operator, source } = this;
9514
- subscriber.add(operator
9515
- ?
9516
- operator.call(subscriber, source)
9517
- : source
9518
- ?
9519
- this._subscribe(subscriber)
9520
- :
9521
- this._trySubscribe(subscriber));
9522
- });
9523
- return subscriber;
9524
- }
9525
- _trySubscribe(sink) {
9526
- try {
9527
- return this._subscribe(sink);
9528
- }
9529
- catch (err) {
9530
- sink.error(err);
9531
- }
9532
- }
9533
- forEach(next, promiseCtor) {
9534
- promiseCtor = getPromiseCtor(promiseCtor);
9535
- return new promiseCtor((resolve, reject) => {
9536
- const subscriber = new SafeSubscriber({
9537
- next: (value) => {
9538
- try {
9539
- next(value);
9540
- }
9541
- catch (err) {
9542
- reject(err);
9543
- subscriber.unsubscribe();
9544
- }
9545
- },
9546
- error: reject,
9547
- complete: resolve,
9548
- });
9549
- this.subscribe(subscriber);
9550
- });
9551
- }
9552
- _subscribe(subscriber) {
9553
- var _a;
9554
- return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);
9555
- }
9556
- [observable]() {
9557
- return this;
9558
- }
9559
- pipe(...operations) {
9560
- return pipeFromArray(operations)(this);
9561
- }
9562
- toPromise(promiseCtor) {
9563
- promiseCtor = getPromiseCtor(promiseCtor);
9564
- return new promiseCtor((resolve, reject) => {
9565
- let value;
9566
- this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));
9567
- });
9568
- }
9569
- }
9570
- Observable.create = (subscribe) => {
9571
- return new Observable(subscribe);
9572
- };
9573
- function getPromiseCtor(promiseCtor) {
9574
- var _a;
9575
- return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config$1.Promise) !== null && _a !== void 0 ? _a : Promise;
9576
- }
9577
- function isObserver(value) {
9578
- return value && isFunction$1(value.next) && isFunction$1(value.error) && isFunction$1(value.complete);
9579
- }
9580
- function isSubscriber(value) {
9581
- return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));
9582
- }
9583
-
9584
- const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {
9585
- _super(this);
9586
- this.name = 'ObjectUnsubscribedError';
9587
- this.message = 'object unsubscribed';
9588
- });
9589
-
9590
- class Subject extends Observable {
9591
- constructor() {
9592
- super();
9593
- this.closed = false;
9594
- this.currentObservers = null;
9595
- this.observers = [];
9596
- this.isStopped = false;
9597
- this.hasError = false;
9598
- this.thrownError = null;
9599
- }
9600
- lift(operator) {
9601
- const subject = new AnonymousSubject(this, this);
9602
- subject.operator = operator;
9603
- return subject;
9604
- }
9605
- _throwIfClosed() {
9606
- if (this.closed) {
9607
- throw new ObjectUnsubscribedError();
9608
- }
9609
- }
9610
- next(value) {
9611
- errorContext(() => {
9612
- this._throwIfClosed();
9613
- if (!this.isStopped) {
9614
- if (!this.currentObservers) {
9615
- this.currentObservers = Array.from(this.observers);
9616
- }
9617
- for (const observer of this.currentObservers) {
9618
- observer.next(value);
9619
- }
9620
- }
9621
- });
9622
- }
9623
- error(err) {
9624
- errorContext(() => {
9625
- this._throwIfClosed();
9626
- if (!this.isStopped) {
9627
- this.hasError = this.isStopped = true;
9628
- this.thrownError = err;
9629
- const { observers } = this;
9630
- while (observers.length) {
9631
- observers.shift().error(err);
9632
- }
9633
- }
9634
- });
9635
- }
9636
- complete() {
9637
- errorContext(() => {
9638
- this._throwIfClosed();
9639
- if (!this.isStopped) {
9640
- this.isStopped = true;
9641
- const { observers } = this;
9642
- while (observers.length) {
9643
- observers.shift().complete();
9644
- }
9645
- }
9646
- });
9647
- }
9648
- unsubscribe() {
9649
- this.isStopped = this.closed = true;
9650
- this.observers = this.currentObservers = null;
9651
- }
9652
- get observed() {
9653
- var _a;
9654
- return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;
9655
- }
9656
- _trySubscribe(subscriber) {
9657
- this._throwIfClosed();
9658
- return super._trySubscribe(subscriber);
9659
- }
9660
- _subscribe(subscriber) {
9661
- this._throwIfClosed();
9662
- this._checkFinalizedStatuses(subscriber);
9663
- return this._innerSubscribe(subscriber);
9664
- }
9665
- _innerSubscribe(subscriber) {
9666
- const { hasError, isStopped, observers } = this;
9667
- if (hasError || isStopped) {
9668
- return EMPTY_SUBSCRIPTION;
9669
- }
9670
- this.currentObservers = null;
9671
- observers.push(subscriber);
9672
- return new Subscription(() => {
9673
- this.currentObservers = null;
9674
- arrRemove(observers, subscriber);
9675
- });
9676
- }
9677
- _checkFinalizedStatuses(subscriber) {
9678
- const { hasError, thrownError, isStopped } = this;
9679
- if (hasError) {
9680
- subscriber.error(thrownError);
9681
- }
9682
- else if (isStopped) {
9683
- subscriber.complete();
9684
- }
9685
- }
9686
- asObservable() {
9687
- const observable = new Observable();
9688
- observable.source = this;
9689
- return observable;
9690
- }
9691
- }
9692
- Subject.create = (destination, source) => {
9693
- return new AnonymousSubject(destination, source);
9694
- };
9695
- class AnonymousSubject extends Subject {
9696
- constructor(destination, source) {
9697
- super();
9698
- this.destination = destination;
9699
- this.source = source;
9700
- }
9701
- next(value) {
9702
- var _a, _b;
9703
- (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);
9704
- }
9705
- error(err) {
9706
- var _a, _b;
9707
- (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);
9708
- }
9709
- complete() {
9710
- var _a, _b;
9711
- (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);
9712
- }
9713
- _subscribe(subscriber) {
9714
- var _a, _b;
9715
- return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;
9716
- }
9717
- }
9718
-
9719
9118
  var n=.2126,r=.7152,t=.0722,e=1/12.92;function u(n){return Math.pow((n+.055)/1.055,2.4)}function a(a){var i=a[0]/255,c=a[1]/255,o=a[2]/255,s=i<=.03928?i*e:u(i),f=c<=.03928?c*e:u(c),l=o<=.03928?o*e:u(o);return s*n+f*r+l*t}function i$1(n){var r=255;8===(n=n.replace(/^#/,"")).length&&(r=parseInt(n.slice(6,8),16),n=n.substring(0,6)),4===n.length&&(r=parseInt(n.slice(3,4).repeat(2),16),n=n.substring(0,3)),3===n.length&&(n=n[0]+n[0]+n[1]+n[1]+n[2]+n[2]);var t=parseInt(n,16);return [t>>16,t>>8&255,255&t,r]}function c(n,r){return (Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function o(n,r){return c(a(n),a(r))}function s(n,r){return o(i$1(n),i$1(r))}function f(n){return n>=7?"AAA":n>=4.5?"AA":n>=3?"AA Large":"Fail"}
9720
9119
 
9721
9120
  const OBJECT_OBJECT = /\[object Object\]/;
@@ -10042,7 +9441,6 @@ class KoliBriUtils {
10042
9441
  }
10043
9442
  KoliBriUtils.executionLock = false;
10044
9443
  KoliBriUtils.cache = new Map();
10045
- const ariaCurrentSubject = new Subject();
10046
9444
  class KoliBriDevHelper {
10047
9445
  }
10048
9446
  KoliBriDevHelper.patchTheme = patchTheme;
@@ -10323,9 +9721,14 @@ var locale_de = {
10323
9721
  'logo-description': 'Logo {{orgShort}}. Bundesadler mit Flaggenstab und Schriftzug {{orgLong}}',
10324
9722
  'open-link-in-tab': 'Der Link wird in einem neuen Tab geöffnet.',
10325
9723
  'kolibri-logo': 'Logo von KoliBri',
10326
- 'sort-descending': 'Spalte {{column}} absteigend sortiert',
10327
- 'sort-ascending': 'Spalte {{column}} aufsteigend sortiert',
9724
+ 'sort-ascending': 'Die Spalte {{column}} ist aufsteigend{{multi}} sortiert.',
9725
+ 'sort-descending': 'Die Spalte {{column}} ist absteigend{{multi}} sortiert.',
9726
+ 'sort-then-ascending': ', dann die Spalte {{column}} aufsteigend',
9727
+ 'sort-then-descending': ', dann die Spalte {{column}} absteigend',
9728
+ 'sort-then-last-ascending': ' und dann die Spalte {{column}} aufsteigend',
9729
+ 'sort-then-last-descending': ' und dann die Spalte {{column}} absteigend',
10328
9730
  'sort-none': 'Spalte {{column}} nicht sortiert',
9731
+ 'table-sort-none': 'Keine Spalte ist sortiert.',
10329
9732
  'table-pagination-label': 'Paginierung für die Tabelle {{label}}',
10330
9733
  'avatar-alt': 'Avatar von {{name}}',
10331
9734
  'toast-close-all': 'Alle schließen',
@@ -10360,9 +9763,14 @@ var locale_en = {
10360
9763
  'logo-description': 'Logo {{orgShort}}. Federal eagle with flag staff and lettering {{orgLong}}',
10361
9764
  'open-link-in-tab': 'The link will open in a new tab.',
10362
9765
  'kolibri-logo': 'KoliBri logo',
10363
- 'sort-descending': 'sorted column {{column}} descending',
10364
- 'sort-ascending': 'sorted column {{column}} ascending',
9766
+ 'sort-descending': 'Sorted column {{column}} descending{{multi}}',
9767
+ 'sort-ascending': 'Sorted column {{column}} ascending{{multi}}',
9768
+ 'sort-then-ascending': ', then column {{column}} acending',
9769
+ 'sort-then-descending': ', then column {{column}} descending',
9770
+ 'sort-then-last-ascending': ' and then column {{column}} acending',
9771
+ 'sort-then-last-descending': ' and then column {{column}} descending',
10365
9772
  'sort-none': 'column {{column}} not sorted',
9773
+ 'table-sort-none': 'No column is sorted.',
10366
9774
  'table-pagination-label': 'Pagination for table {{label}}',
10367
9775
  'avatar-alt': 'Avatar of {{name}}',
10368
9776
  'toast-close-all': 'Close all',
@@ -10582,7 +9990,7 @@ class KolAvatarWc {
10582
9990
  };
10583
9991
  }
10584
9992
  render() {
10585
- return (hAsync(Host, null, hAsync("div", { "aria-label": translate('kol-avatar-alt', { placeholders: { name: this.state._label } }), class: "container", role: "img" }, this.state._src ? (hAsync("img", { alt: "", "aria-hidden": "true", class: "image", src: this.state._src })) : (hAsync("span", { "aria-hidden": "true", class: "initials" }, formatLabelAsInitials(this.state._label))))));
9993
+ return (hAsync(Host, null, hAsync("div", { "aria-label": translate('kol-avatar-alt', { placeholders: { name: this.state._label } }), class: "container", role: "img" }, this.state._src ? (hAsync("img", { alt: "", "aria-hidden": "true", class: "image", src: this.state._src })) : (hAsync("span", { "aria-hidden": "true", class: "initials" }, formatLabelAsInitials(this.state._label.trim()))))));
10586
9994
  }
10587
9995
  validateSrc(value) {
10588
9996
  validateImageSource(this, value);
@@ -11320,6 +10728,9 @@ class KolButton {
11320
10728
  this._value = undefined;
11321
10729
  this._variant = 'normal';
11322
10730
  }
10731
+ async getValue() {
10732
+ return this._value;
10733
+ }
11323
10734
  render() {
11324
10735
  return (hAsync(Host, null, hAsync("kol-button-wc", { ref: this.catchRef, class: {
11325
10736
  button: true,
@@ -11353,7 +10764,8 @@ class KolButton {
11353
10764
  "_tooltipAlign": [1, "_tooltip-align"],
11354
10765
  "_type": [1],
11355
10766
  "_value": [8],
11356
- "_variant": [1]
10767
+ "_variant": [1],
10768
+ "getValue": [64]
11357
10769
  },
11358
10770
  "$listeners$": undefined,
11359
10771
  "$lazyBundleId$": "-",
@@ -11429,6 +10841,9 @@ class KolButtonLink {
11429
10841
  this._type = 'button';
11430
10842
  this._value = undefined;
11431
10843
  }
10844
+ async getValue() {
10845
+ return this._value;
10846
+ }
11432
10847
  render() {
11433
10848
  return (hAsync(Host, null, hAsync("kol-button-wc", { ref: this.catchRef, _accessKey: this._accessKey, _ariaControls: this._ariaControls, _ariaExpanded: this._ariaExpanded, _ariaSelected: this._ariaSelected, _disabled: this._disabled, _icons: this._icons, _hideLabel: this._hideLabel, _id: this._id, _label: this._label, _name: this._name, _on: this._on, _role: "link", _syncValueBySelector: this._syncValueBySelector, _tabIndex: this._tabIndex, _tooltipAlign: this._tooltipAlign, _type: this._type, _value: this._value }, hAsync("slot", { name: "expert", slot: "expert" }))));
11434
10849
  }
@@ -11456,7 +10871,8 @@ class KolButtonLink {
11456
10871
  "_tabIndex": [2, "_tab-index"],
11457
10872
  "_tooltipAlign": [1, "_tooltip-align"],
11458
10873
  "_type": [1],
11459
- "_value": [8]
10874
+ "_value": [8],
10875
+ "getValue": [64]
11460
10876
  },
11461
10877
  "$listeners$": undefined,
11462
10878
  "$lazyBundleId$": "-",
@@ -12359,7 +11775,7 @@ class KolForm {
12359
11775
  }; }
12360
11776
  }
12361
11777
 
12362
- const defaultStyleCss$x = "@layer kol-global {\n\t.sc-kol-heading-default-h {\n\t\t\n\t\t--a11y-min-size: 44px;\n\t\t\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t\n\t\thyphens: auto;\n\t\t\n\t\tletter-spacing: inherit;\n\t\t\n\t\tword-break: break-word;\n\t\t\n\t\tword-spacing: inherit;\n\t}\n\n\t\n\t\n\t\n\t\n\t\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t\n\t\tfont-family: inherit;\n\t\t\n\t\tfont-size: inherit;\n\t}\n}\n\n@layer kol-global {\n\t\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; \n\t}\n}\n\n@layer kol-global {\n\t.sc-kol-heading-default-h {\n\t\t\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t\n\t\tbox-sizing: border-box;\n\t}\n\n\t\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t.sc-kol-heading-default-h > kol-heading-wc {\n\t\tdisplay: grid;\n\t}\n\n\t.sc-kol-heading-default-h > kol-heading-wc > .overline {\n\t\torder: 1;\n\t}\n\n\t.sc-kol-heading-default-h > kol-heading-wc > .headline {\n\t\torder: 2;\n\t}\n}";
11778
+ const defaultStyleCss$x = "@layer kol-global {\n\t.sc-kol-heading-default-h {\n\t\t\n\t\t--a11y-min-size: 44px;\n\t\t\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t\n\t\thyphens: auto;\n\t\t\n\t\tletter-spacing: inherit;\n\t\t\n\t\tword-break: break-word;\n\t\t\n\t\tword-spacing: inherit;\n\t}\n\n\t\n\t\n\t\n\t\n\t\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t\n\t\tfont-family: inherit;\n\t\t\n\t\tfont-size: inherit;\n\t}\n}\n\n@layer kol-global {\n\t\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; \n\t}\n}\n\n@layer kol-global {\n\t.sc-kol-heading-default-h {\n\t\t\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t\n\t\tbox-sizing: border-box;\n\t}\n\n\t\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}";
12363
11779
 
12364
11780
  class KolHeading {
12365
11781
  constructor(hostRef) {
@@ -12367,9 +11783,10 @@ class KolHeading {
12367
11783
  this._label = undefined;
12368
11784
  this._level = undefined;
12369
11785
  this._secondaryHeadline = undefined;
11786
+ this._variant = undefined;
12370
11787
  }
12371
11788
  render() {
12372
- return (hAsync("kol-heading-wc", { _label: this._label, _level: this._level, _secondaryHeadline: this._secondaryHeadline }, hAsync("slot", { name: "expert", slot: "expert" })));
11789
+ return (hAsync("kol-heading-wc", { _label: this._label, _level: this._level, _secondaryHeadline: this._secondaryHeadline, _variant: this._variant }, hAsync("slot", { name: "expert", slot: "expert" })));
12373
11790
  }
12374
11791
  static get style() { return {
12375
11792
  default: defaultStyleCss$x
@@ -12380,7 +11797,8 @@ class KolHeading {
12380
11797
  "$members$": {
12381
11798
  "_label": [1],
12382
11799
  "_level": [2],
12383
- "_secondaryHeadline": [1, "_secondary-headline"]
11800
+ "_secondaryHeadline": [1, "_secondary-headline"],
11801
+ "_variant": [1]
12384
11802
  },
12385
11803
  "$listeners$": undefined,
12386
11804
  "$lazyBundleId$": "-",
@@ -12388,26 +11806,22 @@ class KolHeading {
12388
11806
  }; }
12389
11807
  }
12390
11808
 
11809
+ const headingVariantPropTypeOptions = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'strong'];
11810
+ const validateHeadingVariant = (component, value) => {
11811
+ watchValidator(component, `_variant`, (value) => typeof value === 'string' && headingVariantPropTypeOptions.includes(value), new Set([`KoliBriHeadingVariant {${headingVariantPropTypeOptions.join(', ')}`]), value);
11812
+ };
11813
+
12391
11814
  class KolHeadingWc {
12392
11815
  constructor(hostRef) {
12393
11816
  registerInstance(this, hostRef);
12394
11817
  this.renderHeadline = (headline, level) => {
12395
- switch (level) {
12396
- case 1:
12397
- return (hAsync("h1", { class: "headline" }, headline, hAsync("slot", { name: "expert" })));
12398
- case 2:
12399
- return (hAsync("h2", { class: "headline" }, headline, hAsync("slot", { name: "expert" })));
12400
- case 3:
12401
- return (hAsync("h3", { class: "headline" }, headline, hAsync("slot", { name: "expert" })));
12402
- case 4:
12403
- return (hAsync("h4", { class: "headline" }, headline, hAsync("slot", { name: "expert" })));
12404
- case 5:
12405
- return (hAsync("h5", { class: "headline" }, headline, hAsync("slot", { name: "expert" })));
12406
- case 6:
12407
- return (hAsync("h6", { class: "headline" }, headline, hAsync("slot", { name: "expert" })));
12408
- default:
12409
- return (hAsync("strong", { class: "headline" }, headline, hAsync("slot", { name: "expert" })));
12410
- }
11818
+ const validHeadline = typeof level === 'number' && level > 0 && level <= 6;
11819
+ const HeadlineTag = validHeadline ? `h${level}` : 'strong';
11820
+ const variant = this._variant || HeadlineTag;
11821
+ return (hAsync(HeadlineTag, { class: {
11822
+ headline: true,
11823
+ [`headline-${variant}`]: true,
11824
+ } }, headline, hAsync("slot", { name: "expert" })));
12411
11825
  };
12412
11826
  this.renderSecondaryHeadline = (headline, level) => {
12413
11827
  switch (level) {
@@ -12430,6 +11844,7 @@ class KolHeadingWc {
12430
11844
  this._label = undefined;
12431
11845
  this._level = 1;
12432
11846
  this._secondaryHeadline = undefined;
11847
+ this._variant = undefined;
12433
11848
  this.state = {
12434
11849
  _label: '',
12435
11850
  _level: 1,
@@ -12444,10 +11859,14 @@ class KolHeadingWc {
12444
11859
  validateSecondaryHeadline(value) {
12445
11860
  watchString(this, '_secondaryHeadline', value);
12446
11861
  }
11862
+ validateVariant(value) {
11863
+ validateHeadingVariant(this, value);
11864
+ }
12447
11865
  componentWillLoad() {
12448
11866
  this.validateLabel(this._label);
12449
11867
  this.validateLevel(this._level);
12450
11868
  this.validateSecondaryHeadline(this._secondaryHeadline);
11869
+ this.validateVariant(this._variant);
12451
11870
  }
12452
11871
  render() {
12453
11872
  return (hAsync(Host, null, typeof this.state._secondaryHeadline === 'string' && this.state._secondaryHeadline.length > 0 ? (hAsync("hgroup", null, this.renderHeadline(this.state._label, this.state._level), this.state._secondaryHeadline && this.renderSecondaryHeadline(this.state._secondaryHeadline, this.state._level + 1))) : (this.renderHeadline(this.state._label, this.state._level))));
@@ -12455,7 +11874,8 @@ class KolHeadingWc {
12455
11874
  static get watchers() { return {
12456
11875
  "_label": ["validateLabel"],
12457
11876
  "_level": ["validateLevel"],
12458
- "_secondaryHeadline": ["validateSecondaryHeadline"]
11877
+ "_secondaryHeadline": ["validateSecondaryHeadline"],
11878
+ "_variant": ["validateVariant"]
12459
11879
  }; }
12460
11880
  static get cmpMeta() { return {
12461
11881
  "$flags$": 4,
@@ -12464,6 +11884,7 @@ class KolHeadingWc {
12464
11884
  "_label": [1],
12465
11885
  "_level": [2],
12466
11886
  "_secondaryHeadline": [1, "_secondary-headline"],
11887
+ "_variant": [1],
12467
11888
  "state": [32]
12468
11889
  },
12469
11890
  "$listeners$": undefined,
@@ -13112,6 +12533,10 @@ const InternalUnderlinedAccessKey = ({ accessKey, label }) => {
13112
12533
  const defaultStyleCss$t = "@layer kol-global {\n\t.sc-kol-input-checkbox-default-h {\n\t\t\n\t\t--a11y-min-size: 44px;\n\t\t\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t\n\t\thyphens: auto;\n\t\t\n\t\tletter-spacing: inherit;\n\t\t\n\t\tword-break: break-word;\n\t\t\n\t\tword-spacing: inherit;\n\t}\n\n\t\n\t\n\t\n\t\n\t\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t\n\t\tfont-family: inherit;\n\t\t\n\t\tfont-size: inherit;\n\t}\n}\n\n@layer kol-global {\n\t\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; \n\t}\n}\n\n@layer kol-global {\n\t.sc-kol-input-checkbox-default-h {\n\t\t\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t\n\t\tbox-sizing: border-box;\n\t}\n\n\t\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t.required label > span::after,\n\t.required legend > span::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.sc-kol-input-checkbox-default-h {\n\t\tdisplay: block;\n\t}\n}\n\n@layer kol-component {\n\tinput,\n\ttextarea {\n\t\tcursor: text;\n\t}\n\n\tinput[type='checkbox'],\n\tinput[type='color'],\n\tinput[type='file'],\n\tinput[type='radio'],\n\tinput[type='range'],\n\tlabel,\n\toption,\n\tselect {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t\n\t\n\tinput[type='color'],\n\tinput[type='date'],\n\tinput[type='datetime-local'],\n\tinput[type='email'],\n\tinput[type='file'],\n\tinput[type='month'],\n\tinput[type='number'],\n\tinput[type='password'],\n\tinput[type='search'],\n\tinput[type='tel'],\n\tinput[type='text'],\n\tinput[type='time'],\n\tinput[type='url'],\n\tinput[type='week'],\n\tselect,\n\tselect[multiple] option,\n\ttextarea {\n\t\tfont-size: 1rem;\n\t\twidth: 100%;\n\t}\n\n\t\n\tinput[type='file'] {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 10) 0.5em;\n\t}\n\n\t\n\tselect[multiple] option {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 2) 0.5em;\n\t}\n\n\tkol-input.disabled :is(button, input, label, option, select, textarea) {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t}\n}\n\n@layer kol-component {\n\tlabel {\n\t\tcursor: pointer;\n\t}\n\n\tkol-input {\n\t\talign-items: center;\n\t\tdisplay: grid;\n\t\tjustify-items: left;\n\t}\n\n\tkol-input.default,\n\tkol-input.switch {\n\t\tgrid-template-columns: auto 1fr;\n\t}\n\n\tkol-input .input {\n\t\talign-items: center;\n\t\tdisplay: grid;\n\t\torder: 1;\n\t}\n\n\tkol-input .input div {\n\t\tdisplay: inline-flex;\n\t}\n\n\tkol-input .input input {\n\t\tmargin: 0;\n\t}\n\n\tkol-input label {\n\t\torder: 2;\n\t}\n\n\tkol-input .hint,\n\tkol-input.error > kol-alert {\n\t\tgrid-column: span 2;\n\t}\n\n\tkol-input kol-alert.error {\n\t\torder: 3;\n\t}\n\n\tkol-input .hint {\n\t\torder: 4;\n\t}\n\n\t.error.hidden {\n\t\tdisplay: none;\n\t}\n\n\tinput {\n\t\tborder-style: solid;\n\t\tborder-width: 2px;\n\t\tline-height: 24px;\n\t}\n\n\tinput[type='checkbox'] {\n\t\tappearance: none;\n\t\tbackground-color: #fff;\n\t\tcursor: pointer;\n\t\ttransition: 0.5s;\n\t}\n\n\tinput[type='checkbox'].kol-disabled:before {\n\t\tcursor: not-allowed;\n\t}\n\n\tinput[type='checkbox']:before {\n\t\tcontent: '';\n\t\tcursor: pointer;\n\t}\n\n\t.default kol-icon {\n\t\tdisplay: none;\n\t}\n\n\tkol-input.required .tooltip-content .span-label::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.button {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: var(--a11y-min-size) auto;\n\t\tgrid-template-areas: 'error error' 'input label' 'hint hint';\n\t}\n\n\t.button[tabindex]:focus {\n\t\t\n\t\tcursor: inherit;\n\t}\n\n\t.button input {\n\t\tdisplay: none;\n\t}\n\n\t.button > .error {\n\t\tgrid-area: error;\n\t}\n\n\t.button > label {\n\t\tgrid-area: label;\n\t}\n\n\t.button > .input {\n\t\tgrid-area: input;\n\t}\n\n\t.button > .hint {\n\t\tgrid-area: hint;\n\t}\n\n\t.button .icon {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--a11y-min-size);\n\t\theight: var(--a11y-min-size);\n\t}\n}\n\n@layer kol-component {\n\t.default input[type='checkbox'] {\n\t\theight: 1.5em;\n\t\twidth: 1.5em;\n\t}\n\n\t.default input[type='checkbox']:before {\n\t\tdisplay: block;\n\t\theight: 1.5em;\n\t\tposition: relative;\n\t\twidth: 1.5em;\n\t}\n\n\t.default input[type='checkbox']:checked:before {\n\t\tborder-radius: 1px;\n\t\tborder-style: solid;\n\t\tborder-width: 0 3px 3px 0;\n\t\theight: 0.75em;\n\t\tleft: calc(0.375em - 2px);\n\t\ttransform: rotate(40deg) translate(-50%, -50%);\n\t\ttop: calc(0.7125em - 2px);\n\t\twidth: 0.375em;\n\t}\n\n\t.default input[type='checkbox']:indeterminate:before {\n\t\tbackground-color: #000;\n\t\theight: 0.2em;\n\t\tleft: 0.24em;\n\t\ttop: 0.575em;\n\t\twidth: 0.8em;\n\t}\n}\n\n@layer kol-component {\n\t.switch .input {\n\t\tposition: relative;\n\t}\n\n\t.switch input[type='checkbox'] {\n\t\tdisplay: inline-block;\n\t\theight: 1.7em;\n\t\tmin-width: 3.2em;\n\t\tposition: relative;\n\t\twidth: 3.2em;\n\t}\n\n\t.switch input[type='checkbox']::before {\n\t\tbackground-color: #000;\n\t\theight: 1.2em;\n\t\tleft: calc(0.25em - 2px);\n\t\ttop: calc(0.25em - 2px);\n\t\tposition: absolute;\n\t\ttransition: 0.5s;\n\t\twidth: 1.2em;\n\t}\n\n\t.switch input[type='checkbox']:checked::before {\n\t\ttransform: translateX(1.5em);\n\t}\n\n\t.switch input[type='checkbox']:indeterminate::before {\n\t\ttransform: translateX(0.75em);\n\t}\n\n\t.switch .icon {\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 1.2em;\n\t\theight: 1.2em;\n\t\tposition: absolute;\n\t\tz-index: 1;\n\t\ttop: 50%;\n\t\tleft: 4px;\n\t\ttransform: translate(0, -50%);\n\t\ttransition: 0.5s;\n\t\tcolor: #000;\n\t}\n\n\t.switch:has(input:checked) .icon {\n\t\ttransform: translate(1.5em, -50%);\n\t}\n\n\t.switch:has(input:indeterminate) .icon {\n\t\ttransform: translate(0.75em, -50%);\n\t}\n}";
13113
12534
 
13114
12535
  class KolInputCheckbox {
12536
+ async getValue() {
12537
+ var _a;
12538
+ return (_a = this.ref) === null || _a === void 0 ? void 0 : _a.checked;
12539
+ }
13115
12540
  render() {
13116
12541
  const { ariaDescribedBy } = getRenderStates(this.state);
13117
12542
  const hasExpertSlot = showExpertSlot(this.state._label);
@@ -13125,6 +12550,7 @@ class KolInputCheckbox {
13125
12550
  constructor(hostRef) {
13126
12551
  registerInstance(this, hostRef);
13127
12552
  this.catchRef = (ref) => {
12553
+ this.ref = ref;
13128
12554
  propagateFocus(this.host, ref);
13129
12555
  };
13130
12556
  this.onChange = (event) => {
@@ -13297,7 +12723,8 @@ class KolInputCheckbox {
13297
12723
  "_touched": [1540],
13298
12724
  "_value": [8],
13299
12725
  "_variant": [1],
13300
- "state": [32]
12726
+ "state": [32],
12727
+ "getValue": [64]
13301
12728
  },
13302
12729
  "$listeners$": undefined,
13303
12730
  "$lazyBundleId$": "-",
@@ -13400,6 +12827,10 @@ class InputColorController extends InputIconController {
13400
12827
  const defaultStyleCss$s = "@layer kol-global {\n\t.sc-kol-input-color-default-h {\n\t\t\n\t\t--a11y-min-size: 44px;\n\t\t\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t\n\t\thyphens: auto;\n\t\t\n\t\tletter-spacing: inherit;\n\t\t\n\t\tword-break: break-word;\n\t\t\n\t\tword-spacing: inherit;\n\t}\n\n\t\n\t\n\t\n\t\n\t\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t\n\t\tfont-family: inherit;\n\t\t\n\t\tfont-size: inherit;\n\t}\n}\n\n@layer kol-global {\n\t\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; \n\t}\n}\n\n@layer kol-global {\n\t.sc-kol-input-color-default-h {\n\t\t\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t\n\t\tbox-sizing: border-box;\n\t}\n\n\t\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t.required label > span::after,\n\t.required legend > span::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.sc-kol-input-color-default-h {\n\t\tdisplay: block;\n\t}\n}\n\n@layer kol-component {\n\tinput,\n\ttextarea {\n\t\tcursor: text;\n\t}\n\n\tinput[type='checkbox'],\n\tinput[type='color'],\n\tinput[type='file'],\n\tinput[type='radio'],\n\tinput[type='range'],\n\tlabel,\n\toption,\n\tselect {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t\n\t\n\tinput[type='color'],\n\tinput[type='date'],\n\tinput[type='datetime-local'],\n\tinput[type='email'],\n\tinput[type='file'],\n\tinput[type='month'],\n\tinput[type='number'],\n\tinput[type='password'],\n\tinput[type='search'],\n\tinput[type='tel'],\n\tinput[type='text'],\n\tinput[type='time'],\n\tinput[type='url'],\n\tinput[type='week'],\n\tselect,\n\tselect[multiple] option,\n\ttextarea {\n\t\tfont-size: 1rem;\n\t\twidth: 100%;\n\t}\n\n\t\n\tinput[type='file'] {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 10) 0.5em;\n\t}\n\n\t\n\tselect[multiple] option {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 2) 0.5em;\n\t}\n\n\tkol-input.disabled :is(button, input, label, option, select, textarea) {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t}\n}\n\n@layer kol-component {\n\tkol-input {\n\t\tdisplay: grid;\n\t}\n\n\tkol-input .input-slot {\n\t\tflex-grow: 1;\n\t}\n\n\tinput:not([type='checkbox'], [type='radio']),\n\tselect:not([multiple], [size]) {\n\t\theight: 2.75em;\n\t}\n\n\tinput:focus,\n\toption:focus,\n\tselect:focus,\n\ttextarea:focus {\n\t\toutline: 0;\n\t}\n\n\t.input {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t.input > kol-icon {\n\t\tdisplay: grid;\n\t\theight: var(--a11y-min-size);\n\t\tplace-items: center;\n\t}\n\n\tkol-input.required .input-tooltip .span-label::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\tdiv.input {\n\t\tcursor: pointer;\n\t}\n\n\t.error.hidden {\n\t\tdisplay: none;\n\t}\n}";
13401
12828
 
13402
12829
  class KolInputColor {
12830
+ async getValue() {
12831
+ var _a;
12832
+ return (_a = this.ref) === null || _a === void 0 ? void 0 : _a.value;
12833
+ }
13403
12834
  render() {
13404
12835
  const { ariaDescribedBy } = getRenderStates(this.state);
13405
12836
  const hasSuggestions = Array.isArray(this.state._suggestions) && this.state._suggestions.length > 0;
@@ -13555,7 +12986,8 @@ class KolInputColor {
13555
12986
  "_tooltipAlign": [1, "_tooltip-align"],
13556
12987
  "_touched": [1540],
13557
12988
  "_value": [1],
13558
- "state": [32]
12989
+ "state": [32],
12990
+ "getValue": [64]
13559
12991
  },
13560
12992
  "$listeners$": undefined,
13561
12993
  "$lazyBundleId$": "-",
@@ -13718,6 +13150,10 @@ InputDateController.DEFAULT_MAX_DATE = new Date(9999, 11, 31, 23, 59, 59);
13718
13150
  const defaultStyleCss$r = "@layer kol-global {\n\t.sc-kol-input-date-default-h {\n\t\t\n\t\t--a11y-min-size: 44px;\n\t\t\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t\n\t\thyphens: auto;\n\t\t\n\t\tletter-spacing: inherit;\n\t\t\n\t\tword-break: break-word;\n\t\t\n\t\tword-spacing: inherit;\n\t}\n\n\t\n\t\n\t\n\t\n\t\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t\n\t\tfont-family: inherit;\n\t\t\n\t\tfont-size: inherit;\n\t}\n}\n\n@layer kol-global {\n\t\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; \n\t}\n}\n\n@layer kol-global {\n\t.sc-kol-input-date-default-h {\n\t\t\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t\n\t\tbox-sizing: border-box;\n\t}\n\n\t\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t.required label > span::after,\n\t.required legend > span::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.sc-kol-input-date-default-h {\n\t\tdisplay: block;\n\t}\n}\n\n@layer kol-component {\n\tinput,\n\ttextarea {\n\t\tcursor: text;\n\t}\n\n\tinput[type='checkbox'],\n\tinput[type='color'],\n\tinput[type='file'],\n\tinput[type='radio'],\n\tinput[type='range'],\n\tlabel,\n\toption,\n\tselect {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t\n\t\n\tinput[type='color'],\n\tinput[type='date'],\n\tinput[type='datetime-local'],\n\tinput[type='email'],\n\tinput[type='file'],\n\tinput[type='month'],\n\tinput[type='number'],\n\tinput[type='password'],\n\tinput[type='search'],\n\tinput[type='tel'],\n\tinput[type='text'],\n\tinput[type='time'],\n\tinput[type='url'],\n\tinput[type='week'],\n\tselect,\n\tselect[multiple] option,\n\ttextarea {\n\t\tfont-size: 1rem;\n\t\twidth: 100%;\n\t}\n\n\t\n\tinput[type='file'] {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 10) 0.5em;\n\t}\n\n\t\n\tselect[multiple] option {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 2) 0.5em;\n\t}\n\n\tkol-input.disabled :is(button, input, label, option, select, textarea) {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t}\n}\n\n@layer kol-component {\n\tkol-input {\n\t\tdisplay: grid;\n\t}\n\n\tkol-input .input-slot {\n\t\tflex-grow: 1;\n\t}\n\n\tinput:not([type='checkbox'], [type='radio']),\n\tselect:not([multiple], [size]) {\n\t\theight: 2.75em;\n\t}\n\n\tinput:focus,\n\toption:focus,\n\tselect:focus,\n\ttextarea:focus {\n\t\toutline: 0;\n\t}\n\n\t.input {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t.input > kol-icon {\n\t\tdisplay: grid;\n\t\theight: var(--a11y-min-size);\n\t\tplace-items: center;\n\t}\n\n\tkol-input.required .input-tooltip .span-label::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\tkol-input-number {\n\t\tdisplay: block;\n\t}\n\n\t.error.hidden {\n\t\tdisplay: none;\n\t}\n}";
13719
13151
 
13720
13152
  class KolInputDate {
13153
+ async getValue() {
13154
+ var _a;
13155
+ return (_a = this.ref) === null || _a === void 0 ? void 0 : _a.value;
13156
+ }
13721
13157
  render() {
13722
13158
  const { ariaDescribedBy } = getRenderStates(this.state);
13723
13159
  const hasSuggestions = Array.isArray(this.state._suggestions) && this.state._suggestions.length > 0;
@@ -13928,7 +13364,8 @@ class KolInputDate {
13928
13364
  "_touched": [1540],
13929
13365
  "_type": [1],
13930
13366
  "_value": [1025],
13931
- "state": [32]
13367
+ "state": [32],
13368
+ "getValue": [64]
13932
13369
  },
13933
13370
  "$listeners$": undefined,
13934
13371
  "$lazyBundleId$": "-",
@@ -14086,6 +13523,10 @@ class InputEmailController extends InputTextEmailController {
14086
13523
  const defaultStyleCss$q = "@layer kol-global {\n\t.sc-kol-input-email-default-h {\n\t\t\n\t\t--a11y-min-size: 44px;\n\t\t\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t\n\t\thyphens: auto;\n\t\t\n\t\tletter-spacing: inherit;\n\t\t\n\t\tword-break: break-word;\n\t\t\n\t\tword-spacing: inherit;\n\t}\n\n\t\n\t\n\t\n\t\n\t\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t\n\t\tfont-family: inherit;\n\t\t\n\t\tfont-size: inherit;\n\t}\n}\n\n@layer kol-global {\n\t\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; \n\t}\n}\n\n@layer kol-global {\n\t.sc-kol-input-email-default-h {\n\t\t\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t\n\t\tbox-sizing: border-box;\n\t}\n\n\t\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t.required label > span::after,\n\t.required legend > span::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.sc-kol-input-email-default-h {\n\t\tdisplay: block;\n\t}\n}\n\n@layer kol-component {\n\tinput,\n\ttextarea {\n\t\tcursor: text;\n\t}\n\n\tinput[type='checkbox'],\n\tinput[type='color'],\n\tinput[type='file'],\n\tinput[type='radio'],\n\tinput[type='range'],\n\tlabel,\n\toption,\n\tselect {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t\n\t\n\tinput[type='color'],\n\tinput[type='date'],\n\tinput[type='datetime-local'],\n\tinput[type='email'],\n\tinput[type='file'],\n\tinput[type='month'],\n\tinput[type='number'],\n\tinput[type='password'],\n\tinput[type='search'],\n\tinput[type='tel'],\n\tinput[type='text'],\n\tinput[type='time'],\n\tinput[type='url'],\n\tinput[type='week'],\n\tselect,\n\tselect[multiple] option,\n\ttextarea {\n\t\tfont-size: 1rem;\n\t\twidth: 100%;\n\t}\n\n\t\n\tinput[type='file'] {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 10) 0.5em;\n\t}\n\n\t\n\tselect[multiple] option {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 2) 0.5em;\n\t}\n\n\tkol-input.disabled :is(button, input, label, option, select, textarea) {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t}\n}\n\n@layer kol-component {\n\tkol-input {\n\t\tdisplay: grid;\n\t}\n\n\tkol-input .input-slot {\n\t\tflex-grow: 1;\n\t}\n\n\tinput:not([type='checkbox'], [type='radio']),\n\tselect:not([multiple], [size]) {\n\t\theight: 2.75em;\n\t}\n\n\tinput:focus,\n\toption:focus,\n\tselect:focus,\n\ttextarea:focus {\n\t\toutline: 0;\n\t}\n\n\t.input {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t.input > kol-icon {\n\t\tdisplay: grid;\n\t\theight: var(--a11y-min-size);\n\t\tplace-items: center;\n\t}\n\n\tkol-input.required .input-tooltip .span-label::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.error.hidden {\n\t\tdisplay: none;\n\t}\n}";
14087
13524
 
14088
13525
  class KolInputEmail {
13526
+ async getValue() {
13527
+ var _a;
13528
+ return (_a = this.ref) === null || _a === void 0 ? void 0 : _a.value;
13529
+ }
14089
13530
  render() {
14090
13531
  const { ariaDescribedBy } = getRenderStates(this.state);
14091
13532
  const hasSuggestions = Array.isArray(this.state._suggestions) && this.state._suggestions.length > 0;
@@ -14298,7 +13739,8 @@ class KolInputEmail {
14298
13739
  "_tooltipAlign": [1, "_tooltip-align"],
14299
13740
  "_touched": [1540],
14300
13741
  "_value": [1],
14301
- "state": [32]
13742
+ "state": [32],
13743
+ "getValue": [64]
14302
13744
  },
14303
13745
  "$listeners$": undefined,
14304
13746
  "$lazyBundleId$": "-",
@@ -14348,6 +13790,10 @@ class InputFileController extends InputIconController {
14348
13790
  const defaultStyleCss$p = "@layer kol-global {\n\t.sc-kol-input-file-default-h {\n\t\t\n\t\t--a11y-min-size: 44px;\n\t\t\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t\n\t\thyphens: auto;\n\t\t\n\t\tletter-spacing: inherit;\n\t\t\n\t\tword-break: break-word;\n\t\t\n\t\tword-spacing: inherit;\n\t}\n\n\t\n\t\n\t\n\t\n\t\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t\n\t\tfont-family: inherit;\n\t\t\n\t\tfont-size: inherit;\n\t}\n}\n\n@layer kol-global {\n\t\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; \n\t}\n}\n\n@layer kol-global {\n\t.sc-kol-input-file-default-h {\n\t\t\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t\n\t\tbox-sizing: border-box;\n\t}\n\n\t\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t.required label > span::after,\n\t.required legend > span::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.sc-kol-input-file-default-h {\n\t\tdisplay: block;\n\t}\n}\n\n@layer kol-component {\n\tinput,\n\ttextarea {\n\t\tcursor: text;\n\t}\n\n\tinput[type='checkbox'],\n\tinput[type='color'],\n\tinput[type='file'],\n\tinput[type='radio'],\n\tinput[type='range'],\n\tlabel,\n\toption,\n\tselect {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t\n\t\n\tinput[type='color'],\n\tinput[type='date'],\n\tinput[type='datetime-local'],\n\tinput[type='email'],\n\tinput[type='file'],\n\tinput[type='month'],\n\tinput[type='number'],\n\tinput[type='password'],\n\tinput[type='search'],\n\tinput[type='tel'],\n\tinput[type='text'],\n\tinput[type='time'],\n\tinput[type='url'],\n\tinput[type='week'],\n\tselect,\n\tselect[multiple] option,\n\ttextarea {\n\t\tfont-size: 1rem;\n\t\twidth: 100%;\n\t}\n\n\t\n\tinput[type='file'] {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 10) 0.5em;\n\t}\n\n\t\n\tselect[multiple] option {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 2) 0.5em;\n\t}\n\n\tkol-input.disabled :is(button, input, label, option, select, textarea) {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t}\n}\n\n@layer kol-component {\n\tkol-input {\n\t\tdisplay: grid;\n\t}\n\n\tkol-input .input-slot {\n\t\tflex-grow: 1;\n\t}\n\n\tinput:not([type='checkbox'], [type='radio']),\n\tselect:not([multiple], [size]) {\n\t\theight: 2.75em;\n\t}\n\n\tinput:focus,\n\toption:focus,\n\tselect:focus,\n\ttextarea:focus {\n\t\toutline: 0;\n\t}\n\n\t.input {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t.input > kol-icon {\n\t\tdisplay: grid;\n\t\theight: var(--a11y-min-size);\n\t\tplace-items: center;\n\t}\n\n\tkol-input.required .input-tooltip .span-label::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\tlabel input[type='file']::-webkit-file-upload-button {\n\t\tdisplay: none;\n\t}\n\n\tlabel input[type='file']:before {\n\t\tcontent: 'Datei auswählen';\n\t}\n\n\tlabel input[multiple]:before {\n\t\tcontent: 'Dateien auswählen';\n\t}\n\n\tdiv.input {\n\t\tcursor: pointer;\n\t}\n\n\t.error.hidden {\n\t\tdisplay: none;\n\t}\n}";
14349
13791
 
14350
13792
  class KolInputFile {
13793
+ async getValue() {
13794
+ var _a;
13795
+ return (_a = this.ref) === null || _a === void 0 ? void 0 : _a.files;
13796
+ }
14351
13797
  render() {
14352
13798
  const { ariaDescribedBy } = getRenderStates(this.state);
14353
13799
  const hasExpertSlot = showExpertSlot(this.state._label);
@@ -14518,7 +13964,8 @@ class KolInputFile {
14518
13964
  "_tooltipAlign": [1, "_tooltip-align"],
14519
13965
  "_touched": [1540],
14520
13966
  "_value": [1],
14521
- "state": [32]
13967
+ "state": [32],
13968
+ "getValue": [64]
14522
13969
  },
14523
13970
  "$listeners$": undefined,
14524
13971
  "$lazyBundleId$": "-",
@@ -14623,6 +14070,10 @@ class InputNumberController extends InputIconController {
14623
14070
  const defaultStyleCss$o = "@layer kol-global {\n\t.sc-kol-input-number-default-h {\n\t\t\n\t\t--a11y-min-size: 44px;\n\t\t\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t\n\t\thyphens: auto;\n\t\t\n\t\tletter-spacing: inherit;\n\t\t\n\t\tword-break: break-word;\n\t\t\n\t\tword-spacing: inherit;\n\t}\n\n\t\n\t\n\t\n\t\n\t\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t\n\t\tfont-family: inherit;\n\t\t\n\t\tfont-size: inherit;\n\t}\n}\n\n@layer kol-global {\n\t\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; \n\t}\n}\n\n@layer kol-global {\n\t.sc-kol-input-number-default-h {\n\t\t\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t\n\t\tbox-sizing: border-box;\n\t}\n\n\t\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t.required label > span::after,\n\t.required legend > span::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.sc-kol-input-number-default-h {\n\t\tdisplay: block;\n\t}\n}\n\n@layer kol-component {\n\tinput,\n\ttextarea {\n\t\tcursor: text;\n\t}\n\n\tinput[type='checkbox'],\n\tinput[type='color'],\n\tinput[type='file'],\n\tinput[type='radio'],\n\tinput[type='range'],\n\tlabel,\n\toption,\n\tselect {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t\n\t\n\tinput[type='color'],\n\tinput[type='date'],\n\tinput[type='datetime-local'],\n\tinput[type='email'],\n\tinput[type='file'],\n\tinput[type='month'],\n\tinput[type='number'],\n\tinput[type='password'],\n\tinput[type='search'],\n\tinput[type='tel'],\n\tinput[type='text'],\n\tinput[type='time'],\n\tinput[type='url'],\n\tinput[type='week'],\n\tselect,\n\tselect[multiple] option,\n\ttextarea {\n\t\tfont-size: 1rem;\n\t\twidth: 100%;\n\t}\n\n\t\n\tinput[type='file'] {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 10) 0.5em;\n\t}\n\n\t\n\tselect[multiple] option {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 2) 0.5em;\n\t}\n\n\tkol-input.disabled :is(button, input, label, option, select, textarea) {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t}\n}\n\n@layer kol-component {\n\tkol-input {\n\t\tdisplay: grid;\n\t}\n\n\tkol-input .input-slot {\n\t\tflex-grow: 1;\n\t}\n\n\tinput:not([type='checkbox'], [type='radio']),\n\tselect:not([multiple], [size]) {\n\t\theight: 2.75em;\n\t}\n\n\tinput:focus,\n\toption:focus,\n\tselect:focus,\n\ttextarea:focus {\n\t\toutline: 0;\n\t}\n\n\t.input {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t.input > kol-icon {\n\t\tdisplay: grid;\n\t\theight: var(--a11y-min-size);\n\t\tplace-items: center;\n\t}\n\n\tkol-input.required .input-tooltip .span-label::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.error.hidden {\n\t\tdisplay: none;\n\t}\n}";
14624
14071
 
14625
14072
  class KolInputNumber {
14073
+ async getValue() {
14074
+ var _a;
14075
+ return (_a = this.ref) === null || _a === void 0 ? void 0 : _a.value;
14076
+ }
14626
14077
  render() {
14627
14078
  const { ariaDescribedBy } = getRenderStates(this.state);
14628
14079
  const hasSuggestions = Array.isArray(this.state._suggestions) && this.state._suggestions.length > 0;
@@ -14834,7 +14285,8 @@ class KolInputNumber {
14834
14285
  "_tooltipAlign": [1, "_tooltip-align"],
14835
14286
  "_touched": [1540],
14836
14287
  "_value": [1032],
14837
- "state": [32]
14288
+ "state": [32],
14289
+ "getValue": [64]
14838
14290
  },
14839
14291
  "$listeners$": undefined,
14840
14292
  "$lazyBundleId$": "-",
@@ -14845,6 +14297,10 @@ class KolInputNumber {
14845
14297
  const defaultStyleCss$n = "@layer kol-global {\n\t.sc-kol-input-password-default-h {\n\t\t\n\t\t--a11y-min-size: 44px;\n\t\t\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t\n\t\thyphens: auto;\n\t\t\n\t\tletter-spacing: inherit;\n\t\t\n\t\tword-break: break-word;\n\t\t\n\t\tword-spacing: inherit;\n\t}\n\n\t\n\t\n\t\n\t\n\t\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t\n\t\tfont-family: inherit;\n\t\t\n\t\tfont-size: inherit;\n\t}\n}\n\n@layer kol-global {\n\t\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; \n\t}\n}\n\n@layer kol-global {\n\t.sc-kol-input-password-default-h {\n\t\t\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t\n\t\tbox-sizing: border-box;\n\t}\n\n\t\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t.required label > span::after,\n\t.required legend > span::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.sc-kol-input-password-default-h {\n\t\tdisplay: block;\n\t}\n}\n\n@layer kol-component {\n\tinput,\n\ttextarea {\n\t\tcursor: text;\n\t}\n\n\tinput[type='checkbox'],\n\tinput[type='color'],\n\tinput[type='file'],\n\tinput[type='radio'],\n\tinput[type='range'],\n\tlabel,\n\toption,\n\tselect {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t\n\t\n\tinput[type='color'],\n\tinput[type='date'],\n\tinput[type='datetime-local'],\n\tinput[type='email'],\n\tinput[type='file'],\n\tinput[type='month'],\n\tinput[type='number'],\n\tinput[type='password'],\n\tinput[type='search'],\n\tinput[type='tel'],\n\tinput[type='text'],\n\tinput[type='time'],\n\tinput[type='url'],\n\tinput[type='week'],\n\tselect,\n\tselect[multiple] option,\n\ttextarea {\n\t\tfont-size: 1rem;\n\t\twidth: 100%;\n\t}\n\n\t\n\tinput[type='file'] {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 10) 0.5em;\n\t}\n\n\t\n\tselect[multiple] option {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 2) 0.5em;\n\t}\n\n\tkol-input.disabled :is(button, input, label, option, select, textarea) {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t}\n}\n\n@layer kol-component {\n\tkol-input {\n\t\tdisplay: grid;\n\t}\n\n\tkol-input .input-slot {\n\t\tflex-grow: 1;\n\t}\n\n\tinput:not([type='checkbox'], [type='radio']),\n\tselect:not([multiple], [size]) {\n\t\theight: 2.75em;\n\t}\n\n\tinput:focus,\n\toption:focus,\n\tselect:focus,\n\ttextarea:focus {\n\t\toutline: 0;\n\t}\n\n\t.input {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t.input > kol-icon {\n\t\tdisplay: grid;\n\t\theight: var(--a11y-min-size);\n\t\tplace-items: center;\n\t}\n\n\tkol-input.required .input-tooltip .span-label::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.error.hidden {\n\t\tdisplay: none;\n\t}\n}";
14846
14298
 
14847
14299
  class KolInputPassword {
14300
+ async getValue() {
14301
+ var _a;
14302
+ return (_a = this.ref) === null || _a === void 0 ? void 0 : _a.value;
14303
+ }
14848
14304
  render() {
14849
14305
  const { ariaDescribedBy } = getRenderStates(this.state);
14850
14306
  const hasExpertSlot = showExpertSlot(this.state._label);
@@ -15049,7 +14505,8 @@ class KolInputPassword {
15049
14505
  "_tooltipAlign": [1, "_tooltip-align"],
15050
14506
  "_touched": [1540],
15051
14507
  "_value": [1],
15052
- "state": [32]
14508
+ "state": [32],
14509
+ "getValue": [64]
15053
14510
  },
15054
14511
  "$listeners$": undefined,
15055
14512
  "$lazyBundleId$": "-",
@@ -15060,6 +14517,9 @@ class KolInputPassword {
15060
14517
  const defaultStyleCss$m = "@layer kol-global {\n\t.sc-kol-input-radio-default-h {\n\t\t\n\t\t--a11y-min-size: 44px;\n\t\t\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t\n\t\thyphens: auto;\n\t\t\n\t\tletter-spacing: inherit;\n\t\t\n\t\tword-break: break-word;\n\t\t\n\t\tword-spacing: inherit;\n\t}\n\n\t\n\t\n\t\n\t\n\t\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t\n\t\tfont-family: inherit;\n\t\t\n\t\tfont-size: inherit;\n\t}\n}\n\n@layer kol-global {\n\t\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; \n\t}\n}\n\n@layer kol-global {\n\t.sc-kol-input-radio-default-h {\n\t\t\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t\n\t\tbox-sizing: border-box;\n\t}\n\n\t\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t.required label > span::after,\n\t.required legend > span::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.sc-kol-input-radio-default-h {\n\t\tdisplay: block;\n\t}\n}\n\n@layer kol-component {\n\tinput,\n\ttextarea {\n\t\tcursor: text;\n\t}\n\n\tinput[type='checkbox'],\n\tinput[type='color'],\n\tinput[type='file'],\n\tinput[type='radio'],\n\tinput[type='range'],\n\tlabel,\n\toption,\n\tselect {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t\n\t\n\tinput[type='color'],\n\tinput[type='date'],\n\tinput[type='datetime-local'],\n\tinput[type='email'],\n\tinput[type='file'],\n\tinput[type='month'],\n\tinput[type='number'],\n\tinput[type='password'],\n\tinput[type='search'],\n\tinput[type='tel'],\n\tinput[type='text'],\n\tinput[type='time'],\n\tinput[type='url'],\n\tinput[type='week'],\n\tselect,\n\tselect[multiple] option,\n\ttextarea {\n\t\tfont-size: 1rem;\n\t\twidth: 100%;\n\t}\n\n\t\n\tinput[type='file'] {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 10) 0.5em;\n\t}\n\n\t\n\tselect[multiple] option {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 2) 0.5em;\n\t}\n\n\tkol-input.disabled :is(button, input, label, option, select, textarea) {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t}\n}\n\n@layer kol-component {\n\t.sc-kol-input-radio-default-h {\n\t\t--border-width: 2px;\n\t\t--input-size: 1.5em;\n\t}\n\n\tkol-input .icons {\n\t\tdisplay: none;\n\t}\n\n\tlabel {\n\t\tcursor: pointer;\n\t}\n\n\tinput {\n\t\tappearance: none;\n\t\tborder-width: var(--border-width);\n\t\tborder-style: solid;\n\t\tborder-radius: 100%;\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\theight: var(--input-size);\n\t\tmargin: 0;\n\t\tmin-height: var(--input-size);\n\t\tmin-width: var(--input-size);\n\t\tpadding: 0;\n\t\twidth: var(--input-size);\n\t}\n\n\tinput:before {\n\t\tborder-radius: 100%;\n\t\tcontent: '';\n\t\tmargin: auto;\n\t\theight: calc(var(--input-size) / 2);\n\t\twidth: calc(var(--input-size) / 2);\n\t}\n\n\tinput:checked:before {\n\t\tbackground-color: #000;\n\t}\n\n\tfieldset {\n\t\tdisplay: flex;\n\t}\n\n\tfieldset.vertical {\n\t\tflex-direction: column;\n\t}\n\n\tfieldset .input-slot {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t}\n\n\t\n\t.required label > span::after {\n\t\tcontent: '';\n\t}\n\n\t.error.hidden {\n\t\tdisplay: none;\n\t}\n}";
15061
14518
 
15062
14519
  class KolInputRadio {
14520
+ async getValue() {
14521
+ return this.currentValue;
14522
+ }
15063
14523
  render() {
15064
14524
  const { ariaDescribedBy, hasError } = getRenderStates(this.state);
15065
14525
  const hasExpertSlot = showExpertSlot(this.state._label);
@@ -15097,6 +14557,7 @@ class KolInputRadio {
15097
14557
  this.state._on.onChange(event, option.value);
15098
14558
  }
15099
14559
  this.controller.setValue(event, option.value);
14560
+ this.currentValue = option.value;
15100
14561
  }
15101
14562
  }
15102
14563
  };
@@ -15185,6 +14646,7 @@ class KolInputRadio {
15185
14646
  componentWillLoad() {
15186
14647
  this._alert = this._alert === true;
15187
14648
  this._touched = this._touched === true;
14649
+ this.currentValue = this._value;
15188
14650
  this.controller.componentWillLoad(this.onChange);
15189
14651
  }
15190
14652
  get host() { return getElement(this); }
@@ -15234,7 +14696,8 @@ class KolInputRadio {
15234
14696
  "_tooltipAlign": [1, "_tooltip-align"],
15235
14697
  "_touched": [1540],
15236
14698
  "_value": [8],
15237
- "state": [32]
14699
+ "state": [32],
14700
+ "getValue": [64]
15238
14701
  },
15239
14702
  "$listeners$": undefined,
15240
14703
  "$lazyBundleId$": "-",
@@ -15292,6 +14755,22 @@ class InputRangeController extends InputIconController {
15292
14755
  const defaultStyleCss$l = "@layer kol-global {\n\t.sc-kol-input-range-default-h {\n\t\t\n\t\t--a11y-min-size: 44px;\n\t\t\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t\n\t\thyphens: auto;\n\t\t\n\t\tletter-spacing: inherit;\n\t\t\n\t\tword-break: break-word;\n\t\t\n\t\tword-spacing: inherit;\n\t}\n\n\t\n\t\n\t\n\t\n\t\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t\n\t\tfont-family: inherit;\n\t\t\n\t\tfont-size: inherit;\n\t}\n}\n\n@layer kol-global {\n\t\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; \n\t}\n}\n\n@layer kol-global {\n\t.sc-kol-input-range-default-h {\n\t\t\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t\n\t\tbox-sizing: border-box;\n\t}\n\n\t\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t.required label > span::after,\n\t.required legend > span::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.sc-kol-input-range-default-h {\n\t\tdisplay: block;\n\t}\n}\n\n@layer kol-component {\n\tinput,\n\ttextarea {\n\t\tcursor: text;\n\t}\n\n\tinput[type='checkbox'],\n\tinput[type='color'],\n\tinput[type='file'],\n\tinput[type='radio'],\n\tinput[type='range'],\n\tlabel,\n\toption,\n\tselect {\n\t\tcursor: pointer;\n\t}\n\n\t\n\t\n\t\n\tinput[type='color'],\n\tinput[type='date'],\n\tinput[type='datetime-local'],\n\tinput[type='email'],\n\tinput[type='file'],\n\tinput[type='month'],\n\tinput[type='number'],\n\tinput[type='password'],\n\tinput[type='search'],\n\tinput[type='tel'],\n\tinput[type='text'],\n\tinput[type='time'],\n\tinput[type='url'],\n\tinput[type='week'],\n\tselect,\n\tselect[multiple] option,\n\ttextarea {\n\t\tfont-size: 1rem;\n\t\twidth: 100%;\n\t}\n\n\t\n\tinput[type='file'] {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 10) 0.5em;\n\t}\n\n\t\n\tselect[multiple] option {\n\t\tpadding: calc((var(--a11y-min-size) - 1rem) / 2) 0.5em;\n\t}\n\n\tkol-input.disabled :is(button, input, label, option, select, textarea) {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t}\n}\n\n@layer kol-component {\n\tkol-input {\n\t\tdisplay: grid;\n\t}\n\n\tkol-input .input-slot {\n\t\tflex-grow: 1;\n\t}\n\n\tinput:not([type='checkbox'], [type='radio']),\n\tselect:not([multiple], [size]) {\n\t\theight: 2.75em;\n\t}\n\n\tinput:focus,\n\toption:focus,\n\tselect:focus,\n\ttextarea:focus {\n\t\toutline: 0;\n\t}\n\n\t.input {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t.input > kol-icon {\n\t\tdisplay: grid;\n\t\theight: var(--a11y-min-size);\n\t\tplace-items: center;\n\t}\n\n\tkol-input.required .input-tooltip .span-label::after {\n\t\tcontent: '*';\n\t}\n}\n\n@layer kol-component {\n\t.inputs-wrapper {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t}\n\n\tinput[type='number'] {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t\twidth: var(--kolibri-input-range--input-number--width);\n\t}\n\n\t\n\tinput[type='range'] {\n\t\tappearance: none;\n\t\tbackground-color: #d3d3d3;\n\t\tborder: 1px solid #000;\n\t\tdisplay: inline-block;\n\t\tflex-grow: 1;\n\t\theight: 0.5rem;\n\t\tline-height: 1.5em;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\twidth: 0; \n\t}\n\n\tinput[type='range']::-webkit-slider-thumb {\n\t\tbox-sizing: border-box;\n\t\tbackground-color: #000;\n\t\theight: 20px;\n\t\twidth: 20px;\n\t\tborder-radius: 20px;\n\t\tcursor: pointer;\n\t\t-webkit-appearance: none;\n\t}\n\n\tinput[type='range']::-moz-range-thumb {\n\t\tbox-sizing: border-box;\n\t\tbackground-color: #000;\n\t\theight: 20px;\n\t\twidth: 20px;\n\t\tborder-radius: 20px;\n\t\tcursor: pointer;\n\t\t-moz-appearance: none;\n\t}\n\n\t.error.hidden {\n\t\tdisplay: none;\n\t}\n}\n\n\n@media (prefers-contrast: more) {\n\t/*!@::-webkit-slider-thumb*/.sc-kol-input-range-default::-webkit-slider-thumb {\n\t\toutline: 1px solid currentColor;\n\t}\n}";
15293
14756
 
15294
14757
  class KolInputRange {
14758
+ getSanitizedFloatValue(value) {
14759
+ const floatValue = parseFloat(value);
14760
+ if (this.state._max && floatValue > this.state._max) {
14761
+ return this.state._max;
14762
+ }
14763
+ if (this.state._min && floatValue < this.state._min) {
14764
+ return this.state._min;
14765
+ }
14766
+ return floatValue;
14767
+ }
14768
+ async getValue() {
14769
+ if (this.ref !== undefined) {
14770
+ const value = this.ref.value;
14771
+ return this.getSanitizedFloatValue(value);
14772
+ }
14773
+ }
15295
14774
  render() {
15296
14775
  const { ariaDescribedBy } = getRenderStates(this.state);
15297
14776
  const hasSuggestions = Array.isArray(this.state._suggestions) && this.state._suggestions.length > 0;
@@ -15319,14 +14798,11 @@ class KolInputRange {
15319
14798
  };
15320
14799
  this.onChange = (event) => {
15321
14800
  var _a, _b;
15322
- let value = parseFloat(event.target.value);
15323
- if (this.state._max && value > this.state._max)
15324
- value = this.state._max;
15325
- if (this.state._min && value < this.state._min)
15326
- value = this.state._min;
15327
- this.validateValue(value);
14801
+ const value = event.target.value;
14802
+ const floatValue = this.getSanitizedFloatValue(value);
14803
+ this.validateValue(floatValue);
15328
14804
  if (typeof ((_a = this.state._on) === null || _a === void 0 ? void 0 : _a.onChange) === 'function') {
15329
- (_b = this.state._on) === null || _b === void 0 ? void 0 : _b.onChange(event, value);
14805
+ (_b = this.state._on) === null || _b === void 0 ? void 0 : _b.onChange(event, floatValue);
15330
14806
  }
15331
14807
  };
15332
14808
  this.onKeyUp = (event) => {
@@ -15492,7 +14968,8 @@ class KolInputRange {
15492
14968
  "_tooltipAlign": [1, "_tooltip-align"],
15493
14969
  "_touched": [1540],
15494
14970
  "_value": [2],
15495
- "state": [32]
14971
+ "state": [32],
14972
+ "getValue": [64]
15496
14973
  },
15497
14974
  "$listeners$": undefined,
15498
14975
  "$lazyBundleId$": "-",
@@ -15508,6 +14985,10 @@ const defaultStyleCss$k = "@layer kol-global {\n\t.sc-kol-input-text-default-h {
15508
14985
 
15509
14986
  featureHint(`[KolInputText] Pre- und post-Label für Währung usw.`);
15510
14987
  class KolInputText {
14988
+ async getValue() {
14989
+ var _a;
14990
+ return (_a = this.ref) === null || _a === void 0 ? void 0 : _a.value;
14991
+ }
15511
14992
  render() {
15512
14993
  const { ariaDescribedBy } = getRenderStates(this.state);
15513
14994
  const hasSuggestions = Array.isArray(this.state._suggestions) && this.state._suggestions.length > 0;
@@ -15739,7 +15220,8 @@ class KolInputText {
15739
15220
  "_touched": [1540],
15740
15221
  "_type": [1],
15741
15222
  "_value": [1025],
15742
- "state": [32]
15223
+ "state": [32],
15224
+ "getValue": [64]
15743
15225
  },
15744
15226
  "$listeners$": undefined,
15745
15227
  "$lazyBundleId$": "-",
@@ -15857,12 +15339,12 @@ class KolLink {
15857
15339
  propagateFocus(this.host, ref);
15858
15340
  };
15859
15341
  this._accessKey = undefined;
15342
+ this._ariaCurrentValue = undefined;
15860
15343
  this._download = undefined;
15861
15344
  this._hideLabel = false;
15862
15345
  this._href = undefined;
15863
15346
  this._icons = undefined;
15864
15347
  this._label = undefined;
15865
- this._listenAriaCurrent = undefined;
15866
15348
  this._on = undefined;
15867
15349
  this._role = undefined;
15868
15350
  this._tabIndex = undefined;
@@ -15871,7 +15353,7 @@ class KolLink {
15871
15353
  this._tooltipAlign = 'right';
15872
15354
  }
15873
15355
  render() {
15874
- return (hAsync(Host, null, hAsync("kol-link-wc", { ref: this.catchRef, _accessKey: this._accessKey, _download: this._download, _hideLabel: this._hideLabel, _href: this._href, _icons: this._icons, _label: this._label, _listenAriaCurrent: this._listenAriaCurrent, _on: this._on, _role: this._role, _tabIndex: this._tabIndex, _target: this._target, _targetDescription: this._targetDescription, _tooltipAlign: this._tooltipAlign }, hAsync("slot", { name: "expert", slot: "expert" }))));
15356
+ return (hAsync(Host, null, hAsync("kol-link-wc", { ref: this.catchRef, _accessKey: this._accessKey, _ariaCurrentValue: this._ariaCurrentValue, _download: this._download, _hideLabel: this._hideLabel, _href: this._href, _icons: this._icons, _label: this._label, _on: this._on, _role: this._role, _tabIndex: this._tabIndex, _target: this._target, _targetDescription: this._targetDescription, _tooltipAlign: this._tooltipAlign }, hAsync("slot", { name: "expert", slot: "expert" }))));
15875
15357
  }
15876
15358
  get host() { return getElement(this); }
15877
15359
  static get style() { return {
@@ -15882,12 +15364,12 @@ class KolLink {
15882
15364
  "$tagName$": "kol-link",
15883
15365
  "$members$": {
15884
15366
  "_accessKey": [1, "_access-key"],
15367
+ "_ariaCurrentValue": [1, "_aria-current-value"],
15885
15368
  "_download": [1],
15886
15369
  "_hideLabel": [4, "_hide-label"],
15887
15370
  "_href": [1],
15888
15371
  "_icons": [1],
15889
15372
  "_label": [1],
15890
- "_listenAriaCurrent": [8, "_listen-aria-current"],
15891
15373
  "_on": [16],
15892
15374
  "_role": [1],
15893
15375
  "_tabIndex": [2, "_tab-index"],
@@ -15910,13 +15392,13 @@ class KolLinkButton {
15910
15392
  propagateFocus(this.host, ref);
15911
15393
  };
15912
15394
  this._accessKey = undefined;
15395
+ this._ariaCurrentValue = undefined;
15913
15396
  this._customClass = undefined;
15914
15397
  this._download = undefined;
15915
15398
  this._hideLabel = false;
15916
15399
  this._href = undefined;
15917
15400
  this._icons = undefined;
15918
15401
  this._label = undefined;
15919
- this._listenAriaCurrent = undefined;
15920
15402
  this._on = undefined;
15921
15403
  this._role = undefined;
15922
15404
  this._tabIndex = undefined;
@@ -15930,7 +15412,7 @@ class KolLinkButton {
15930
15412
  button: true,
15931
15413
  [this._variant]: this._variant !== 'custom',
15932
15414
  [this._customClass]: this._variant === 'custom' && typeof this._customClass === 'string' && this._customClass.length > 0,
15933
- }, _accessKey: this._accessKey, _download: this._download, _hideLabel: this._hideLabel, _href: this._href, _icons: this._icons, _label: this._label, _listenAriaCurrent: this._listenAriaCurrent, _on: this._on, _role: "button", _tabIndex: this._tabIndex, _target: this._target, _targetDescription: this._targetDescription, _tooltipAlign: this._tooltipAlign }, hAsync("slot", { name: "expert", slot: "expert" }))));
15415
+ }, _accessKey: this._accessKey, _ariaCurrentValue: this._ariaCurrentValue, _download: this._download, _hideLabel: this._hideLabel, _href: this._href, _icons: this._icons, _label: this._label, _on: this._on, _role: "button", _tabIndex: this._tabIndex, _target: this._target, _targetDescription: this._targetDescription, _tooltipAlign: this._tooltipAlign }, hAsync("slot", { name: "expert", slot: "expert" }))));
15934
15416
  }
15935
15417
  get host() { return getElement(this); }
15936
15418
  static get style() { return {
@@ -15941,13 +15423,13 @@ class KolLinkButton {
15941
15423
  "$tagName$": "kol-link-button",
15942
15424
  "$members$": {
15943
15425
  "_accessKey": [1, "_access-key"],
15426
+ "_ariaCurrentValue": [1, "_aria-current-value"],
15944
15427
  "_customClass": [1, "_custom-class"],
15945
15428
  "_download": [1],
15946
15429
  "_hideLabel": [4, "_hide-label"],
15947
15430
  "_href": [1],
15948
15431
  "_icons": [1],
15949
15432
  "_label": [1],
15950
- "_listenAriaCurrent": [8, "_listen-aria-current"],
15951
15433
  "_on": [16],
15952
15434
  "_role": [1],
15953
15435
  "_tabIndex": [2, "_tab-index"],
@@ -16071,17 +15553,6 @@ class KolLinkGroup {
16071
15553
  }; }
16072
15554
  }
16073
15555
 
16074
- const ariaCurrentPropTypeOptions = ['date', 'location', 'page', 'step', 'time', true, false];
16075
- const validate = (component, propName, value) => {
16076
- watchValidator(component, propName, (value) => (typeof value === 'string' || typeof value === 'boolean') && ariaCurrentPropTypeOptions.includes(value), new Set([`String {${ariaCurrentPropTypeOptions.filter((option) => typeof option === 'string').join(', ')}`, 'true', 'false']), value);
16077
- };
16078
- const validateAriaCurrent = (component, value) => {
16079
- validate(component, '_ariaCurrent', value);
16080
- };
16081
- const validateListenAriaCurrent = (component, value) => {
16082
- validate(component, '_listenAriaCurrent', value);
16083
- };
16084
-
16085
15556
  const validateDownload = (component, value) => {
16086
15557
  watchString(component, '_download', value);
16087
15558
  };
@@ -16100,6 +15571,22 @@ const validateLinkTarget = (component, value) => {
16100
15571
  watchString(component, '_target', value);
16101
15572
  };
16102
15573
 
15574
+ let currentLocation;
15575
+ const onLocationChange = (callback, eager = true) => {
15576
+ if (eager && typeof currentLocation === 'string') {
15577
+ callback(currentLocation);
15578
+ }
15579
+ return () => {
15580
+ };
15581
+ };
15582
+
15583
+ const ariaCurrentValuePropTypeOptions = ['date', 'location', 'page', 'step', 'time', 'true', 'false'];
15584
+ const validateAriaCurrentValue = (component, value) => {
15585
+ watchValidator(component, `_ariaCurrentValue`, (value) => typeof value === 'string' && ariaCurrentValuePropTypeOptions.includes(value), new Set([`AriaCurrentValue {${ariaCurrentValuePropTypeOptions.join(', ')}`]), value, {
15586
+ defaultValue: 'page',
15587
+ });
15588
+ };
15589
+
16103
15590
  class KolLinkWc {
16104
15591
  constructor(hostRef) {
16105
15592
  registerInstance(this, hostRef);
@@ -16129,28 +15616,13 @@ class KolLinkWc {
16129
15616
  }
16130
15617
  return { isExternal, tagAttrs };
16131
15618
  };
16132
- this.unsubscribeAriaCurrentSubject = ariaCurrentSubject.subscribe((event) => {
16133
- try {
16134
- if (this.state._listenAriaCurrent && this.state._listenAriaCurrent === event.ariaCurrent) {
16135
- if (this.state._href === event.href) {
16136
- this.validateAriaCurrent(event.ariaCurrent);
16137
- }
16138
- else {
16139
- this.validateAriaCurrent(false);
16140
- }
16141
- }
16142
- }
16143
- catch (e) {
16144
- devWarning(`The aria-current event is not valid.`);
16145
- }
16146
- });
16147
15619
  this._accessKey = undefined;
15620
+ this._ariaCurrentValue = undefined;
16148
15621
  this._download = undefined;
16149
15622
  this._hideLabel = false;
16150
15623
  this._href = undefined;
16151
15624
  this._icons = undefined;
16152
15625
  this._label = undefined;
16153
- this._listenAriaCurrent = undefined;
16154
15626
  this._on = undefined;
16155
15627
  this._role = undefined;
16156
15628
  this._tabIndex = undefined;
@@ -16160,6 +15632,7 @@ class KolLinkWc {
16160
15632
  this.state = {
16161
15633
  _href: '…',
16162
15634
  _icons: {},
15635
+ _ariaCurrentValue: 'page',
16163
15636
  };
16164
15637
  }
16165
15638
  render() {
@@ -16173,8 +15646,8 @@ class KolLinkWc {
16173
15646
  validateAccessKey(value) {
16174
15647
  validateAccessKey(this, value);
16175
15648
  }
16176
- validateAriaCurrent(value) {
16177
- validateAriaCurrent(this, value);
15649
+ validateAriaCurrentValue(value) {
15650
+ validateAriaCurrentValue(this, value);
16178
15651
  }
16179
15652
  validateDownload(value) {
16180
15653
  validateDownload(this, value);
@@ -16191,9 +15664,6 @@ class KolLinkWc {
16191
15664
  validateLabel(value) {
16192
15665
  validateLabelWithExpertSlot(this, value);
16193
15666
  }
16194
- validateListenAriaCurrent(value) {
16195
- validateListenAriaCurrent(this, value);
16196
- }
16197
15667
  validateOn(value) {
16198
15668
  validateLinkCallbacks(this, value);
16199
15669
  }
@@ -16214,31 +15684,36 @@ class KolLinkWc {
16214
15684
  }
16215
15685
  componentWillLoad() {
16216
15686
  this.validateAccessKey(this._accessKey);
15687
+ this.validateAriaCurrentValue(this._ariaCurrentValue);
16217
15688
  this.validateDownload(this._download);
16218
15689
  this.validateHideLabel(this._hideLabel);
16219
15690
  this.validateHref(this._href);
16220
15691
  this.validateIcons(this._icons);
16221
15692
  this.validateLabel(this._label);
16222
- this.validateListenAriaCurrent(this._listenAriaCurrent);
16223
15693
  this.validateOn(this._on);
16224
15694
  this.validateRole(this._role);
16225
15695
  this.validateTabIndex(this._tabIndex);
16226
15696
  this.validateTarget(this._target);
16227
15697
  this.validateTargetDescription(this._targetDescription);
16228
15698
  this.validateTooltipAlign(this._tooltipAlign);
15699
+ this.unsubscribeOnLocationChange = onLocationChange((location) => {
15700
+ this.state._ariaCurrent = location === this.state._href ? this.state._ariaCurrentValue : undefined;
15701
+ });
16229
15702
  }
16230
15703
  disconnectedCallback() {
16231
- this.unsubscribeAriaCurrentSubject.unsubscribe();
15704
+ if (this.unsubscribeOnLocationChange) {
15705
+ this.unsubscribeOnLocationChange();
15706
+ }
16232
15707
  }
16233
15708
  get host() { return getElement(this); }
16234
15709
  static get watchers() { return {
16235
15710
  "_accessKey": ["validateAccessKey"],
15711
+ "_ariaCurrentValue": ["validateAriaCurrentValue"],
16236
15712
  "_download": ["validateDownload"],
16237
15713
  "_hideLabel": ["validateHideLabel"],
16238
15714
  "_href": ["validateHref"],
16239
15715
  "_icons": ["validateIcons"],
16240
15716
  "_label": ["validateLabel"],
16241
- "_listenAriaCurrent": ["validateListenAriaCurrent"],
16242
15717
  "_on": ["validateOn"],
16243
15718
  "_role": ["validateRole"],
16244
15719
  "_tabIndex": ["validateTabIndex"],
@@ -16251,12 +15726,12 @@ class KolLinkWc {
16251
15726
  "$tagName$": "kol-link-wc",
16252
15727
  "$members$": {
16253
15728
  "_accessKey": [1, "_access-key"],
15729
+ "_ariaCurrentValue": [1, "_aria-current-value"],
16254
15730
  "_download": [1],
16255
15731
  "_hideLabel": [4, "_hide-label"],
16256
15732
  "_href": [1],
16257
15733
  "_icons": [1],
16258
15734
  "_label": [1],
16259
- "_listenAriaCurrent": [8, "_listen-aria-current"],
16260
15735
  "_on": [16],
16261
15736
  "_role": [1],
16262
15737
  "_tabIndex": [2, "_tab-index"],
@@ -16637,7 +16112,6 @@ class KolNav {
16637
16112
  return this.li(props.collapsible, props.hideLabel, props.deep, index, link, props.orientation);
16638
16113
  })));
16639
16114
  };
16640
- this._ariaCurrentValue = false;
16641
16115
  this._collapsible = true;
16642
16116
  this._hasCompactButton = false;
16643
16117
  this._hideLabel = false;
@@ -16645,7 +16119,6 @@ class KolNav {
16645
16119
  this._links = undefined;
16646
16120
  this._orientation = 'vertical';
16647
16121
  this.state = {
16648
- _ariaCurrentValue: false,
16649
16122
  _collapsible: true,
16650
16123
  _hasCompactButton: false,
16651
16124
  _hideLabel: false,
@@ -16687,9 +16160,6 @@ class KolNav {
16687
16160
  },
16688
16161
  }, _tooltipAlign: "right", _variant: "ghost" }))))));
16689
16162
  }
16690
- validateAriaCurrentValue(value) {
16691
- watchValidator(this, '_ariaCurrentValue', (value) => value === true || value === 'date' || value === 'location' || value === 'page' || value === 'step' || value === 'time', new Set(['boolean', 'String {data, location, page, step, time}']), value);
16692
- }
16693
16163
  validateCollapsible(value) {
16694
16164
  validateCollapsible(this, value);
16695
16165
  }
@@ -16717,7 +16187,6 @@ class KolNav {
16717
16187
  });
16718
16188
  }
16719
16189
  componentWillLoad() {
16720
- this.validateAriaCurrentValue(this._ariaCurrentValue);
16721
16190
  this.validateCollapsible(this._collapsible);
16722
16191
  this.validateHideLabel(this._hideLabel);
16723
16192
  this.validateHasCompactButton(this._hasCompactButton);
@@ -16729,7 +16198,6 @@ class KolNav {
16729
16198
  removeNavLabel(this.state._label);
16730
16199
  }
16731
16200
  static get watchers() { return {
16732
- "_ariaCurrentValue": ["validateAriaCurrentValue"],
16733
16201
  "_collapsible": ["validateCollapsible"],
16734
16202
  "_hasCompactButton": ["validateHasCompactButton"],
16735
16203
  "_hideLabel": ["validateHideLabel"],
@@ -16744,7 +16212,6 @@ class KolNav {
16744
16212
  "$flags$": 41,
16745
16213
  "$tagName$": "kol-nav",
16746
16214
  "$members$": {
16747
- "_ariaCurrentValue": [8, "_aria-current-value"],
16748
16215
  "_collapsible": [4],
16749
16216
  "_hasCompactButton": [4, "_has-compact-button"],
16750
16217
  "_hideLabel": [4, "_hide-label"],
@@ -18916,6 +18383,9 @@ const isSelected = (valueList, optionValue) => {
18916
18383
  return Array.isArray(valueList) && valueList.includes(optionValue);
18917
18384
  };
18918
18385
  class KolSelect {
18386
+ async getValue() {
18387
+ return this._value;
18388
+ }
18919
18389
  renderOptgroup(optgroup, preKey) {
18920
18390
  var _a;
18921
18391
  return (hAsync("optgroup", { disabled: optgroup.disabled, label: optgroup.label }, (_a = optgroup.options) === null || _a === void 0 ? void 0 : _a.map((option, index) => {
@@ -19114,7 +18584,8 @@ class KolSelect {
19114
18584
  "_tooltipAlign": [1, "_tooltip-align"],
19115
18585
  "_touched": [1540],
19116
18586
  "_value": [1025],
19117
- "state": [32]
18587
+ "state": [32],
18588
+ "getValue": [64]
19118
18589
  },
19119
18590
  "$listeners$": undefined,
19120
18591
  "$lazyBundleId$": "-",
@@ -31716,6 +31187,7 @@ class KolTable {
31716
31187
  registerInstance(this, hostRef);
31717
31188
  this.horizontal = true;
31718
31189
  this.sortDirections = new Map();
31190
+ this.sortData = [];
31719
31191
  this.showPagination = false;
31720
31192
  this.pageStartSlice = 0;
31721
31193
  this.pageEndSlice = 10;
@@ -31757,8 +31229,42 @@ class KolTable {
31757
31229
  }
31758
31230
  };
31759
31231
  this.updateSortedData = (cell = this.sortedColumnHead) => {
31232
+ if (this.disableSort) {
31233
+ setState(this, '_sortedData', this.state._data);
31234
+ return;
31235
+ }
31760
31236
  let sortedData = this.state._data;
31761
- if (typeof this.sortFunction === 'function') {
31237
+ if (this.sortData.length > 0) {
31238
+ sortedData = this.state._data.sort((a, b) => {
31239
+ for (let index = 0; index < this.sortData.length; index++) {
31240
+ const data = this.sortData[index];
31241
+ const result = data.compareFn(a, b);
31242
+ if (result !== 0) {
31243
+ return data.direction === 'ASC' ? result : -result;
31244
+ }
31245
+ }
31246
+ return 0;
31247
+ });
31248
+ if (this.sortData.length === 1) {
31249
+ this.ariaLive = translate(`kol-sort-${this.sortData[0].direction === 'ASC' ? 'ascending' : 'descending'}`, {
31250
+ placeholders: { column: this.sortData[0].label, multi: '' },
31251
+ });
31252
+ }
31253
+ else {
31254
+ let sortText = '';
31255
+ for (let index = 1; index < this.sortData.length - 1; index++) {
31256
+ const data = this.sortData[index];
31257
+ sortText += translate(`kol-sort-then-${data.direction === 'ASC' ? 'ascending' : 'descending'}`, { placeholders: { column: data.label } });
31258
+ }
31259
+ sortText += translate(`kol-sort-then-last-${this.sortData[this.sortData.length - 1].direction === 'ASC' ? 'ascending' : 'descending'}`, {
31260
+ placeholders: { column: this.sortData[this.sortData.length - 1].label },
31261
+ });
31262
+ this.ariaLive = translate(`kol-sort-${this.sortData[0].direction === 'ASC' ? 'ascending' : 'descending'}`, {
31263
+ placeholders: { column: this.sortData[0].label, multi: sortText },
31264
+ });
31265
+ }
31266
+ }
31267
+ else if (typeof this.sortFunction === 'function') {
31762
31268
  switch (this.sortDirections.get(this.sortFunction)) {
31763
31269
  case 'ASC':
31764
31270
  sortedData = this.sortFunction([...this.state._data]);
@@ -31777,6 +31283,9 @@ class KolTable {
31777
31283
  this.ariaLive = translate('kol-sort-none', { placeholders: { column: cell.label } });
31778
31284
  }
31779
31285
  }
31286
+ else {
31287
+ this.ariaLive = translate('kol-table-sort-none');
31288
+ }
31780
31289
  setState(this, '_sortedData', sortedData);
31781
31290
  };
31782
31291
  this.renderTableRow = (row, rowIndex) => {
@@ -31786,42 +31295,47 @@ class KolTable {
31786
31295
  if (cell.asTd === false) {
31787
31296
  const headerCell = cell;
31788
31297
  let sortDirection = undefined;
31298
+ let shortSortDirection = 'NOS';
31789
31299
  let sortButtonIcon = 'codicon codicon-fold';
31790
- if (!this.disableSort && headerCell.key === this.sortedColumnHead.key) {
31791
- switch (this.sortedColumnHead.sortDirection) {
31792
- case 'ASC':
31793
- sortButtonIcon = 'codicon codicon-chevron-up';
31794
- sortDirection = 'ascending';
31795
- break;
31796
- case 'DESC':
31797
- sortButtonIcon = 'codicon codicon-chevron-down';
31798
- sortDirection = 'descending';
31799
- break;
31300
+ if (!this.disableSort) {
31301
+ if (headerCell.key) {
31302
+ const data = this.sortData.find((value) => value.key === headerCell.key);
31303
+ if (data) {
31304
+ shortSortDirection = data.direction;
31305
+ switch (data.direction) {
31306
+ case 'ASC':
31307
+ sortButtonIcon = 'codicon codicon-chevron-up';
31308
+ sortDirection = 'ascending';
31309
+ break;
31310
+ case 'DESC':
31311
+ sortButtonIcon = 'codicon codicon-chevron-down';
31312
+ sortDirection = 'descending';
31313
+ break;
31314
+ }
31315
+ }
31316
+ }
31317
+ if (headerCell.key === this.sortedColumnHead.key) {
31318
+ shortSortDirection = this.sortedColumnHead.sortDirection;
31319
+ switch (this.sortedColumnHead.sortDirection) {
31320
+ case 'ASC':
31321
+ sortButtonIcon = 'codicon codicon-chevron-up';
31322
+ sortDirection = 'ascending';
31323
+ break;
31324
+ case 'DESC':
31325
+ sortButtonIcon = 'codicon codicon-chevron-down';
31326
+ sortDirection = 'descending';
31327
+ break;
31328
+ }
31800
31329
  }
31801
31330
  }
31802
31331
  return (hAsync("th", { key: `tbody-${rowIndex}-${colIndex}-${headerCell.label}`, scope: typeof headerCell.rowSpan === 'number' && headerCell.rowSpan > 1 ? 'rowgroup' : 'row', colSpan: headerCell.colSpan, rowSpan: headerCell.rowSpan, style: {
31803
31332
  textAlign: headerCell.textAlign,
31804
31333
  width: headerCell.width,
31805
- }, "aria-sort": sortDirection, "data-sort": `sort-${this.sortDirections.get(headerCell.sort)}` }, hAsync("div", { class: "w-full flex gap-1 items-center" }, hAsync("div", { class: {
31334
+ }, "aria-sort": sortDirection, "data-sort": `sort-${shortSortDirection}` }, hAsync("div", { class: "w-full flex gap-1 items-center" }, hAsync("div", { class: {
31806
31335
  'w-full': true,
31807
31336
  [headerCell.textAlign]: typeof headerCell.textAlign === 'string' && headerCell.textAlign.length > 0,
31808
- }, innerHTML: headerCell.label, style: { textAlign: headerCell.textAlign } }), !this.disableSort && typeof headerCell.sort === 'function' && (hAsync("kol-button", { exportparts: "icon", _icons: sortButtonIcon, _hideLabel: true, _label: translate('kol-change-order', { placeholders: { colLabel: headerCell.label } }), _on: {
31809
- onClick: () => {
31810
- if (typeof headerCell.sort === 'function') {
31811
- this.sortFunction = headerCell.sort;
31812
- switch (this.sortDirections.get(this.sortFunction)) {
31813
- case 'ASC':
31814
- this.setSortDirection(this.sortFunction, 'DESC');
31815
- break;
31816
- case 'DESC':
31817
- this.setSortDirection(this.sortFunction, 'NOS');
31818
- break;
31819
- default:
31820
- this.setSortDirection(this.sortFunction, 'ASC');
31821
- }
31822
- this.updateSortedData(headerCell);
31823
- }
31824
- },
31337
+ }, style: { textAlign: headerCell.textAlign } }, headerCell.label), !this.disableSort && (typeof headerCell.compareFn === 'function' || typeof headerCell.sort === 'function') && (hAsync("kol-button", { exportparts: "icon", _icons: sortButtonIcon, _hideLabel: true, _label: translate('kol-change-order', { placeholders: { colLabel: headerCell.label } }), _on: {
31338
+ onClick: () => this.changeCellSort(headerCell),
31825
31339
  }, _variant: "ghost" })))));
31826
31340
  }
31827
31341
  else {
@@ -31834,13 +31348,14 @@ class KolTable {
31834
31348
  ? (el) => {
31835
31349
  this.cellRender(cell, el);
31836
31350
  }
31837
- : undefined, innerHTML: typeof cell.render !== 'function' ? cell.label : '' }));
31351
+ : undefined }, typeof cell.render !== 'function' ? cell.label : ''));
31838
31352
  }
31839
31353
  };
31840
31354
  this.renderFoot = () => {
31841
31355
  const rows = this.createDataField(this.state._dataFoot, this.state._headers, true);
31842
31356
  return hAsync("tfoot", null, rows.map(this.renderTableRow));
31843
31357
  };
31358
+ this._allowMultiSort = undefined;
31844
31359
  this._data = undefined;
31845
31360
  this._dataFoot = undefined;
31846
31361
  this._headers = undefined;
@@ -31848,6 +31363,7 @@ class KolTable {
31848
31363
  this._minWidth = undefined;
31849
31364
  this._pagination = undefined;
31850
31365
  this.state = {
31366
+ _allowMultiSort: false,
31851
31367
  _label: '…',
31852
31368
  _data: [],
31853
31369
  _dataFoot: [],
@@ -31863,6 +31379,11 @@ class KolTable {
31863
31379
  _sortedData: [],
31864
31380
  };
31865
31381
  }
31382
+ validateAllowMultiSort(value) {
31383
+ watchValidator(this, '_allowMultiSort', () => true, new Set(['boolean']), value, {
31384
+ defaultValue: false,
31385
+ });
31386
+ }
31866
31387
  validateData(value) {
31867
31388
  emptyStringByArrayHandler(value, () => {
31868
31389
  objectObjectHandler(value, () => {
@@ -31905,6 +31426,52 @@ class KolTable {
31905
31426
  });
31906
31427
  });
31907
31428
  }
31429
+ changeCellSort(headerCell) {
31430
+ var _a;
31431
+ if (typeof headerCell.compareFn === 'function') {
31432
+ if (!this.state._allowMultiSort && headerCell.key != ((_a = this.sortData[0]) === null || _a === void 0 ? void 0 : _a.key)) {
31433
+ this.sortData = [];
31434
+ }
31435
+ const index = this.sortData.findIndex((value) => value.key === headerCell.key);
31436
+ if (index >= 0) {
31437
+ const settings = this.sortData[index];
31438
+ switch (settings.direction) {
31439
+ case 'ASC':
31440
+ settings.direction = 'DESC';
31441
+ break;
31442
+ case 'DESC':
31443
+ this.sortData.splice(index, 1);
31444
+ break;
31445
+ default:
31446
+ settings.direction = 'ASC';
31447
+ break;
31448
+ }
31449
+ }
31450
+ else if (headerCell.key) {
31451
+ this.sortData.push({
31452
+ label: headerCell.label,
31453
+ key: headerCell.key,
31454
+ compareFn: headerCell.compareFn,
31455
+ direction: 'ASC',
31456
+ });
31457
+ }
31458
+ this.updateSortedData(headerCell);
31459
+ }
31460
+ else if (typeof headerCell.sort === 'function') {
31461
+ this.sortFunction = headerCell.sort;
31462
+ switch (this.sortDirections.get(this.sortFunction)) {
31463
+ case 'ASC':
31464
+ this.setSortDirection(this.sortFunction, 'DESC');
31465
+ break;
31466
+ case 'DESC':
31467
+ this.setSortDirection(this.sortFunction, 'NOS');
31468
+ break;
31469
+ default:
31470
+ this.setSortDirection(this.sortFunction, 'ASC');
31471
+ }
31472
+ this.updateSortedData(headerCell);
31473
+ }
31474
+ }
31908
31475
  validateHeaders(value) {
31909
31476
  emptyStringByArrayHandler(value, () => {
31910
31477
  objectObjectHandler(value, () => {
@@ -31917,21 +31484,34 @@ class KolTable {
31917
31484
  hooks: {
31918
31485
  beforePatch: (nextValue) => {
31919
31486
  var _a, _b, _c, _d;
31920
- const headers = nextValue;
31921
- (_a = headers.horizontal) === null || _a === void 0 ? void 0 : _a.forEach((header) => {
31922
- header.forEach((cell) => {
31923
- if (typeof cell.sort === 'function' && typeof cell.sortDirection === 'string') {
31924
- this.setSortDirection(cell.sort, cell.sortDirection);
31487
+ const applySort = (headers) => {
31488
+ let hasSortedCells = false;
31489
+ headers.forEach((cell) => {
31490
+ const key = cell.key;
31491
+ if (!key) {
31492
+ return;
31925
31493
  }
31926
- });
31927
- });
31928
- (_b = headers.vertical) === null || _b === void 0 ? void 0 : _b.forEach((header) => {
31929
- header.forEach((cell) => {
31930
- if (typeof cell.sort === 'function' && typeof cell.sortDirection === 'string') {
31931
- this.setSortDirection(cell.sort, cell.sortDirection);
31494
+ const sortDirection = cell.sortDirection;
31495
+ if (sortDirection === 'ASC' || sortDirection === 'DESC') {
31496
+ if (typeof cell.compareFn === 'function') {
31497
+ if (this.state._allowMultiSort || this.sortData.length === 0) {
31498
+ this.sortData.push({ label: cell.label, key, compareFn: cell.compareFn, direction: sortDirection });
31499
+ }
31500
+ hasSortedCells = true;
31501
+ }
31502
+ else if (typeof cell.sort === 'function') {
31503
+ this.setSortDirection(cell.sort, sortDirection);
31504
+ setTimeout(() => this.updateSortedData({ key, label: cell.label, sortDirection }));
31505
+ }
31932
31506
  }
31933
31507
  });
31934
- });
31508
+ if (hasSortedCells) {
31509
+ setTimeout(() => this.updateSortedData());
31510
+ }
31511
+ };
31512
+ const headers = nextValue;
31513
+ (_a = headers.horizontal) === null || _a === void 0 ? void 0 : _a.forEach(applySort);
31514
+ (_b = headers.vertical) === null || _b === void 0 ? void 0 : _b.forEach(applySort);
31935
31515
  if (headers.horizontal && headers.vertical && ((_c = headers.horizontal) === null || _c === void 0 ? void 0 : _c.length) > 0 && ((_d = headers.vertical) === null || _d === void 0 ? void 0 : _d.length) > 0) {
31936
31516
  this.disableSort = true;
31937
31517
  devHint(`Table: You can not sort the table data, if horizontal and vertical headers are defined at the same time. (https://github.com/public-ui/kolibri/issues/2372)`);
@@ -31963,6 +31543,7 @@ class KolTable {
31963
31543
  });
31964
31544
  }
31965
31545
  componentWillLoad() {
31546
+ this.validateAllowMultiSort(this._allowMultiSort);
31966
31547
  this.validateData(this._data);
31967
31548
  this.validateDataFoot(this._dataFoot);
31968
31549
  this.validateHeaders(this._headers);
@@ -32141,7 +31722,7 @@ class KolTable {
32141
31722
  width: col.width,
32142
31723
  }, col.data, this.state._data);
32143
31724
  if (typeof html === 'string') {
32144
- el.innerHTML = html;
31725
+ el.textContent = html;
32145
31726
  }
32146
31727
  }));
32147
31728
  }
@@ -32150,7 +31731,7 @@ class KolTable {
32150
31731
  var _a, _b;
32151
31732
  const displayedData = this.selectDisplayedData(this.state._sortedData, this.showPagination ? (_b = (_a = this.state._pagination) === null || _a === void 0 ? void 0 : _a._pageSize) !== null && _b !== void 0 ? _b : 10 : this.state._sortedData.length, this.state._pagination._page || 1);
32152
31733
  const dataField = this.createDataField(displayedData, this.state._headers);
32153
- return (hAsync(Host, null, hAsync("span", { style: { height: '0', width: '0', overflow: 'hidden' }, "aria-live": "assertive" }, this.ariaLive), this.pageEndSlice > 0 && this.showPagination && (hAsync("div", { class: "pagination" }, hAsync("span", null, "Eintr\u00E4ge ", this.pageEndSlice > 0 ? this.pageStartSlice + 1 : 0, " bis ", this.pageEndSlice, " von", ' ', this.state._pagination._max || (Array.isArray(this.state._data) ? this.state._data.length : 0), " angezeigt"), hAsync("div", null, hAsync("kol-pagination", { _boundaryCount: this.state._pagination._boundaryCount, _customClass: this.state._pagination._customClass, _on: this.handlePagination, _page: this.state._pagination._page, _pageSize: this.state._pagination._pageSize, _pageSizeOptions: this.state._pagination._pageSizeOptions || PAGINATION_OPTIONS, _siblingCount: this.state._pagination._siblingCount, _tooltipAlign: "bottom", _max: this.state._pagination._max || this.state._pagination._max || this.state._data.length, _label: translate('kol-table-pagination-label', { placeholders: { label: this.state._label } }) })))), hAsync("div", { class: "table", tabindex: "0" }, hAsync("table", { style: {
31734
+ return (hAsync(Host, null, hAsync("div", { style: { height: '0', width: '0', overflow: 'hidden' }, "aria-live": "assertive" }, this.ariaLive), this.pageEndSlice > 0 && this.showPagination && (hAsync("div", { class: "pagination" }, hAsync("span", null, "Eintr\u00E4ge ", this.pageEndSlice > 0 ? this.pageStartSlice + 1 : 0, " bis ", this.pageEndSlice, " von", ' ', this.state._pagination._max || (Array.isArray(this.state._data) ? this.state._data.length : 0), " angezeigt"), hAsync("div", null, hAsync("kol-pagination", { _boundaryCount: this.state._pagination._boundaryCount, _customClass: this.state._pagination._customClass, _on: this.handlePagination, _page: this.state._pagination._page, _pageSize: this.state._pagination._pageSize, _pageSizeOptions: this.state._pagination._pageSizeOptions || PAGINATION_OPTIONS, _siblingCount: this.state._pagination._siblingCount, _tooltipAlign: "bottom", _max: this.state._pagination._max || this.state._pagination._max || this.state._data.length, _label: translate('kol-table-pagination-label', { placeholders: { label: this.state._label } }) })))), hAsync("div", { class: "table", tabindex: "0" }, hAsync("table", { style: {
32154
31735
  minWidth: this.state._minWidth,
32155
31736
  } }, hAsync("caption", null, this.state._label), Array.isArray(this.state._headers.horizontal) && (hAsync("thead", null, this.state._headers.horizontal.map((cols, rowIndex) => (hAsync("tr", { key: `thead-${rowIndex}` }, cols.map((col, colIndex) => {
32156
31737
  if (col.asTd === true) {
@@ -32163,13 +31744,31 @@ class KolTable {
32163
31744
  ? (el) => {
32164
31745
  this.cellRender(col, el);
32165
31746
  }
32166
- : undefined, innerHTML: typeof col.render !== 'function' ? col.label : '' }));
31747
+ : undefined }, typeof col.render !== 'function' ? col.label : ''));
32167
31748
  }
32168
31749
  else {
32169
31750
  const headerCell = col;
32170
31751
  let sortDirection = undefined;
31752
+ let shortSortDirection = 'NOS';
32171
31753
  let sortButtonIcon = 'codicon codicon-fold';
31754
+ if (headerCell.key) {
31755
+ const data = this.sortData.find((value) => value.key === headerCell.key);
31756
+ if (data) {
31757
+ shortSortDirection = data.direction;
31758
+ switch (data.direction) {
31759
+ case 'ASC':
31760
+ sortButtonIcon = 'codicon codicon-chevron-up';
31761
+ sortDirection = 'ascending';
31762
+ break;
31763
+ case 'DESC':
31764
+ sortButtonIcon = 'codicon codicon-chevron-down';
31765
+ sortDirection = 'descending';
31766
+ break;
31767
+ }
31768
+ }
31769
+ }
32172
31770
  if (headerCell.key === this.sortedColumnHead.key) {
31771
+ shortSortDirection = this.sortedColumnHead.sortDirection;
32173
31772
  switch (this.sortedColumnHead.sortDirection) {
32174
31773
  case 'ASC':
32175
31774
  sortButtonIcon = 'codicon codicon-chevron-up';
@@ -32184,33 +31783,19 @@ class KolTable {
32184
31783
  return (hAsync("th", { key: `thead-${rowIndex}-${colIndex}-${headerCell.label}`, scope: typeof headerCell.colSpan === 'number' && headerCell.colSpan > 1 ? 'colgroup' : 'col', colSpan: headerCell.colSpan, rowSpan: headerCell.rowSpan, style: {
32185
31784
  textAlign: col.textAlign,
32186
31785
  width: col.width,
32187
- }, "aria-sort": sortDirection, "data-sort": sortDirection ? `sort-${this.sortedColumnHead.sortDirection}` : 'sort-NOS' }, hAsync("div", { class: "w-full flex gap-1 items-center" }, hAsync("div", { class: {
31786
+ }, "aria-sort": sortDirection, "data-sort": `sort-${shortSortDirection}` }, hAsync("div", { class: "w-full flex gap-1 items-center" }, hAsync("div", { class: {
32188
31787
  'w-full': true,
32189
31788
  [col.textAlign]: typeof col.textAlign === 'string' && col.textAlign.length > 0,
32190
- }, innerHTML: col.label, style: {
31789
+ }, style: {
32191
31790
  textAlign: col.textAlign,
32192
- } }), !this.disableSort && typeof headerCell.sort === 'function' && (hAsync("kol-button", { exportparts: "icon", _icons: sortButtonIcon, _hideLabel: true, _label: translate('kol-change-order', { placeholders: { colLabel: col.label } }), _on: {
32193
- onClick: () => {
32194
- if (typeof headerCell.sort === 'function') {
32195
- this.sortFunction = headerCell.sort;
32196
- switch (this.sortDirections.get(this.sortFunction)) {
32197
- case 'ASC':
32198
- this.setSortDirection(this.sortFunction, 'DESC');
32199
- break;
32200
- case 'DESC':
32201
- this.setSortDirection(this.sortFunction, 'NOS');
32202
- break;
32203
- default:
32204
- this.setSortDirection(this.sortFunction, 'ASC');
32205
- }
32206
- this.updateSortedData(headerCell);
32207
- }
32208
- },
31791
+ } }, col.label), !this.disableSort && (typeof headerCell.compareFn === 'function' || typeof headerCell.sort === 'function') && (hAsync("kol-button", { exportparts: "icon", _icons: sortButtonIcon, _hideLabel: true, _label: translate('kol-change-order', { placeholders: { colLabel: col.label } }), _on: {
31792
+ onClick: () => this.changeCellSort(headerCell),
32209
31793
  }, _variant: "ghost" })))));
32210
31794
  }
32211
31795
  })))))), hAsync("tbody", null, dataField.map(this.renderTableRow)), this.state._dataFoot.length > 0 ? this.renderFoot() : ''))));
32212
31796
  }
32213
31797
  static get watchers() { return {
31798
+ "_allowMultiSort": ["validateAllowMultiSort"],
32214
31799
  "_data": ["validateData"],
32215
31800
  "_dataFoot": ["validateDataFoot"],
32216
31801
  "_headers": ["validateHeaders"],
@@ -32225,6 +31810,7 @@ class KolTable {
32225
31810
  "$flags$": 41,
32226
31811
  "$tagName$": "kol-table",
32227
31812
  "$members$": {
31813
+ "_allowMultiSort": [4, "_allow-multi-sort"],
32228
31814
  "_data": [1],
32229
31815
  "_dataFoot": [1, "_data-foot"],
32230
31816
  "_headers": [1],
@@ -32608,6 +32194,10 @@ const increaseTextareaHeight = (el) => {
32608
32194
  return nextRows;
32609
32195
  };
32610
32196
  class KolTextarea {
32197
+ async getValue() {
32198
+ var _a;
32199
+ return (_a = this.ref) === null || _a === void 0 ? void 0 : _a.value;
32200
+ }
32611
32201
  render() {
32612
32202
  const { ariaDescribedBy } = getRenderStates(this.state);
32613
32203
  const hasExpertSlot = showExpertSlot(this.state._label);
@@ -32797,7 +32387,8 @@ class KolTextarea {
32797
32387
  "_tooltipAlign": [1, "_tooltip-align"],
32798
32388
  "_touched": [1540],
32799
32389
  "_value": [1],
32800
- "state": [32]
32390
+ "state": [32],
32391
+ "getValue": [64]
32801
32392
  },
32802
32393
  "$listeners$": undefined,
32803
32394
  "$lazyBundleId$": "-",