@public-ui/hydrate 4.1.1-rc.2 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.js +124 -149
  2. package/dist/index.mjs +124 -149
  3. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -146,7 +146,7 @@ function _mergeNamespaces(n, m) {
146
146
 
147
147
  const NAMESPACE = 'kolibri';
148
148
  const BUILD = /* kolibri */ { hydratedSelectorName: "hydrated", slotRelocation: true, state: true, updatable: true};
149
- const Env = /* kolibri */ {"kolibriVersion":"4.1.1-rc.2"};
149
+ const Env = /* kolibri */ {"kolibriVersion":"4.1.1"};
150
150
 
151
151
  function getDefaultExportFromCjs (x) {
152
152
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
@@ -6924,7 +6924,13 @@ function createPropDefinition(normalize, validate = () => true) {
6924
6924
  return {
6925
6925
  normalize,
6926
6926
  validate,
6927
- apply(value, callback) {
6927
+ apply(value, callback, defaultValue) {
6928
+ if (value === undefined || value === null) {
6929
+ if (defaultValue !== undefined) {
6930
+ callback(defaultValue);
6931
+ }
6932
+ return;
6933
+ }
6928
6934
  try {
6929
6935
  const normalized = this.normalize(value);
6930
6936
  if (this.validate(normalized)) {
@@ -6941,7 +6947,13 @@ function createDependentPropDefinition(normalize, validate = () => true) {
6941
6947
  return {
6942
6948
  normalize,
6943
6949
  validate,
6944
- apply(value, callback, deps) {
6950
+ apply(value, callback, deps, defaultValue) {
6951
+ if (value === undefined || value === null) {
6952
+ if (defaultValue !== undefined) {
6953
+ callback(defaultValue);
6954
+ }
6955
+ return;
6956
+ }
6945
6957
  try {
6946
6958
  const normalized = this.normalize(value, deps);
6947
6959
  if (this.validate(normalized, deps)) {
@@ -6964,18 +6976,6 @@ function normalizeString(value) {
6964
6976
  }
6965
6977
  throw new Error(`Invalid string: ${value}`);
6966
6978
  }
6967
- function normalizeInteger(value) {
6968
- if (typeof value === 'number') {
6969
- return Number.isInteger(value) ? value : Math.round(value);
6970
- }
6971
- if (typeof value === 'string') {
6972
- const parsed = parseInt(value, 10);
6973
- if (!isNaN(parsed)) {
6974
- return parsed;
6975
- }
6976
- }
6977
- throw new Error(`Invalid integer: ${value}`);
6978
- }
6979
6979
  function normalizeNumber(value) {
6980
6980
  if (typeof value === 'number') {
6981
6981
  return value;
@@ -7026,30 +7026,8 @@ function validator(value) {
7026
7026
  }
7027
7027
  const colorProp = createPropDefinition(normalizer, validator);
7028
7028
 
7029
- const countProp = createPropDefinition(normalizeInteger, (v) => v >= 0);
7030
-
7031
7029
  const hrefProp = createPropDefinition(normalizeString, (v) => v.length > 0);
7032
7030
 
7033
- const formatNameAsInitial = (name) => {
7034
- if (name.length === 0) {
7035
- return '';
7036
- }
7037
- return name[0].toUpperCase();
7038
- };
7039
- const normalizeInitials = (value) => {
7040
- if (typeof value !== 'string') {
7041
- throw new Error(`Invalid initials value: ${JSON.stringify(value)}`);
7042
- }
7043
- const names = value.trim().split(/\s+/);
7044
- const first = names[0];
7045
- const last = names[names.length - 1];
7046
- if (names.length >= 2 && first && last) {
7047
- return `${formatNameAsInitial(first)}${formatNameAsInitial(last)}`;
7048
- }
7049
- return formatNameAsInitial(value);
7050
- };
7051
- const initialsProp = createPropDefinition(normalizeInitials, (v) => v.length > 0);
7052
-
7053
7031
  const labelProp = createPropDefinition(normalizeString, (v) => v.length >= 2 && v.length <= 80);
7054
7032
 
7055
7033
  const LOADING_OPTIONS = ['eager', 'lazy'];
@@ -7095,9 +7073,10 @@ const QUOTE_VARIANT_SET = new Set(QUOTE_VARIANT_OPTIONS);
7095
7073
  const variantQuoteProp = createPropDefinition((value) => normalizeString(value), (v) => QUOTE_VARIANT_SET.has(v));
7096
7074
 
7097
7075
  class BaseController {
7098
- constructor(component, props) {
7076
+ constructor(component = {}) {
7099
7077
  this.component = component;
7100
- this.props = props;
7078
+ this.props = {};
7079
+ this.rawProps = {};
7101
7080
  }
7102
7081
  setProp(key, value) {
7103
7082
  this.props[key] = value;
@@ -7105,19 +7084,33 @@ class BaseController {
7105
7084
  getProps() {
7106
7085
  return this.props;
7107
7086
  }
7087
+ setRawProp(key, value) {
7088
+ this.rawProps[key] = value;
7089
+ }
7090
+ getRawProps() {
7091
+ return this.rawProps;
7092
+ }
7108
7093
  setState(key, value) {
7109
7094
  this.component[key] = value;
7110
7095
  }
7111
7096
  }
7112
7097
 
7113
- class AvatarController extends BaseController {
7114
- constructor(states) {
7115
- super(states, {
7116
- color: { backgroundColor: '#d3d3d3', foregroundColor: '#3f3f3f' },
7117
- label: '',
7118
- src: '',
7119
- });
7098
+ const formatNameAsInitial = (name) => {
7099
+ if (name.length === 0) {
7100
+ return '';
7120
7101
  }
7102
+ return name[0].toUpperCase();
7103
+ };
7104
+ const normalizeInitials = (value) => {
7105
+ const names = value.trim().split(/\s+/);
7106
+ const first = names[0];
7107
+ const last = names[names.length - 1];
7108
+ if (names.length >= 2 && first && last) {
7109
+ return `${formatNameAsInitial(first)}${formatNameAsInitial(last)}`;
7110
+ }
7111
+ return formatNameAsInitial(value);
7112
+ };
7113
+ class AvatarController extends BaseController {
7121
7114
  componentWillLoad(props) {
7122
7115
  const { color, label, src } = props;
7123
7116
  this.watchColor(color);
@@ -7127,20 +7120,21 @@ class AvatarController extends BaseController {
7127
7120
  watchColor(value) {
7128
7121
  colorProp.apply(value, (v) => {
7129
7122
  this.setProp('color', v);
7123
+ }, {
7124
+ backgroundColor: '#d3d3d3',
7125
+ foregroundColor: '#3f3f3f',
7130
7126
  });
7131
7127
  }
7132
7128
  watchLabel(value) {
7133
7129
  labelProp.apply(value, (v) => {
7134
7130
  this.setProp('label', v);
7135
- });
7136
- initialsProp.apply(value, (v) => {
7137
- this.setState('initials', v);
7138
- });
7131
+ this.setState('initials', normalizeInitials(v));
7132
+ }, '');
7139
7133
  }
7140
7134
  watchSrc(value) {
7141
7135
  srcProp.apply(value, (v) => {
7142
7136
  this.setProp('src', v);
7143
- });
7137
+ }, '');
7144
7138
  }
7145
7139
  }
7146
7140
 
@@ -19647,10 +19641,8 @@ const BEM_CLASS_CLICK_BUTTON__LABEL = clickButtonBem('label');
19647
19641
  const ClickButtonFC = ({ label, handleClick, refButton }) => (hAsync("button", { class: BEM_CLASS_CLICK_BUTTON, ref: refButton, onClick: handleClick, onKeyDown: (event) => event.preventDefault() }, hAsync("span", { class: BEM_CLASS_CLICK_BUTTON__LABEL }, label)));
19648
19642
 
19649
19643
  class ClickButtonController extends BaseController {
19650
- constructor(states = {}) {
19651
- super(states, {
19652
- label: '',
19653
- });
19644
+ constructor() {
19645
+ super(...arguments);
19654
19646
  this.handleClick = () => {
19655
19647
  console.log(this, this.buttonRef, 'button clicked');
19656
19648
  };
@@ -19665,7 +19657,7 @@ class ClickButtonController extends BaseController {
19665
19657
  watchLabel(value) {
19666
19658
  labelProp.apply(value, (v) => {
19667
19659
  this.setProp('label', v);
19668
- });
19660
+ }, '');
19669
19661
  }
19670
19662
  focus() {
19671
19663
  var _a;
@@ -21234,7 +21226,7 @@ const bem = c();
21234
21226
  const BEM_CLASS_ICON = bem('kol-icon');
21235
21227
  const BEM_CLASS_ICON__ICON = bem('kol-icon', 'icon');
21236
21228
 
21237
- const defaultStyleCss$y = "/* forward the rem function */\n@font-face {\n font-family: \"kolicons\";\n src: url(\"kolicons.eot?t=1772813649030\"); /* IE9*/\n src: url(\"kolicons.eot?t=1772813649030#iefix\") format(\"embedded-opentype\"), url(\"kolicons.woff2?t=1772813649030\") format(\"woff2\"), url(\"kolicons.woff?t=1772813649030\") format(\"woff\"), url(\"kolicons.ttf?t=1772813649030\") format(\"truetype\"), url(\"kolicons.svg?t=1772813649030#kolicons\") format(\"svg\"); /* iOS 4.1- */\n}\n[class^=kolicon-], [class*=\" kolicon-\"] {\n font-family: \"kolicons\";\n font-size: inherit;\n font-style: normal;\n font-weight: 400;\n line-height: 1em;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.kolicon-alert-error::before {\n content: \"\\ea01\";\n}\n\n.kolicon-alert-info::before {\n content: \"\\ea02\";\n}\n\n.kolicon-alert-success::before {\n content: \"\\ea03\";\n}\n\n.kolicon-alert-warning::before {\n content: \"\\ea04\";\n}\n\n.kolicon-check::before {\n content: \"\\ea05\";\n}\n\n.kolicon-chevron-double-left::before {\n content: \"\\ea06\";\n}\n\n.kolicon-chevron-double-right::before {\n content: \"\\ea07\";\n}\n\n.kolicon-chevron-down::before {\n content: \"\\ea08\";\n}\n\n.kolicon-chevron-left::before {\n content: \"\\ea09\";\n}\n\n.kolicon-chevron-right::before {\n content: \"\\ea0a\";\n}\n\n.kolicon-chevron-up::before {\n content: \"\\ea0b\";\n}\n\n.kolicon-cogwheel::before {\n content: \"\\ea0c\";\n}\n\n.kolicon-cross::before {\n content: \"\\ea0d\";\n}\n\n.kolicon-eye-closed::before {\n content: \"\\ea0e\";\n}\n\n.kolicon-eye::before {\n content: \"\\ea0f\";\n}\n\n.kolicon-house::before {\n content: \"\\ea10\";\n}\n\n.kolicon-kolibri::before {\n content: \"\\ea11\";\n}\n\n.kolicon-link-external::before {\n content: \"\\ea12\";\n}\n\n.kolicon-link::before {\n content: \"\\ea13\";\n}\n\n.kolicon-minus::before {\n content: \"\\ea14\";\n}\n\n.kolicon-plus::before {\n content: \"\\ea15\";\n}\n\n.kolicon-settings::before {\n content: \"\\ea16\";\n}\n\n.kolicon-sort-asc::before {\n content: \"\\ea17\";\n}\n\n.kolicon-sort-desc::before {\n content: \"\\ea18\";\n}\n\n.kolicon-sort-neutral::before {\n content: \"\\ea19\";\n}\n\n.kolicon-up::before {\n content: \"\\ea1a\";\n}\n\n.kolicon-version::before {\n content: \"\\ea1b\";\n}\n\n@layer kol-component {\n /* :host implicitly inherits font-size, see below */\n :host {\n color: inherit;\n display: contents;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n }\n}";
21229
+ const defaultStyleCss$y = "/* forward the rem function */\n@font-face {\n font-family: \"kolicons\";\n src: url(\"kolicons.eot?t=1773045157587\"); /* IE9*/\n src: url(\"kolicons.eot?t=1773045157587#iefix\") format(\"embedded-opentype\"), url(\"kolicons.woff2?t=1773045157587\") format(\"woff2\"), url(\"kolicons.woff?t=1773045157587\") format(\"woff\"), url(\"kolicons.ttf?t=1773045157587\") format(\"truetype\"), url(\"kolicons.svg?t=1773045157587#kolicons\") format(\"svg\"); /* iOS 4.1- */\n}\n[class^=kolicon-], [class*=\" kolicon-\"] {\n font-family: \"kolicons\";\n font-size: inherit;\n font-style: normal;\n font-weight: 400;\n line-height: 1em;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.kolicon-alert-error::before {\n content: \"\\ea01\";\n}\n\n.kolicon-alert-info::before {\n content: \"\\ea02\";\n}\n\n.kolicon-alert-success::before {\n content: \"\\ea03\";\n}\n\n.kolicon-alert-warning::before {\n content: \"\\ea04\";\n}\n\n.kolicon-check::before {\n content: \"\\ea05\";\n}\n\n.kolicon-chevron-double-left::before {\n content: \"\\ea06\";\n}\n\n.kolicon-chevron-double-right::before {\n content: \"\\ea07\";\n}\n\n.kolicon-chevron-down::before {\n content: \"\\ea08\";\n}\n\n.kolicon-chevron-left::before {\n content: \"\\ea09\";\n}\n\n.kolicon-chevron-right::before {\n content: \"\\ea0a\";\n}\n\n.kolicon-chevron-up::before {\n content: \"\\ea0b\";\n}\n\n.kolicon-cogwheel::before {\n content: \"\\ea0c\";\n}\n\n.kolicon-cross::before {\n content: \"\\ea0d\";\n}\n\n.kolicon-eye-closed::before {\n content: \"\\ea0e\";\n}\n\n.kolicon-eye::before {\n content: \"\\ea0f\";\n}\n\n.kolicon-house::before {\n content: \"\\ea10\";\n}\n\n.kolicon-kolibri::before {\n content: \"\\ea11\";\n}\n\n.kolicon-link-external::before {\n content: \"\\ea12\";\n}\n\n.kolicon-link::before {\n content: \"\\ea13\";\n}\n\n.kolicon-minus::before {\n content: \"\\ea14\";\n}\n\n.kolicon-plus::before {\n content: \"\\ea15\";\n}\n\n.kolicon-settings::before {\n content: \"\\ea16\";\n}\n\n.kolicon-sort-asc::before {\n content: \"\\ea17\";\n}\n\n.kolicon-sort-desc::before {\n content: \"\\ea18\";\n}\n\n.kolicon-sort-neutral::before {\n content: \"\\ea19\";\n}\n\n.kolicon-up::before {\n content: \"\\ea1a\";\n}\n\n.kolicon-version::before {\n content: \"\\ea1b\";\n}\n\n@layer kol-component {\n /* :host implicitly inherits font-size, see below */\n :host {\n color: inherit;\n display: contents;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n }\n}";
21238
21230
 
21239
21231
  class KolIcon {
21240
21232
  render() {
@@ -21285,15 +21277,6 @@ const ImageFC = (props) => {
21285
21277
  };
21286
21278
 
21287
21279
  class ImageController extends BaseController {
21288
- constructor(states = {}) {
21289
- super(states, {
21290
- alt: '',
21291
- loading: 'lazy',
21292
- sizes: '',
21293
- src: '',
21294
- srcset: '',
21295
- });
21296
- }
21297
21280
  componentWillLoad(props) {
21298
21281
  const { alt, loading, sizes, src, srcset } = props;
21299
21282
  this.watchAlt(alt);
@@ -21305,27 +21288,27 @@ class ImageController extends BaseController {
21305
21288
  watchAlt(value) {
21306
21289
  altProp.apply(value, (v) => {
21307
21290
  this.setProp('alt', v);
21308
- });
21291
+ }, '');
21309
21292
  }
21310
21293
  watchLoading(value) {
21311
21294
  loadingProp.apply(value, (v) => {
21312
21295
  this.setProp('loading', v);
21313
- });
21296
+ }, 'lazy');
21314
21297
  }
21315
21298
  watchSizes(value) {
21316
21299
  sizesProp.apply(value, (v) => {
21317
21300
  this.setProp('sizes', v);
21318
- });
21301
+ }, '');
21319
21302
  }
21320
21303
  watchSrc(value) {
21321
21304
  srcProp.apply(value, (v) => {
21322
21305
  this.setProp('src', v);
21323
- });
21306
+ }, '');
21324
21307
  }
21325
21308
  watchSrcset(value) {
21326
21309
  srcsetProp.apply(value, (v) => {
21327
21310
  this.setProp('srcset', v);
21328
- });
21311
+ }, '');
21329
21312
  }
21330
21313
  }
21331
21314
 
@@ -27797,15 +27780,6 @@ const ProgressFC = (props) => {
27797
27780
  };
27798
27781
 
27799
27782
  class ProgressController extends BaseController {
27800
- constructor(states) {
27801
- super(states, {
27802
- label: '',
27803
- max: 100,
27804
- unit: '%',
27805
- value: 0,
27806
- variant: 'bar',
27807
- });
27808
- }
27809
27783
  componentWillLoad(props) {
27810
27784
  const { label, max, unit, value, variant } = props;
27811
27785
  this.watchLabel(label);
@@ -27814,37 +27788,34 @@ class ProgressController extends BaseController {
27814
27788
  this.watchValue(value);
27815
27789
  this.watchVariant(variant);
27816
27790
  this.setState('liveValue', this.getProps().value);
27817
- this.setState('max', this.getProps().max);
27818
27791
  this.startLiveValueInterval();
27819
27792
  }
27820
27793
  watchLabel(value) {
27821
27794
  labelProp.apply(value, (v) => {
27822
27795
  this.setProp('label', v);
27823
- });
27796
+ }, '');
27824
27797
  }
27825
27798
  watchMax(value) {
27826
27799
  maxProp.apply(value, (v) => {
27827
27800
  this.setProp('max', v);
27828
- this.setState('max', v);
27829
- });
27830
- this.watchValue(this.getProps().value);
27801
+ this.watchValue(this.getRawProps().value);
27802
+ }, 100);
27831
27803
  }
27832
27804
  watchUnit(value) {
27833
27805
  unitProp.apply(value, (v) => {
27834
27806
  this.setProp('unit', v);
27835
- this.setState('unit', v);
27836
- });
27807
+ }, '%');
27837
27808
  }
27838
27809
  watchValue(value) {
27810
+ this.setRawProp('value', value);
27839
27811
  clampedNumberValueProp.apply(value, (v) => {
27840
27812
  this.setProp('value', v);
27841
- }, { min: 0, max: this.getProps().max });
27813
+ }, { min: 0, max: this.getProps().max }, 0);
27842
27814
  }
27843
27815
  watchVariant(value) {
27844
27816
  variantProgressProp.apply(value, (v) => {
27845
27817
  this.setProp('variant', v);
27846
- this.setState('variant', v);
27847
- });
27818
+ }, 'bar');
27848
27819
  }
27849
27820
  startLiveValueInterval() {
27850
27821
  this.interval = setInterval(() => {
@@ -27868,10 +27839,7 @@ class KolProgress {
27868
27839
  constructor(hostRef) {
27869
27840
  registerInstance(this, hostRef);
27870
27841
  this.ctrl = new ProgressController(this);
27871
- this.unit = '%';
27872
- this.variant = 'bar';
27873
27842
  this.liveValue = 0;
27874
- this.max = this._max;
27875
27843
  }
27876
27844
  watchLabel(value) {
27877
27845
  this.ctrl.watchLabel(value);
@@ -27903,7 +27871,7 @@ class KolProgress {
27903
27871
  render() {
27904
27872
  const { label, max, unit, value, variant } = this.ctrl.getProps();
27905
27873
  const { liveValue } = this;
27906
- return (hAsync(Host, { key: 'c101389f829d2be6f356a198fff8a557d6bcac46' }, hAsync(ProgressFC, { key: '805ea44845b7fb33b5e993b9dd4f5b2848933d7b', label: label, max: max, unit: unit, value: value, variant: variant, liveValue: liveValue })));
27874
+ return (hAsync(Host, { key: '3e780e20fdf0435675aa4139a34784d335b8ca0d' }, hAsync(ProgressFC, { key: '7c57e3c56ada9b13315f48565c9de2efa580b196', label: label, max: max, unit: unit, value: value, variant: variant, liveValue: liveValue })));
27907
27875
  }
27908
27876
  static get watchers() { return {
27909
27877
  "_label": ["watchLabel"],
@@ -27924,10 +27892,7 @@ class KolProgress {
27924
27892
  "_unit": [1],
27925
27893
  "_value": [2],
27926
27894
  "_variant": [1],
27927
- "unit": [32],
27928
- "variant": [32],
27929
- "liveValue": [32],
27930
- "max": [32]
27895
+ "liveValue": [32]
27931
27896
  },
27932
27897
  "$listeners$": undefined,
27933
27898
  "$lazyBundleId$": "-",
@@ -27948,14 +27913,6 @@ const QuoteFC = (props) => {
27948
27913
  };
27949
27914
 
27950
27915
  class QuoteController extends BaseController {
27951
- constructor() {
27952
- super({}, {
27953
- href: '',
27954
- label: '',
27955
- quote: '',
27956
- variant: 'inline',
27957
- });
27958
- }
27959
27916
  componentWillLoad(props) {
27960
27917
  const { href, label, quote, variant } = props;
27961
27918
  this.watchHref(href);
@@ -27966,22 +27923,22 @@ class QuoteController extends BaseController {
27966
27923
  watchHref(value) {
27967
27924
  hrefProp.apply(value, (v) => {
27968
27925
  this.setProp('href', v);
27969
- });
27926
+ }, '');
27970
27927
  }
27971
27928
  watchLabel(value) {
27972
27929
  labelProp.apply(value, (v) => {
27973
27930
  this.setProp('label', v);
27974
- });
27931
+ }, '');
27975
27932
  }
27976
27933
  watchQuote(value) {
27977
27934
  quoteProp.apply(value, (v) => {
27978
27935
  this.setProp('quote', v);
27979
- });
27936
+ }, '');
27980
27937
  }
27981
27938
  watchVariant(value) {
27982
27939
  variantQuoteProp.apply(value, (v) => {
27983
27940
  this.setProp('variant', v);
27984
- });
27941
+ }, 'inline');
27985
27942
  }
27986
27943
  }
27987
27944
 
@@ -29112,10 +29069,7 @@ const SkeletonFC = (props) => {
29112
29069
 
29113
29070
  class SkeletonController extends BaseController {
29114
29071
  constructor(states) {
29115
- super(states, {
29116
- count: 0,
29117
- name: '',
29118
- });
29072
+ super(states);
29119
29073
  this.onKeydown = (event) => {
29120
29074
  if (event.key === 'Escape') {
29121
29075
  console.log('Show should be toggled');
@@ -29124,9 +29078,8 @@ class SkeletonController extends BaseController {
29124
29078
  };
29125
29079
  this.handleClick = () => {
29126
29080
  Log.debug('Button clicked, count should be increased');
29127
- const { count } = this.getProps();
29081
+ const { count } = this.component;
29128
29082
  const nextCount = count + 1;
29129
- this.setProp('count', nextCount);
29130
29083
  this.setState('count', nextCount);
29131
29084
  };
29132
29085
  this.setButtonRef = (element) => {
@@ -29136,30 +29089,16 @@ class SkeletonController extends BaseController {
29136
29089
  this.startLoadedEventInterval();
29137
29090
  }
29138
29091
  componentWillLoad(props) {
29139
- const { count, name } = props;
29140
- this.watchCount(count);
29092
+ const { name } = props;
29141
29093
  this.watchName(name);
29142
- this.watchLabel(this.component.label);
29143
29094
  this.clickButtonCtrl.componentWillLoad({
29144
29095
  label: this.component.label,
29145
29096
  });
29146
29097
  }
29147
- watchCount(value) {
29148
- countProp.apply(value, (v) => {
29149
- this.setProp('count', v);
29150
- this.setState('count', v);
29151
- });
29152
- }
29153
29098
  watchName(value) {
29154
29099
  nameProp.apply(value, (v) => {
29155
29100
  this.setProp('name', v);
29156
- });
29157
- }
29158
- watchLabel(value) {
29159
- labelProp.apply(value, (v) => {
29160
- this.setState('label', v);
29161
- this.clickButtonCtrl.watchLabel(v);
29162
- });
29101
+ }, '');
29163
29102
  }
29164
29103
  toggle() {
29165
29104
  this.setState('show', !this.component.show);
@@ -29169,7 +29108,7 @@ class SkeletonController extends BaseController {
29169
29108
  }
29170
29109
  startLoadedEventInterval() {
29171
29110
  this.intervalId = setInterval(() => {
29172
- const { count } = this.getProps();
29111
+ const { count } = this.component;
29173
29112
  this.emitLoaded(count);
29174
29113
  }, 2000);
29175
29114
  }
@@ -29195,9 +29134,9 @@ class KolSkeleton {
29195
29134
  this.loaded = createEvent(this, "loaded");
29196
29135
  this.rendered = createEvent(this, "rendered");
29197
29136
  this.ctrl = new SkeletonController(this);
29137
+ this.count = 0;
29198
29138
  this.label = 'Label';
29199
29139
  this.show = true;
29200
- this.count = 0;
29201
29140
  }
29202
29141
  async focus() {
29203
29142
  return Promise.resolve(this.ctrl.focus());
@@ -29205,9 +29144,6 @@ class KolSkeleton {
29205
29144
  async toggle() {
29206
29145
  return Promise.resolve(this.ctrl.toggle());
29207
29146
  }
29208
- watchCount(value) {
29209
- this.ctrl.watchCount(value);
29210
- }
29211
29147
  watchName(value) {
29212
29148
  this.ctrl.watchName(value);
29213
29149
  }
@@ -29222,7 +29158,6 @@ class KolSkeleton {
29222
29158
  }
29223
29159
  componentWillLoad() {
29224
29160
  this.ctrl.componentWillLoad({
29225
- count: this._count,
29226
29161
  name: this._name,
29227
29162
  });
29228
29163
  this.ctrl.setOnLoadedCallback((count) => {
@@ -29238,23 +29173,21 @@ class KolSkeleton {
29238
29173
  this.ctrl.destroy();
29239
29174
  }
29240
29175
  render() {
29241
- const { count, name } = this.ctrl.getProps();
29242
- const { label, show } = this;
29243
- return (hAsync(Host, { key: '6358ec20f7531a0a536b84c0a1dd2f54e6b2bf7a' }, hAsync(SkeletonFC, { key: '715b10c0aa93c24425c55b01a737d1950128225f', count: count, label: label, name: name, handleClick: () => this.ctrl.handleClick(), onLoaded: this.loaded, onRendered: this.rendered, show: show, refButton: (element) => this.ctrl.setButtonRef(element) })));
29176
+ const { name } = this.ctrl.getProps();
29177
+ const { count, label, show } = this;
29178
+ return (hAsync(Host, { key: '5f1160b2f3d269b6db7a26a01c73669d39410cfc' }, hAsync(SkeletonFC, { key: 'dd668006b85713834366c4831105f7f047c6797b', count: count, label: label, name: name, handleClick: () => this.ctrl.handleClick(), onLoaded: this.loaded, onRendered: this.rendered, show: show, refButton: (element) => this.ctrl.setButtonRef(element) })));
29244
29179
  }
29245
29180
  static get watchers() { return {
29246
- "_count": ["watchCount"],
29247
29181
  "_name": ["watchName"]
29248
29182
  }; }
29249
29183
  static get cmpMeta() { return {
29250
29184
  "$flags$": 265,
29251
29185
  "$tagName$": "kol-skeleton",
29252
29186
  "$members$": {
29253
- "_count": [8],
29254
29187
  "_name": [1],
29188
+ "count": [32],
29255
29189
  "label": [32],
29256
29190
  "show": [32],
29257
- "count": [32],
29258
29191
  "focus": [64],
29259
29192
  "toggle": [64]
29260
29193
  },
@@ -30057,6 +29990,7 @@ let KolTableStateless$1 = class KolTableStateless {
30057
29990
  }; }
30058
29991
  };
30059
29992
 
29993
+ const RESIZE_DEBOUNCE_DELAY = 150;
30060
29994
  class KolTableStateless {
30061
29995
  constructor(hostRef) {
30062
29996
  registerInstance(this, hostRef);
@@ -30079,6 +30013,7 @@ class KolTableStateless {
30079
30013
  this.maxCols = 0;
30080
30014
  this.fixedOffsets = [];
30081
30015
  this.tableDivElementHasScrollbar = false;
30016
+ this.stickyColsDisabled = false;
30082
30017
  this.renderTableRow = (row, rowIndex, isVertical, isFooter = false) => {
30083
30018
  var _a, _b;
30084
30019
  let key = String(rowIndex);
@@ -30154,6 +30089,7 @@ class KolTableStateless {
30154
30089
  }
30155
30090
  validateFixedCols(value) {
30156
30091
  validateFixedCols(this, value);
30092
+ this.checkAndUpdateStickyState();
30157
30093
  }
30158
30094
  validateHeaderCells(value) {
30159
30095
  validateTableHeaderCells(this, value);
@@ -30172,6 +30108,7 @@ class KolTableStateless {
30172
30108
  }
30173
30109
  validateSelection(value) {
30174
30110
  validateTableSelection(this, value);
30111
+ this.checkAndUpdateStickyState();
30175
30112
  }
30176
30113
  handleKeyDown(event) {
30177
30114
  var _a;
@@ -30197,9 +30134,10 @@ class KolTableStateless {
30197
30134
  }
30198
30135
  componentDidLoad() {
30199
30136
  if (this.tableDivElement && ResizeObserver) {
30200
- this.tableDivElementResizeObserver = new ResizeObserver(this.checkDivElementScrollbar.bind(this));
30137
+ this.tableDivElementResizeObserver = new ResizeObserver(this.handleResize.bind(this));
30201
30138
  this.tableDivElementResizeObserver.observe(this.tableDivElement);
30202
30139
  }
30140
+ this.checkAndUpdateStickyState();
30203
30141
  }
30204
30142
  handleSettingsChange(event) {
30205
30143
  var _a;
@@ -30212,12 +30150,48 @@ class KolTableStateless {
30212
30150
  disconnectedCallback() {
30213
30151
  var _a;
30214
30152
  (_a = this.tableDivElementResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
30153
+ clearTimeout(this.resizeDebounceTimeout);
30154
+ }
30155
+ handleResize() {
30156
+ this.checkDivElementScrollbar();
30157
+ clearTimeout(this.resizeDebounceTimeout);
30158
+ this.resizeDebounceTimeout = setTimeout(() => {
30159
+ this.checkAndUpdateStickyState();
30160
+ }, RESIZE_DEBOUNCE_DELAY);
30215
30161
  }
30216
30162
  checkDivElementScrollbar() {
30217
30163
  if (this.tableDivElement) {
30218
30164
  this.tableDivElementHasScrollbar = this.tableDivElement.scrollWidth > this.tableDivElement.clientWidth;
30219
30165
  }
30220
30166
  }
30167
+ calculateFixedColsWidth() {
30168
+ var _a, _b, _c, _d, _e, _f;
30169
+ if (!this._fixedCols)
30170
+ return 0;
30171
+ const primaryHeader = this.getPrimaryHeaders(this.state._headerCells);
30172
+ let totalWidth = 0;
30173
+ for (let i = 0; i < this._fixedCols[0] && i < primaryHeader.length; i++) {
30174
+ totalWidth += (_b = (_a = primaryHeader[i]) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0;
30175
+ }
30176
+ const startRight = this.maxCols - this._fixedCols[1];
30177
+ for (let i = startRight; i < this.maxCols && i < primaryHeader.length; i++) {
30178
+ totalWidth += (_d = (_c = primaryHeader[i]) === null || _c === void 0 ? void 0 : _c.width) !== null && _d !== void 0 ? _d : 0;
30179
+ }
30180
+ if (this.state._selection) {
30181
+ const selectionCell = (_e = this.tableDivElement) === null || _e === void 0 ? void 0 : _e.querySelector('.kol-table__cell--selection');
30182
+ totalWidth += (_f = selectionCell === null || selectionCell === void 0 ? void 0 : selectionCell.offsetWidth) !== null && _f !== void 0 ? _f : 0;
30183
+ }
30184
+ return totalWidth;
30185
+ }
30186
+ checkAndUpdateStickyState() {
30187
+ if (!this.tableDivElement || !this._fixedCols) {
30188
+ this.stickyColsDisabled = false;
30189
+ return;
30190
+ }
30191
+ const containerWidth = this.tableDivElement.clientWidth;
30192
+ const fixedColsWidth = this.calculateFixedColsWidth();
30193
+ this.stickyColsDisabled = fixedColsWidth > 0 && fixedColsWidth >= containerWidth;
30194
+ }
30221
30195
  updateDataToKeyMap(data) {
30222
30196
  data.forEach((data) => {
30223
30197
  if (!this.dataToKeyMap.has(data)) {
@@ -30437,7 +30411,7 @@ class KolTableStateless {
30437
30411
  return dataField;
30438
30412
  }
30439
30413
  isFixedCol(index) {
30440
- if (!this._fixedCols || index === undefined) {
30414
+ if (!this._fixedCols || index === undefined || this.stickyColsDisabled) {
30441
30415
  return undefined;
30442
30416
  }
30443
30417
  if (index < this._fixedCols[0]) {
@@ -30724,12 +30698,12 @@ class KolTableStateless {
30724
30698
  const dataField = this.createDataField(this.state._data, this.state._headerCells);
30725
30699
  this.checkboxRefs = [];
30726
30700
  const horizontalHeaders = this.state._headerCells.horizontal;
30727
- return (hAsync("div", { key: '1edebcb9f54def1e78b9f5d0c769c1ed96f8193e', class: "kol-table" }, this.state._hasSettingsMenu && hAsync(KolTableSettingsWcTag, { key: '1e4b9861b95aff0f199712033a4ae5939d9c007a', _horizontalHeaderCells: horizontalHeaders !== null && horizontalHeaders !== void 0 ? horizontalHeaders : [] }), hAsync("div", { key: 'db82c1855fdda4d2c65ed50416cf81823db72b3e', ref: (element) => (this.tableDivElement = element), class: "kol-table__scroll-container", tabindex: this.tableDivElementHasScrollbar ? '-1' : undefined }, hAsync("table", { key: '634d3173c119cf21bbf611deb86f3d4503ece9aa', class: "kol-table__table", style: {
30701
+ return (hAsync("div", { key: '5ddf10f82b6aeef72bae63ff222daac7e9cb76c2', class: "kol-table" }, this.state._hasSettingsMenu && hAsync(KolTableSettingsWcTag, { key: '35dc658b20b20949fb2a2c251243b1868e23fff1', _horizontalHeaderCells: horizontalHeaders !== null && horizontalHeaders !== void 0 ? horizontalHeaders : [] }), hAsync("div", { key: 'da2904a5dacc000f911eaef29cc6f01ba31fb418', ref: (element) => (this.tableDivElement = element), class: "kol-table__scroll-container", tabindex: this.tableDivElementHasScrollbar ? '-1' : undefined }, hAsync("table", { key: '1529eb6a1d029c1df0942f244b3dac52fc937bbc', class: "kol-table__table", style: {
30728
30702
  minWidth: this.getTableMinWidth(),
30729
- } }, hAsync("caption", { key: '33f1bae75a0424ea8c0168b9d1ad0a79b441da33', class: "kol-table__focus-element kol-table__caption", id: "caption", tabindex: this.tableDivElementHasScrollbar ? '0' : undefined }, this.state._label), Array.isArray(horizontalHeaders) && (hAsync("thead", { key: '217ea984ab0fd2a26cd6b0d156fdeffe8661626b', class: "kol-table__head" }, [
30703
+ } }, hAsync("caption", { key: '1cf7ded256d54d7c7fb05a0366a888f51149dc1c', class: "kol-table__focus-element kol-table__caption", id: "caption", tabindex: this.tableDivElementHasScrollbar ? '0' : undefined }, this.state._label), Array.isArray(horizontalHeaders) && (hAsync("thead", { key: '4ea94abfaba71e502d3cbcfc5c56ad9945944df2', class: "kol-table__head" }, [
30730
30704
  horizontalHeaders.map((cols, rowIndex) => (hAsync("tr", { class: "kol-table__head-row", key: `thead-${rowIndex}` }, this.state._selection && this.renderHeadingSelectionCell(), rowIndex === 0 && this.renderHeaderTdCell(), Array.isArray(cols) && cols.map((cell, colIndex) => this.renderHeadingCell(cell, rowIndex, colIndex, false))))),
30731
30705
  this.renderSpacer('head', horizontalHeaders),
30732
- ])), hAsync("tbody", { key: '84e65718ccdd6b4bec909fdd5c21c53aa72c1a59', class: "kol-table__body" }, dataField.map((row, rowIndex) => this.renderTableRow(row, rowIndex, true))), this.renderFoot()))));
30706
+ ])), hAsync("tbody", { key: '956ba95c28f4593fe01d94c6191002d4b105d0f1', class: "kol-table__body" }, dataField.map((row, rowIndex) => this.renderTableRow(row, rowIndex, true))), this.renderFoot()))));
30733
30707
  }
30734
30708
  get host() { return getElement(this); }
30735
30709
  static get watchers() { return {
@@ -30756,6 +30730,7 @@ class KolTableStateless {
30756
30730
  "_hasSettingsMenu": [4, "_has-settings-menu"],
30757
30731
  "state": [32],
30758
30732
  "tableDivElementHasScrollbar": [32],
30733
+ "stickyColsDisabled": [32],
30759
30734
  "previousHeaderCells": [32]
30760
30735
  },
30761
30736
  "$listeners$": [[0, "keydown", "handleKeyDown"], [0, "changeheadercells", "handleSettingsChange"]],
package/dist/index.mjs CHANGED
@@ -144,7 +144,7 @@ function _mergeNamespaces(n, m) {
144
144
 
145
145
  const NAMESPACE = 'kolibri';
146
146
  const BUILD = /* kolibri */ { hydratedSelectorName: "hydrated", slotRelocation: true, state: true, updatable: true};
147
- const Env = /* kolibri */ {"kolibriVersion":"4.1.1-rc.2"};
147
+ const Env = /* kolibri */ {"kolibriVersion":"4.1.1"};
148
148
 
149
149
  function getDefaultExportFromCjs (x) {
150
150
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
@@ -6922,7 +6922,13 @@ function createPropDefinition(normalize, validate = () => true) {
6922
6922
  return {
6923
6923
  normalize,
6924
6924
  validate,
6925
- apply(value, callback) {
6925
+ apply(value, callback, defaultValue) {
6926
+ if (value === undefined || value === null) {
6927
+ if (defaultValue !== undefined) {
6928
+ callback(defaultValue);
6929
+ }
6930
+ return;
6931
+ }
6926
6932
  try {
6927
6933
  const normalized = this.normalize(value);
6928
6934
  if (this.validate(normalized)) {
@@ -6939,7 +6945,13 @@ function createDependentPropDefinition(normalize, validate = () => true) {
6939
6945
  return {
6940
6946
  normalize,
6941
6947
  validate,
6942
- apply(value, callback, deps) {
6948
+ apply(value, callback, deps, defaultValue) {
6949
+ if (value === undefined || value === null) {
6950
+ if (defaultValue !== undefined) {
6951
+ callback(defaultValue);
6952
+ }
6953
+ return;
6954
+ }
6943
6955
  try {
6944
6956
  const normalized = this.normalize(value, deps);
6945
6957
  if (this.validate(normalized, deps)) {
@@ -6962,18 +6974,6 @@ function normalizeString(value) {
6962
6974
  }
6963
6975
  throw new Error(`Invalid string: ${value}`);
6964
6976
  }
6965
- function normalizeInteger(value) {
6966
- if (typeof value === 'number') {
6967
- return Number.isInteger(value) ? value : Math.round(value);
6968
- }
6969
- if (typeof value === 'string') {
6970
- const parsed = parseInt(value, 10);
6971
- if (!isNaN(parsed)) {
6972
- return parsed;
6973
- }
6974
- }
6975
- throw new Error(`Invalid integer: ${value}`);
6976
- }
6977
6977
  function normalizeNumber(value) {
6978
6978
  if (typeof value === 'number') {
6979
6979
  return value;
@@ -7024,30 +7024,8 @@ function validator(value) {
7024
7024
  }
7025
7025
  const colorProp = createPropDefinition(normalizer, validator);
7026
7026
 
7027
- const countProp = createPropDefinition(normalizeInteger, (v) => v >= 0);
7028
-
7029
7027
  const hrefProp = createPropDefinition(normalizeString, (v) => v.length > 0);
7030
7028
 
7031
- const formatNameAsInitial = (name) => {
7032
- if (name.length === 0) {
7033
- return '';
7034
- }
7035
- return name[0].toUpperCase();
7036
- };
7037
- const normalizeInitials = (value) => {
7038
- if (typeof value !== 'string') {
7039
- throw new Error(`Invalid initials value: ${JSON.stringify(value)}`);
7040
- }
7041
- const names = value.trim().split(/\s+/);
7042
- const first = names[0];
7043
- const last = names[names.length - 1];
7044
- if (names.length >= 2 && first && last) {
7045
- return `${formatNameAsInitial(first)}${formatNameAsInitial(last)}`;
7046
- }
7047
- return formatNameAsInitial(value);
7048
- };
7049
- const initialsProp = createPropDefinition(normalizeInitials, (v) => v.length > 0);
7050
-
7051
7029
  const labelProp = createPropDefinition(normalizeString, (v) => v.length >= 2 && v.length <= 80);
7052
7030
 
7053
7031
  const LOADING_OPTIONS = ['eager', 'lazy'];
@@ -7093,9 +7071,10 @@ const QUOTE_VARIANT_SET = new Set(QUOTE_VARIANT_OPTIONS);
7093
7071
  const variantQuoteProp = createPropDefinition((value) => normalizeString(value), (v) => QUOTE_VARIANT_SET.has(v));
7094
7072
 
7095
7073
  class BaseController {
7096
- constructor(component, props) {
7074
+ constructor(component = {}) {
7097
7075
  this.component = component;
7098
- this.props = props;
7076
+ this.props = {};
7077
+ this.rawProps = {};
7099
7078
  }
7100
7079
  setProp(key, value) {
7101
7080
  this.props[key] = value;
@@ -7103,19 +7082,33 @@ class BaseController {
7103
7082
  getProps() {
7104
7083
  return this.props;
7105
7084
  }
7085
+ setRawProp(key, value) {
7086
+ this.rawProps[key] = value;
7087
+ }
7088
+ getRawProps() {
7089
+ return this.rawProps;
7090
+ }
7106
7091
  setState(key, value) {
7107
7092
  this.component[key] = value;
7108
7093
  }
7109
7094
  }
7110
7095
 
7111
- class AvatarController extends BaseController {
7112
- constructor(states) {
7113
- super(states, {
7114
- color: { backgroundColor: '#d3d3d3', foregroundColor: '#3f3f3f' },
7115
- label: '',
7116
- src: '',
7117
- });
7096
+ const formatNameAsInitial = (name) => {
7097
+ if (name.length === 0) {
7098
+ return '';
7118
7099
  }
7100
+ return name[0].toUpperCase();
7101
+ };
7102
+ const normalizeInitials = (value) => {
7103
+ const names = value.trim().split(/\s+/);
7104
+ const first = names[0];
7105
+ const last = names[names.length - 1];
7106
+ if (names.length >= 2 && first && last) {
7107
+ return `${formatNameAsInitial(first)}${formatNameAsInitial(last)}`;
7108
+ }
7109
+ return formatNameAsInitial(value);
7110
+ };
7111
+ class AvatarController extends BaseController {
7119
7112
  componentWillLoad(props) {
7120
7113
  const { color, label, src } = props;
7121
7114
  this.watchColor(color);
@@ -7125,20 +7118,21 @@ class AvatarController extends BaseController {
7125
7118
  watchColor(value) {
7126
7119
  colorProp.apply(value, (v) => {
7127
7120
  this.setProp('color', v);
7121
+ }, {
7122
+ backgroundColor: '#d3d3d3',
7123
+ foregroundColor: '#3f3f3f',
7128
7124
  });
7129
7125
  }
7130
7126
  watchLabel(value) {
7131
7127
  labelProp.apply(value, (v) => {
7132
7128
  this.setProp('label', v);
7133
- });
7134
- initialsProp.apply(value, (v) => {
7135
- this.setState('initials', v);
7136
- });
7129
+ this.setState('initials', normalizeInitials(v));
7130
+ }, '');
7137
7131
  }
7138
7132
  watchSrc(value) {
7139
7133
  srcProp.apply(value, (v) => {
7140
7134
  this.setProp('src', v);
7141
- });
7135
+ }, '');
7142
7136
  }
7143
7137
  }
7144
7138
 
@@ -19645,10 +19639,8 @@ const BEM_CLASS_CLICK_BUTTON__LABEL = clickButtonBem('label');
19645
19639
  const ClickButtonFC = ({ label, handleClick, refButton }) => (hAsync("button", { class: BEM_CLASS_CLICK_BUTTON, ref: refButton, onClick: handleClick, onKeyDown: (event) => event.preventDefault() }, hAsync("span", { class: BEM_CLASS_CLICK_BUTTON__LABEL }, label)));
19646
19640
 
19647
19641
  class ClickButtonController extends BaseController {
19648
- constructor(states = {}) {
19649
- super(states, {
19650
- label: '',
19651
- });
19642
+ constructor() {
19643
+ super(...arguments);
19652
19644
  this.handleClick = () => {
19653
19645
  console.log(this, this.buttonRef, 'button clicked');
19654
19646
  };
@@ -19663,7 +19655,7 @@ class ClickButtonController extends BaseController {
19663
19655
  watchLabel(value) {
19664
19656
  labelProp.apply(value, (v) => {
19665
19657
  this.setProp('label', v);
19666
- });
19658
+ }, '');
19667
19659
  }
19668
19660
  focus() {
19669
19661
  var _a;
@@ -21232,7 +21224,7 @@ const bem = c();
21232
21224
  const BEM_CLASS_ICON = bem('kol-icon');
21233
21225
  const BEM_CLASS_ICON__ICON = bem('kol-icon', 'icon');
21234
21226
 
21235
- const defaultStyleCss$y = "/* forward the rem function */\n@font-face {\n font-family: \"kolicons\";\n src: url(\"kolicons.eot?t=1772813649030\"); /* IE9*/\n src: url(\"kolicons.eot?t=1772813649030#iefix\") format(\"embedded-opentype\"), url(\"kolicons.woff2?t=1772813649030\") format(\"woff2\"), url(\"kolicons.woff?t=1772813649030\") format(\"woff\"), url(\"kolicons.ttf?t=1772813649030\") format(\"truetype\"), url(\"kolicons.svg?t=1772813649030#kolicons\") format(\"svg\"); /* iOS 4.1- */\n}\n[class^=kolicon-], [class*=\" kolicon-\"] {\n font-family: \"kolicons\";\n font-size: inherit;\n font-style: normal;\n font-weight: 400;\n line-height: 1em;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.kolicon-alert-error::before {\n content: \"\\ea01\";\n}\n\n.kolicon-alert-info::before {\n content: \"\\ea02\";\n}\n\n.kolicon-alert-success::before {\n content: \"\\ea03\";\n}\n\n.kolicon-alert-warning::before {\n content: \"\\ea04\";\n}\n\n.kolicon-check::before {\n content: \"\\ea05\";\n}\n\n.kolicon-chevron-double-left::before {\n content: \"\\ea06\";\n}\n\n.kolicon-chevron-double-right::before {\n content: \"\\ea07\";\n}\n\n.kolicon-chevron-down::before {\n content: \"\\ea08\";\n}\n\n.kolicon-chevron-left::before {\n content: \"\\ea09\";\n}\n\n.kolicon-chevron-right::before {\n content: \"\\ea0a\";\n}\n\n.kolicon-chevron-up::before {\n content: \"\\ea0b\";\n}\n\n.kolicon-cogwheel::before {\n content: \"\\ea0c\";\n}\n\n.kolicon-cross::before {\n content: \"\\ea0d\";\n}\n\n.kolicon-eye-closed::before {\n content: \"\\ea0e\";\n}\n\n.kolicon-eye::before {\n content: \"\\ea0f\";\n}\n\n.kolicon-house::before {\n content: \"\\ea10\";\n}\n\n.kolicon-kolibri::before {\n content: \"\\ea11\";\n}\n\n.kolicon-link-external::before {\n content: \"\\ea12\";\n}\n\n.kolicon-link::before {\n content: \"\\ea13\";\n}\n\n.kolicon-minus::before {\n content: \"\\ea14\";\n}\n\n.kolicon-plus::before {\n content: \"\\ea15\";\n}\n\n.kolicon-settings::before {\n content: \"\\ea16\";\n}\n\n.kolicon-sort-asc::before {\n content: \"\\ea17\";\n}\n\n.kolicon-sort-desc::before {\n content: \"\\ea18\";\n}\n\n.kolicon-sort-neutral::before {\n content: \"\\ea19\";\n}\n\n.kolicon-up::before {\n content: \"\\ea1a\";\n}\n\n.kolicon-version::before {\n content: \"\\ea1b\";\n}\n\n@layer kol-component {\n /* :host implicitly inherits font-size, see below */\n :host {\n color: inherit;\n display: contents;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n }\n}";
21227
+ const defaultStyleCss$y = "/* forward the rem function */\n@font-face {\n font-family: \"kolicons\";\n src: url(\"kolicons.eot?t=1773045157587\"); /* IE9*/\n src: url(\"kolicons.eot?t=1773045157587#iefix\") format(\"embedded-opentype\"), url(\"kolicons.woff2?t=1773045157587\") format(\"woff2\"), url(\"kolicons.woff?t=1773045157587\") format(\"woff\"), url(\"kolicons.ttf?t=1773045157587\") format(\"truetype\"), url(\"kolicons.svg?t=1773045157587#kolicons\") format(\"svg\"); /* iOS 4.1- */\n}\n[class^=kolicon-], [class*=\" kolicon-\"] {\n font-family: \"kolicons\";\n font-size: inherit;\n font-style: normal;\n font-weight: 400;\n line-height: 1em;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.kolicon-alert-error::before {\n content: \"\\ea01\";\n}\n\n.kolicon-alert-info::before {\n content: \"\\ea02\";\n}\n\n.kolicon-alert-success::before {\n content: \"\\ea03\";\n}\n\n.kolicon-alert-warning::before {\n content: \"\\ea04\";\n}\n\n.kolicon-check::before {\n content: \"\\ea05\";\n}\n\n.kolicon-chevron-double-left::before {\n content: \"\\ea06\";\n}\n\n.kolicon-chevron-double-right::before {\n content: \"\\ea07\";\n}\n\n.kolicon-chevron-down::before {\n content: \"\\ea08\";\n}\n\n.kolicon-chevron-left::before {\n content: \"\\ea09\";\n}\n\n.kolicon-chevron-right::before {\n content: \"\\ea0a\";\n}\n\n.kolicon-chevron-up::before {\n content: \"\\ea0b\";\n}\n\n.kolicon-cogwheel::before {\n content: \"\\ea0c\";\n}\n\n.kolicon-cross::before {\n content: \"\\ea0d\";\n}\n\n.kolicon-eye-closed::before {\n content: \"\\ea0e\";\n}\n\n.kolicon-eye::before {\n content: \"\\ea0f\";\n}\n\n.kolicon-house::before {\n content: \"\\ea10\";\n}\n\n.kolicon-kolibri::before {\n content: \"\\ea11\";\n}\n\n.kolicon-link-external::before {\n content: \"\\ea12\";\n}\n\n.kolicon-link::before {\n content: \"\\ea13\";\n}\n\n.kolicon-minus::before {\n content: \"\\ea14\";\n}\n\n.kolicon-plus::before {\n content: \"\\ea15\";\n}\n\n.kolicon-settings::before {\n content: \"\\ea16\";\n}\n\n.kolicon-sort-asc::before {\n content: \"\\ea17\";\n}\n\n.kolicon-sort-desc::before {\n content: \"\\ea18\";\n}\n\n.kolicon-sort-neutral::before {\n content: \"\\ea19\";\n}\n\n.kolicon-up::before {\n content: \"\\ea1a\";\n}\n\n.kolicon-version::before {\n content: \"\\ea1b\";\n}\n\n@layer kol-component {\n /* :host implicitly inherits font-size, see below */\n :host {\n color: inherit;\n display: contents;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n }\n}";
21236
21228
 
21237
21229
  class KolIcon {
21238
21230
  render() {
@@ -21283,15 +21275,6 @@ const ImageFC = (props) => {
21283
21275
  };
21284
21276
 
21285
21277
  class ImageController extends BaseController {
21286
- constructor(states = {}) {
21287
- super(states, {
21288
- alt: '',
21289
- loading: 'lazy',
21290
- sizes: '',
21291
- src: '',
21292
- srcset: '',
21293
- });
21294
- }
21295
21278
  componentWillLoad(props) {
21296
21279
  const { alt, loading, sizes, src, srcset } = props;
21297
21280
  this.watchAlt(alt);
@@ -21303,27 +21286,27 @@ class ImageController extends BaseController {
21303
21286
  watchAlt(value) {
21304
21287
  altProp.apply(value, (v) => {
21305
21288
  this.setProp('alt', v);
21306
- });
21289
+ }, '');
21307
21290
  }
21308
21291
  watchLoading(value) {
21309
21292
  loadingProp.apply(value, (v) => {
21310
21293
  this.setProp('loading', v);
21311
- });
21294
+ }, 'lazy');
21312
21295
  }
21313
21296
  watchSizes(value) {
21314
21297
  sizesProp.apply(value, (v) => {
21315
21298
  this.setProp('sizes', v);
21316
- });
21299
+ }, '');
21317
21300
  }
21318
21301
  watchSrc(value) {
21319
21302
  srcProp.apply(value, (v) => {
21320
21303
  this.setProp('src', v);
21321
- });
21304
+ }, '');
21322
21305
  }
21323
21306
  watchSrcset(value) {
21324
21307
  srcsetProp.apply(value, (v) => {
21325
21308
  this.setProp('srcset', v);
21326
- });
21309
+ }, '');
21327
21310
  }
21328
21311
  }
21329
21312
 
@@ -27795,15 +27778,6 @@ const ProgressFC = (props) => {
27795
27778
  };
27796
27779
 
27797
27780
  class ProgressController extends BaseController {
27798
- constructor(states) {
27799
- super(states, {
27800
- label: '',
27801
- max: 100,
27802
- unit: '%',
27803
- value: 0,
27804
- variant: 'bar',
27805
- });
27806
- }
27807
27781
  componentWillLoad(props) {
27808
27782
  const { label, max, unit, value, variant } = props;
27809
27783
  this.watchLabel(label);
@@ -27812,37 +27786,34 @@ class ProgressController extends BaseController {
27812
27786
  this.watchValue(value);
27813
27787
  this.watchVariant(variant);
27814
27788
  this.setState('liveValue', this.getProps().value);
27815
- this.setState('max', this.getProps().max);
27816
27789
  this.startLiveValueInterval();
27817
27790
  }
27818
27791
  watchLabel(value) {
27819
27792
  labelProp.apply(value, (v) => {
27820
27793
  this.setProp('label', v);
27821
- });
27794
+ }, '');
27822
27795
  }
27823
27796
  watchMax(value) {
27824
27797
  maxProp.apply(value, (v) => {
27825
27798
  this.setProp('max', v);
27826
- this.setState('max', v);
27827
- });
27828
- this.watchValue(this.getProps().value);
27799
+ this.watchValue(this.getRawProps().value);
27800
+ }, 100);
27829
27801
  }
27830
27802
  watchUnit(value) {
27831
27803
  unitProp.apply(value, (v) => {
27832
27804
  this.setProp('unit', v);
27833
- this.setState('unit', v);
27834
- });
27805
+ }, '%');
27835
27806
  }
27836
27807
  watchValue(value) {
27808
+ this.setRawProp('value', value);
27837
27809
  clampedNumberValueProp.apply(value, (v) => {
27838
27810
  this.setProp('value', v);
27839
- }, { min: 0, max: this.getProps().max });
27811
+ }, { min: 0, max: this.getProps().max }, 0);
27840
27812
  }
27841
27813
  watchVariant(value) {
27842
27814
  variantProgressProp.apply(value, (v) => {
27843
27815
  this.setProp('variant', v);
27844
- this.setState('variant', v);
27845
- });
27816
+ }, 'bar');
27846
27817
  }
27847
27818
  startLiveValueInterval() {
27848
27819
  this.interval = setInterval(() => {
@@ -27866,10 +27837,7 @@ class KolProgress {
27866
27837
  constructor(hostRef) {
27867
27838
  registerInstance(this, hostRef);
27868
27839
  this.ctrl = new ProgressController(this);
27869
- this.unit = '%';
27870
- this.variant = 'bar';
27871
27840
  this.liveValue = 0;
27872
- this.max = this._max;
27873
27841
  }
27874
27842
  watchLabel(value) {
27875
27843
  this.ctrl.watchLabel(value);
@@ -27901,7 +27869,7 @@ class KolProgress {
27901
27869
  render() {
27902
27870
  const { label, max, unit, value, variant } = this.ctrl.getProps();
27903
27871
  const { liveValue } = this;
27904
- return (hAsync(Host, { key: 'c101389f829d2be6f356a198fff8a557d6bcac46' }, hAsync(ProgressFC, { key: '805ea44845b7fb33b5e993b9dd4f5b2848933d7b', label: label, max: max, unit: unit, value: value, variant: variant, liveValue: liveValue })));
27872
+ return (hAsync(Host, { key: '3e780e20fdf0435675aa4139a34784d335b8ca0d' }, hAsync(ProgressFC, { key: '7c57e3c56ada9b13315f48565c9de2efa580b196', label: label, max: max, unit: unit, value: value, variant: variant, liveValue: liveValue })));
27905
27873
  }
27906
27874
  static get watchers() { return {
27907
27875
  "_label": ["watchLabel"],
@@ -27922,10 +27890,7 @@ class KolProgress {
27922
27890
  "_unit": [1],
27923
27891
  "_value": [2],
27924
27892
  "_variant": [1],
27925
- "unit": [32],
27926
- "variant": [32],
27927
- "liveValue": [32],
27928
- "max": [32]
27893
+ "liveValue": [32]
27929
27894
  },
27930
27895
  "$listeners$": undefined,
27931
27896
  "$lazyBundleId$": "-",
@@ -27946,14 +27911,6 @@ const QuoteFC = (props) => {
27946
27911
  };
27947
27912
 
27948
27913
  class QuoteController extends BaseController {
27949
- constructor() {
27950
- super({}, {
27951
- href: '',
27952
- label: '',
27953
- quote: '',
27954
- variant: 'inline',
27955
- });
27956
- }
27957
27914
  componentWillLoad(props) {
27958
27915
  const { href, label, quote, variant } = props;
27959
27916
  this.watchHref(href);
@@ -27964,22 +27921,22 @@ class QuoteController extends BaseController {
27964
27921
  watchHref(value) {
27965
27922
  hrefProp.apply(value, (v) => {
27966
27923
  this.setProp('href', v);
27967
- });
27924
+ }, '');
27968
27925
  }
27969
27926
  watchLabel(value) {
27970
27927
  labelProp.apply(value, (v) => {
27971
27928
  this.setProp('label', v);
27972
- });
27929
+ }, '');
27973
27930
  }
27974
27931
  watchQuote(value) {
27975
27932
  quoteProp.apply(value, (v) => {
27976
27933
  this.setProp('quote', v);
27977
- });
27934
+ }, '');
27978
27935
  }
27979
27936
  watchVariant(value) {
27980
27937
  variantQuoteProp.apply(value, (v) => {
27981
27938
  this.setProp('variant', v);
27982
- });
27939
+ }, 'inline');
27983
27940
  }
27984
27941
  }
27985
27942
 
@@ -29110,10 +29067,7 @@ const SkeletonFC = (props) => {
29110
29067
 
29111
29068
  class SkeletonController extends BaseController {
29112
29069
  constructor(states) {
29113
- super(states, {
29114
- count: 0,
29115
- name: '',
29116
- });
29070
+ super(states);
29117
29071
  this.onKeydown = (event) => {
29118
29072
  if (event.key === 'Escape') {
29119
29073
  console.log('Show should be toggled');
@@ -29122,9 +29076,8 @@ class SkeletonController extends BaseController {
29122
29076
  };
29123
29077
  this.handleClick = () => {
29124
29078
  Log.debug('Button clicked, count should be increased');
29125
- const { count } = this.getProps();
29079
+ const { count } = this.component;
29126
29080
  const nextCount = count + 1;
29127
- this.setProp('count', nextCount);
29128
29081
  this.setState('count', nextCount);
29129
29082
  };
29130
29083
  this.setButtonRef = (element) => {
@@ -29134,30 +29087,16 @@ class SkeletonController extends BaseController {
29134
29087
  this.startLoadedEventInterval();
29135
29088
  }
29136
29089
  componentWillLoad(props) {
29137
- const { count, name } = props;
29138
- this.watchCount(count);
29090
+ const { name } = props;
29139
29091
  this.watchName(name);
29140
- this.watchLabel(this.component.label);
29141
29092
  this.clickButtonCtrl.componentWillLoad({
29142
29093
  label: this.component.label,
29143
29094
  });
29144
29095
  }
29145
- watchCount(value) {
29146
- countProp.apply(value, (v) => {
29147
- this.setProp('count', v);
29148
- this.setState('count', v);
29149
- });
29150
- }
29151
29096
  watchName(value) {
29152
29097
  nameProp.apply(value, (v) => {
29153
29098
  this.setProp('name', v);
29154
- });
29155
- }
29156
- watchLabel(value) {
29157
- labelProp.apply(value, (v) => {
29158
- this.setState('label', v);
29159
- this.clickButtonCtrl.watchLabel(v);
29160
- });
29099
+ }, '');
29161
29100
  }
29162
29101
  toggle() {
29163
29102
  this.setState('show', !this.component.show);
@@ -29167,7 +29106,7 @@ class SkeletonController extends BaseController {
29167
29106
  }
29168
29107
  startLoadedEventInterval() {
29169
29108
  this.intervalId = setInterval(() => {
29170
- const { count } = this.getProps();
29109
+ const { count } = this.component;
29171
29110
  this.emitLoaded(count);
29172
29111
  }, 2000);
29173
29112
  }
@@ -29193,9 +29132,9 @@ class KolSkeleton {
29193
29132
  this.loaded = createEvent(this, "loaded");
29194
29133
  this.rendered = createEvent(this, "rendered");
29195
29134
  this.ctrl = new SkeletonController(this);
29135
+ this.count = 0;
29196
29136
  this.label = 'Label';
29197
29137
  this.show = true;
29198
- this.count = 0;
29199
29138
  }
29200
29139
  async focus() {
29201
29140
  return Promise.resolve(this.ctrl.focus());
@@ -29203,9 +29142,6 @@ class KolSkeleton {
29203
29142
  async toggle() {
29204
29143
  return Promise.resolve(this.ctrl.toggle());
29205
29144
  }
29206
- watchCount(value) {
29207
- this.ctrl.watchCount(value);
29208
- }
29209
29145
  watchName(value) {
29210
29146
  this.ctrl.watchName(value);
29211
29147
  }
@@ -29220,7 +29156,6 @@ class KolSkeleton {
29220
29156
  }
29221
29157
  componentWillLoad() {
29222
29158
  this.ctrl.componentWillLoad({
29223
- count: this._count,
29224
29159
  name: this._name,
29225
29160
  });
29226
29161
  this.ctrl.setOnLoadedCallback((count) => {
@@ -29236,23 +29171,21 @@ class KolSkeleton {
29236
29171
  this.ctrl.destroy();
29237
29172
  }
29238
29173
  render() {
29239
- const { count, name } = this.ctrl.getProps();
29240
- const { label, show } = this;
29241
- return (hAsync(Host, { key: '6358ec20f7531a0a536b84c0a1dd2f54e6b2bf7a' }, hAsync(SkeletonFC, { key: '715b10c0aa93c24425c55b01a737d1950128225f', count: count, label: label, name: name, handleClick: () => this.ctrl.handleClick(), onLoaded: this.loaded, onRendered: this.rendered, show: show, refButton: (element) => this.ctrl.setButtonRef(element) })));
29174
+ const { name } = this.ctrl.getProps();
29175
+ const { count, label, show } = this;
29176
+ return (hAsync(Host, { key: '5f1160b2f3d269b6db7a26a01c73669d39410cfc' }, hAsync(SkeletonFC, { key: 'dd668006b85713834366c4831105f7f047c6797b', count: count, label: label, name: name, handleClick: () => this.ctrl.handleClick(), onLoaded: this.loaded, onRendered: this.rendered, show: show, refButton: (element) => this.ctrl.setButtonRef(element) })));
29242
29177
  }
29243
29178
  static get watchers() { return {
29244
- "_count": ["watchCount"],
29245
29179
  "_name": ["watchName"]
29246
29180
  }; }
29247
29181
  static get cmpMeta() { return {
29248
29182
  "$flags$": 265,
29249
29183
  "$tagName$": "kol-skeleton",
29250
29184
  "$members$": {
29251
- "_count": [8],
29252
29185
  "_name": [1],
29186
+ "count": [32],
29253
29187
  "label": [32],
29254
29188
  "show": [32],
29255
- "count": [32],
29256
29189
  "focus": [64],
29257
29190
  "toggle": [64]
29258
29191
  },
@@ -30055,6 +29988,7 @@ let KolTableStateless$1 = class KolTableStateless {
30055
29988
  }; }
30056
29989
  };
30057
29990
 
29991
+ const RESIZE_DEBOUNCE_DELAY = 150;
30058
29992
  class KolTableStateless {
30059
29993
  constructor(hostRef) {
30060
29994
  registerInstance(this, hostRef);
@@ -30077,6 +30011,7 @@ class KolTableStateless {
30077
30011
  this.maxCols = 0;
30078
30012
  this.fixedOffsets = [];
30079
30013
  this.tableDivElementHasScrollbar = false;
30014
+ this.stickyColsDisabled = false;
30080
30015
  this.renderTableRow = (row, rowIndex, isVertical, isFooter = false) => {
30081
30016
  var _a, _b;
30082
30017
  let key = String(rowIndex);
@@ -30152,6 +30087,7 @@ class KolTableStateless {
30152
30087
  }
30153
30088
  validateFixedCols(value) {
30154
30089
  validateFixedCols(this, value);
30090
+ this.checkAndUpdateStickyState();
30155
30091
  }
30156
30092
  validateHeaderCells(value) {
30157
30093
  validateTableHeaderCells(this, value);
@@ -30170,6 +30106,7 @@ class KolTableStateless {
30170
30106
  }
30171
30107
  validateSelection(value) {
30172
30108
  validateTableSelection(this, value);
30109
+ this.checkAndUpdateStickyState();
30173
30110
  }
30174
30111
  handleKeyDown(event) {
30175
30112
  var _a;
@@ -30195,9 +30132,10 @@ class KolTableStateless {
30195
30132
  }
30196
30133
  componentDidLoad() {
30197
30134
  if (this.tableDivElement && ResizeObserver) {
30198
- this.tableDivElementResizeObserver = new ResizeObserver(this.checkDivElementScrollbar.bind(this));
30135
+ this.tableDivElementResizeObserver = new ResizeObserver(this.handleResize.bind(this));
30199
30136
  this.tableDivElementResizeObserver.observe(this.tableDivElement);
30200
30137
  }
30138
+ this.checkAndUpdateStickyState();
30201
30139
  }
30202
30140
  handleSettingsChange(event) {
30203
30141
  var _a;
@@ -30210,12 +30148,48 @@ class KolTableStateless {
30210
30148
  disconnectedCallback() {
30211
30149
  var _a;
30212
30150
  (_a = this.tableDivElementResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
30151
+ clearTimeout(this.resizeDebounceTimeout);
30152
+ }
30153
+ handleResize() {
30154
+ this.checkDivElementScrollbar();
30155
+ clearTimeout(this.resizeDebounceTimeout);
30156
+ this.resizeDebounceTimeout = setTimeout(() => {
30157
+ this.checkAndUpdateStickyState();
30158
+ }, RESIZE_DEBOUNCE_DELAY);
30213
30159
  }
30214
30160
  checkDivElementScrollbar() {
30215
30161
  if (this.tableDivElement) {
30216
30162
  this.tableDivElementHasScrollbar = this.tableDivElement.scrollWidth > this.tableDivElement.clientWidth;
30217
30163
  }
30218
30164
  }
30165
+ calculateFixedColsWidth() {
30166
+ var _a, _b, _c, _d, _e, _f;
30167
+ if (!this._fixedCols)
30168
+ return 0;
30169
+ const primaryHeader = this.getPrimaryHeaders(this.state._headerCells);
30170
+ let totalWidth = 0;
30171
+ for (let i = 0; i < this._fixedCols[0] && i < primaryHeader.length; i++) {
30172
+ totalWidth += (_b = (_a = primaryHeader[i]) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0;
30173
+ }
30174
+ const startRight = this.maxCols - this._fixedCols[1];
30175
+ for (let i = startRight; i < this.maxCols && i < primaryHeader.length; i++) {
30176
+ totalWidth += (_d = (_c = primaryHeader[i]) === null || _c === void 0 ? void 0 : _c.width) !== null && _d !== void 0 ? _d : 0;
30177
+ }
30178
+ if (this.state._selection) {
30179
+ const selectionCell = (_e = this.tableDivElement) === null || _e === void 0 ? void 0 : _e.querySelector('.kol-table__cell--selection');
30180
+ totalWidth += (_f = selectionCell === null || selectionCell === void 0 ? void 0 : selectionCell.offsetWidth) !== null && _f !== void 0 ? _f : 0;
30181
+ }
30182
+ return totalWidth;
30183
+ }
30184
+ checkAndUpdateStickyState() {
30185
+ if (!this.tableDivElement || !this._fixedCols) {
30186
+ this.stickyColsDisabled = false;
30187
+ return;
30188
+ }
30189
+ const containerWidth = this.tableDivElement.clientWidth;
30190
+ const fixedColsWidth = this.calculateFixedColsWidth();
30191
+ this.stickyColsDisabled = fixedColsWidth > 0 && fixedColsWidth >= containerWidth;
30192
+ }
30219
30193
  updateDataToKeyMap(data) {
30220
30194
  data.forEach((data) => {
30221
30195
  if (!this.dataToKeyMap.has(data)) {
@@ -30435,7 +30409,7 @@ class KolTableStateless {
30435
30409
  return dataField;
30436
30410
  }
30437
30411
  isFixedCol(index) {
30438
- if (!this._fixedCols || index === undefined) {
30412
+ if (!this._fixedCols || index === undefined || this.stickyColsDisabled) {
30439
30413
  return undefined;
30440
30414
  }
30441
30415
  if (index < this._fixedCols[0]) {
@@ -30722,12 +30696,12 @@ class KolTableStateless {
30722
30696
  const dataField = this.createDataField(this.state._data, this.state._headerCells);
30723
30697
  this.checkboxRefs = [];
30724
30698
  const horizontalHeaders = this.state._headerCells.horizontal;
30725
- return (hAsync("div", { key: '1edebcb9f54def1e78b9f5d0c769c1ed96f8193e', class: "kol-table" }, this.state._hasSettingsMenu && hAsync(KolTableSettingsWcTag, { key: '1e4b9861b95aff0f199712033a4ae5939d9c007a', _horizontalHeaderCells: horizontalHeaders !== null && horizontalHeaders !== void 0 ? horizontalHeaders : [] }), hAsync("div", { key: 'db82c1855fdda4d2c65ed50416cf81823db72b3e', ref: (element) => (this.tableDivElement = element), class: "kol-table__scroll-container", tabindex: this.tableDivElementHasScrollbar ? '-1' : undefined }, hAsync("table", { key: '634d3173c119cf21bbf611deb86f3d4503ece9aa', class: "kol-table__table", style: {
30699
+ return (hAsync("div", { key: '5ddf10f82b6aeef72bae63ff222daac7e9cb76c2', class: "kol-table" }, this.state._hasSettingsMenu && hAsync(KolTableSettingsWcTag, { key: '35dc658b20b20949fb2a2c251243b1868e23fff1', _horizontalHeaderCells: horizontalHeaders !== null && horizontalHeaders !== void 0 ? horizontalHeaders : [] }), hAsync("div", { key: 'da2904a5dacc000f911eaef29cc6f01ba31fb418', ref: (element) => (this.tableDivElement = element), class: "kol-table__scroll-container", tabindex: this.tableDivElementHasScrollbar ? '-1' : undefined }, hAsync("table", { key: '1529eb6a1d029c1df0942f244b3dac52fc937bbc', class: "kol-table__table", style: {
30726
30700
  minWidth: this.getTableMinWidth(),
30727
- } }, hAsync("caption", { key: '33f1bae75a0424ea8c0168b9d1ad0a79b441da33', class: "kol-table__focus-element kol-table__caption", id: "caption", tabindex: this.tableDivElementHasScrollbar ? '0' : undefined }, this.state._label), Array.isArray(horizontalHeaders) && (hAsync("thead", { key: '217ea984ab0fd2a26cd6b0d156fdeffe8661626b', class: "kol-table__head" }, [
30701
+ } }, hAsync("caption", { key: '1cf7ded256d54d7c7fb05a0366a888f51149dc1c', class: "kol-table__focus-element kol-table__caption", id: "caption", tabindex: this.tableDivElementHasScrollbar ? '0' : undefined }, this.state._label), Array.isArray(horizontalHeaders) && (hAsync("thead", { key: '4ea94abfaba71e502d3cbcfc5c56ad9945944df2', class: "kol-table__head" }, [
30728
30702
  horizontalHeaders.map((cols, rowIndex) => (hAsync("tr", { class: "kol-table__head-row", key: `thead-${rowIndex}` }, this.state._selection && this.renderHeadingSelectionCell(), rowIndex === 0 && this.renderHeaderTdCell(), Array.isArray(cols) && cols.map((cell, colIndex) => this.renderHeadingCell(cell, rowIndex, colIndex, false))))),
30729
30703
  this.renderSpacer('head', horizontalHeaders),
30730
- ])), hAsync("tbody", { key: '84e65718ccdd6b4bec909fdd5c21c53aa72c1a59', class: "kol-table__body" }, dataField.map((row, rowIndex) => this.renderTableRow(row, rowIndex, true))), this.renderFoot()))));
30704
+ ])), hAsync("tbody", { key: '956ba95c28f4593fe01d94c6191002d4b105d0f1', class: "kol-table__body" }, dataField.map((row, rowIndex) => this.renderTableRow(row, rowIndex, true))), this.renderFoot()))));
30731
30705
  }
30732
30706
  get host() { return getElement(this); }
30733
30707
  static get watchers() { return {
@@ -30754,6 +30728,7 @@ class KolTableStateless {
30754
30728
  "_hasSettingsMenu": [4, "_has-settings-menu"],
30755
30729
  "state": [32],
30756
30730
  "tableDivElementHasScrollbar": [32],
30731
+ "stickyColsDisabled": [32],
30757
30732
  "previousHeaderCells": [32]
30758
30733
  },
30759
30734
  "$listeners$": [[0, "keydown", "handleKeyDown"], [0, "changeheadercells", "handleSettingsChange"]],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@public-ui/hydrate",
3
- "version": "4.1.1-rc.2",
3
+ "version": "4.1.1",
4
4
  "license": "EUPL-1.2",
5
5
  "homepage": "https://public-ui.github.io",
6
6
  "repository": {
@@ -52,7 +52,7 @@
52
52
  "prettier": "3.8.1",
53
53
  "prettier-plugin-organize-imports": "4.3.0",
54
54
  "rimraf": "6.1.3",
55
- "@public-ui/components": "4.1.1-rc.2"
55
+ "@public-ui/components": "4.1.1"
56
56
  },
57
57
  "sideEffects": false,
58
58
  "type": "commonjs",