@jumpgroup/jump-design-system 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/dist/cjs/{index-12f40d28.js → index-41aaa52a.js} +125 -5
  2. package/dist/cjs/index-41aaa52a.js.map +1 -0
  3. package/dist/cjs/jump-badge.cjs.entry.js +6 -6
  4. package/dist/cjs/jump-badge.cjs.entry.js.map +1 -1
  5. package/dist/cjs/jump-button.cjs.entry.js +4 -3
  6. package/dist/cjs/jump-button.cjs.entry.js.map +1 -1
  7. package/dist/cjs/jump-card.cjs.entry.js +3 -3
  8. package/dist/cjs/jump-card.cjs.entry.js.map +1 -1
  9. package/dist/cjs/jump-design-system.cjs.js +3 -3
  10. package/dist/cjs/jump-design-system.cjs.js.map +1 -1
  11. package/dist/cjs/jump-icon.cjs.entry.js +5 -5
  12. package/dist/cjs/jump-icon.cjs.entry.js.map +1 -1
  13. package/dist/cjs/jump-pagination.cjs.entry.js +32 -10
  14. package/dist/cjs/jump-pagination.cjs.entry.js.map +1 -1
  15. package/dist/cjs/jump-tab.cjs.entry.js +29 -0
  16. package/dist/cjs/jump-tab.cjs.entry.js.map +1 -0
  17. package/dist/cjs/loader.cjs.js +2 -2
  18. package/dist/collection/collection-manifest.json +5 -4
  19. package/dist/collection/components/jump-badge/jump-badge.css +1 -1
  20. package/dist/collection/components/jump-badge/jump-badge.js +4 -4
  21. package/dist/collection/components/jump-badge/jump-badge.js.map +1 -1
  22. package/dist/collection/components/jump-badge/test/jump-badge.spec.js +2 -2
  23. package/dist/collection/components/jump-badge/test/jump-badge.spec.js.map +1 -1
  24. package/dist/collection/components/jump-button/jump-button-anchor.stories.js +14 -181
  25. package/dist/collection/components/jump-button/jump-button-anchor.stories.js.map +1 -1
  26. package/dist/collection/components/jump-button/jump-button-dimension.stories.js +10 -172
  27. package/dist/collection/components/jump-button/jump-button-dimension.stories.js.map +1 -1
  28. package/dist/collection/components/jump-button/jump-button-filled.stories.js +13 -227
  29. package/dist/collection/components/jump-button/jump-button-filled.stories.js.map +1 -1
  30. package/dist/collection/components/jump-button/jump-button-only-icon.stories.js +12 -245
  31. package/dist/collection/components/jump-button/jump-button-only-icon.stories.js.map +1 -1
  32. package/dist/collection/components/jump-button/jump-button-outline.stories.js +18 -214
  33. package/dist/collection/components/jump-button/jump-button-outline.stories.js.map +1 -1
  34. package/dist/collection/components/jump-button/jump-button-text.stories.js +10 -216
  35. package/dist/collection/components/jump-button/jump-button-text.stories.js.map +1 -1
  36. package/dist/collection/components/jump-button/jump-button.css +17 -7
  37. package/dist/collection/components/jump-button/jump-button.js +22 -3
  38. package/dist/collection/components/jump-button/jump-button.js.map +1 -1
  39. package/dist/collection/components/jump-card/jump-card.js +13 -13
  40. package/dist/collection/components/jump-card/jump-card.js.map +1 -1
  41. package/dist/collection/components/{app-icon → jump-icon}/jump-icon.js +2 -2
  42. package/dist/collection/components/jump-icon/jump-icon.js.map +1 -0
  43. package/dist/collection/components/{app-icon → jump-icon}/jump-icon.stories.js +1 -1
  44. package/dist/collection/components/jump-icon/jump-icon.stories.js.map +1 -0
  45. package/dist/collection/components/jump-icon/test/jump-icon.e2e.js.map +1 -0
  46. package/dist/collection/components/{app-icon → jump-icon}/test/jump-icon.spec.js +2 -2
  47. package/dist/collection/components/jump-icon/test/jump-icon.spec.js.map +1 -0
  48. package/dist/collection/components/jump-pagination/jump-pagination-pages.stories.js +41 -24
  49. package/dist/collection/components/jump-pagination/jump-pagination-pages.stories.js.map +1 -1
  50. package/dist/collection/components/jump-pagination/jump-pagination-products.stories.js +19 -40
  51. package/dist/collection/components/jump-pagination/jump-pagination-products.stories.js.map +1 -1
  52. package/dist/collection/components/jump-pagination/jump-pagination.css +13 -0
  53. package/dist/collection/components/jump-pagination/jump-pagination.js +64 -31
  54. package/dist/collection/components/jump-pagination/jump-pagination.js.map +1 -1
  55. package/dist/collection/components/jump-tab/jump-tab-inline.stories.js +28 -0
  56. package/dist/collection/components/jump-tab/jump-tab-inline.stories.js.map +1 -0
  57. package/dist/collection/components/jump-tab/jump-tab.css +3 -0
  58. package/dist/collection/components/jump-tab/jump-tab.js +71 -0
  59. package/dist/collection/components/jump-tab/jump-tab.js.map +1 -0
  60. package/dist/collection/components/jump-tab/test/jump-tab.e2e.js +10 -0
  61. package/dist/collection/components/jump-tab/test/jump-tab.e2e.js.map +1 -0
  62. package/dist/collection/components/jump-tab/test/jump-tab.spec.js +18 -0
  63. package/dist/collection/components/jump-tab/test/jump-tab.spec.js.map +1 -0
  64. package/dist/collection/utils/utils.js +17 -4
  65. package/dist/collection/utils/utils.js.map +1 -1
  66. package/dist/components/jump-badge.js +7 -7
  67. package/dist/components/jump-badge.js.map +1 -1
  68. package/dist/components/jump-button.js +4 -2
  69. package/dist/components/jump-button.js.map +1 -1
  70. package/dist/components/jump-card.js +13 -13
  71. package/dist/components/jump-card.js.map +1 -1
  72. package/dist/components/jump-icon.js +2 -2
  73. package/dist/components/jump-icon2.js +4 -4
  74. package/dist/components/jump-icon2.js.map +1 -1
  75. package/dist/components/jump-pagination.js +38 -13
  76. package/dist/components/jump-pagination.js.map +1 -1
  77. package/dist/components/jump-tab.d.ts +11 -0
  78. package/dist/components/jump-tab.js +46 -0
  79. package/dist/components/jump-tab.js.map +1 -0
  80. package/dist/esm/{index-d09b8a38.js → index-192aeaf1.js} +125 -6
  81. package/dist/esm/index-192aeaf1.js.map +1 -0
  82. package/dist/esm/jump-badge.entry.js +6 -6
  83. package/dist/esm/jump-badge.entry.js.map +1 -1
  84. package/dist/esm/jump-button.entry.js +4 -3
  85. package/dist/esm/jump-button.entry.js.map +1 -1
  86. package/dist/esm/jump-card.entry.js +3 -3
  87. package/dist/esm/jump-card.entry.js.map +1 -1
  88. package/dist/esm/jump-design-system.js +4 -4
  89. package/dist/esm/jump-design-system.js.map +1 -1
  90. package/dist/esm/jump-icon.entry.js +5 -5
  91. package/dist/esm/jump-icon.entry.js.map +1 -1
  92. package/dist/esm/jump-pagination.entry.js +32 -10
  93. package/dist/esm/jump-pagination.entry.js.map +1 -1
  94. package/dist/esm/jump-tab.entry.js +25 -0
  95. package/dist/esm/jump-tab.entry.js.map +1 -0
  96. package/dist/esm/loader.js +3 -3
  97. package/dist/jump-design-system/jump-design-system.esm.js +1 -1
  98. package/dist/jump-design-system/jump-design-system.esm.js.map +1 -1
  99. package/dist/jump-design-system/p-20ceb40c.js +3 -0
  100. package/dist/jump-design-system/p-20ceb40c.js.map +1 -0
  101. package/dist/jump-design-system/{p-b2967e30.entry.js → p-511d4425.entry.js} +3 -3
  102. package/dist/jump-design-system/p-511d4425.entry.js.map +1 -0
  103. package/dist/jump-design-system/p-61729377.entry.js +2 -0
  104. package/dist/jump-design-system/p-61729377.entry.js.map +1 -0
  105. package/dist/jump-design-system/{p-fea57bd7.entry.js → p-700b96b4.entry.js} +2 -2
  106. package/dist/jump-design-system/{p-fea57bd7.entry.js.map → p-700b96b4.entry.js.map} +1 -1
  107. package/dist/jump-design-system/p-87256ed6.entry.js +2 -0
  108. package/dist/jump-design-system/p-87256ed6.entry.js.map +1 -0
  109. package/dist/jump-design-system/{p-81fba573.entry.js → p-8f5caf32.entry.js} +2 -2
  110. package/dist/jump-design-system/p-8f5caf32.entry.js.map +1 -0
  111. package/dist/jump-design-system/p-960188c6.entry.js +2 -0
  112. package/dist/jump-design-system/p-960188c6.entry.js.map +1 -0
  113. package/dist/jump-design-system-elements.json +20 -7
  114. package/dist/types/components/jump-badge/jump-badge.d.ts +1 -1
  115. package/dist/types/components/jump-button/jump-button-anchor.stories.d.ts +0 -116
  116. package/dist/types/components/jump-button/jump-button-dimension.stories.d.ts +2 -117
  117. package/dist/types/components/jump-button/jump-button-filled.stories.d.ts +1 -107
  118. package/dist/types/components/jump-button/jump-button-only-icon.stories.d.ts +4 -115
  119. package/dist/types/components/jump-button/jump-button-outline.stories.d.ts +4 -110
  120. package/dist/types/components/jump-button/jump-button-text.stories.d.ts +2 -123
  121. package/dist/types/components/jump-button/jump-button.d.ts +5 -1
  122. package/dist/types/components/{app-icon → jump-icon}/jump-icon.d.ts +1 -1
  123. package/dist/types/components/jump-pagination/jump-pagination-pages.stories.d.ts +2 -1
  124. package/dist/types/components/jump-pagination/jump-pagination-products.stories.d.ts +2 -2
  125. package/dist/types/components/jump-pagination/jump-pagination.d.ts +10 -8
  126. package/dist/types/components/jump-tab/jump-tab-inline.stories.d.ts +18 -0
  127. package/dist/types/components/jump-tab/jump-tab.d.ts +6 -0
  128. package/dist/types/components.d.ts +47 -14
  129. package/dist/types/utils/utils.d.ts +1 -1
  130. package/package.json +3 -2
  131. package/dist/cjs/index-12f40d28.js.map +0 -1
  132. package/dist/collection/components/app-icon/jump-icon.js.map +0 -1
  133. package/dist/collection/components/app-icon/jump-icon.stories.js.map +0 -1
  134. package/dist/collection/components/app-icon/test/jump-icon.e2e.js.map +0 -1
  135. package/dist/collection/components/app-icon/test/jump-icon.spec.js.map +0 -1
  136. package/dist/collection/utils/utils.spec.js +0 -16
  137. package/dist/collection/utils/utils.spec.js.map +0 -1
  138. package/dist/esm/index-d09b8a38.js.map +0 -1
  139. package/dist/jump-design-system/p-062fa189.entry.js +0 -2
  140. package/dist/jump-design-system/p-062fa189.entry.js.map +0 -1
  141. package/dist/jump-design-system/p-407027a9.js +0 -3
  142. package/dist/jump-design-system/p-407027a9.js.map +0 -1
  143. package/dist/jump-design-system/p-81fba573.entry.js.map +0 -1
  144. package/dist/jump-design-system/p-b2967e30.entry.js.map +0 -1
  145. package/dist/jump-design-system/p-e0c9453d.entry.js +0 -2
  146. package/dist/jump-design-system/p-e0c9453d.entry.js.map +0 -1
  147. /package/dist/collection/components/{app-icon → jump-icon}/jump-icon.css +0 -0
  148. /package/dist/collection/components/{app-icon → jump-icon}/test/jump-icon.e2e.js +0 -0
  149. /package/dist/types/components/{app-icon → jump-icon}/jump-icon.stories.d.ts +0 -0
@@ -21,7 +21,7 @@ function _interopNamespace(e) {
21
21
  }
22
22
 
23
23
  const NAMESPACE = 'jump-design-system';
24
- const BUILD = /* jump-design-system */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: false, element: false, event: false, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: false, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: false, propNumber: true, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: false, style: true, svg: false, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: false, vdomKey: true, vdomListener: false, vdomPropOrAttr: true, vdomRef: false, vdomRender: true, vdomStyle: false, vdomText: true, vdomXlink: false, watchCallback: false };
24
+ const BUILD = /* jump-design-system */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: false, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: false, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: false, propNumber: true, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: false, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: false, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: false, vdomRender: true, vdomStyle: false, vdomText: true, vdomXlink: false, watchCallback: true };
25
25
 
26
26
  /**
27
27
  * Virtual DOM patching algorithm based on Snabbdom by
@@ -249,6 +249,20 @@ const parsePropertyValue = (propValue, propType) => {
249
249
  // so no need to change to a different type
250
250
  return propValue;
251
251
  };
252
+ const getElement = (ref) => (getHostRef(ref).$hostElement$ );
253
+ const createEvent = (ref, name, flags) => {
254
+ const elm = getElement(ref);
255
+ return {
256
+ emit: (detail) => {
257
+ return emitEvent(elm, name, {
258
+ bubbles: !!(flags & 4 /* EVENT_FLAGS.Bubbles */),
259
+ composed: !!(flags & 2 /* EVENT_FLAGS.Composed */),
260
+ cancelable: !!(flags & 1 /* EVENT_FLAGS.Cancellable */),
261
+ detail,
262
+ });
263
+ },
264
+ };
265
+ };
252
266
  /**
253
267
  * Helper function to create & dispatch a custom Event on a provided target
254
268
  * @param elm the target of the Event
@@ -365,7 +379,7 @@ const getScopeId = (cmp, mode) => 'sc-' + (cmp.$tagName$);
365
379
  const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
366
380
  if (oldValue !== newValue) {
367
381
  let isProp = isMemberInElement(elm, memberName);
368
- memberName.toLowerCase();
382
+ let ln = memberName.toLowerCase();
369
383
  if (memberName === 'class') {
370
384
  const classList = elm.classList;
371
385
  const oldClasses = parseClassList(oldValue);
@@ -375,6 +389,53 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
375
389
  }
376
390
  else if (memberName === 'key')
377
391
  ;
392
+ else if ((!isProp ) &&
393
+ memberName[0] === 'o' &&
394
+ memberName[1] === 'n') {
395
+ // Event Handlers
396
+ // so if the member name starts with "on" and the 3rd characters is
397
+ // a capital letter, and it's not already a member on the element,
398
+ // then we're assuming it's an event listener
399
+ if (memberName[2] === '-') {
400
+ // on- prefixed events
401
+ // allows to be explicit about the dom event to listen without any magic
402
+ // under the hood:
403
+ // <my-cmp on-click> // listens for "click"
404
+ // <my-cmp on-Click> // listens for "Click"
405
+ // <my-cmp on-ionChange> // listens for "ionChange"
406
+ // <my-cmp on-EVENTS> // listens for "EVENTS"
407
+ memberName = memberName.slice(3);
408
+ }
409
+ else if (isMemberInElement(win, ln)) {
410
+ // standard event
411
+ // the JSX attribute could have been "onMouseOver" and the
412
+ // member name "onmouseover" is on the window's prototype
413
+ // so let's add the listener "mouseover", which is all lowercased
414
+ memberName = ln.slice(2);
415
+ }
416
+ else {
417
+ // custom event
418
+ // the JSX attribute could have been "onMyCustomEvent"
419
+ // so let's trim off the "on" prefix and lowercase the first character
420
+ // and add the listener "myCustomEvent"
421
+ // except for the first character, we keep the event name case
422
+ memberName = ln[2] + memberName.slice(3);
423
+ }
424
+ if (oldValue || newValue) {
425
+ // Need to account for "capture" events.
426
+ // If the event name ends with "Capture", we'll update the name to remove
427
+ // the "Capture" suffix and make sure the event listener is setup to handle the capture event.
428
+ const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
429
+ // Make sure we only replace the last instance of "Capture"
430
+ memberName = memberName.replace(CAPTURE_EVENT_REGEX, '');
431
+ if (oldValue) {
432
+ plt.rel(elm, memberName, oldValue, capture);
433
+ }
434
+ if (newValue) {
435
+ plt.ael(elm, memberName, newValue, capture);
436
+ }
437
+ }
438
+ }
378
439
  else {
379
440
  // Set property if it exists and it's not a SVG
380
441
  const isComplex = isComplexType(newValue);
@@ -423,6 +484,8 @@ const parseClassListRegex = /\s/;
423
484
  * @returns list of classes, e.g. ["foo", "bar", "baz"]
424
485
  */
425
486
  const parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));
487
+ const CAPTURE_EVENT_SUFFIX = 'Capture';
488
+ const CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + '$');
426
489
  const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
427
490
  // if the element passed in is a shadow root, which is a document fragment
428
491
  // then we want to be adding attrs/props to the shadow root's "host" element
@@ -434,17 +497,35 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
434
497
  const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;
435
498
  {
436
499
  // remove attributes no longer present on the vnode by setting them to undefined
437
- for (memberName in oldVnodeAttrs) {
500
+ for (memberName of sortedAttrNames(Object.keys(oldVnodeAttrs))) {
438
501
  if (!(memberName in newVnodeAttrs)) {
439
502
  setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$);
440
503
  }
441
504
  }
442
505
  }
443
506
  // add new & update changed attributes
444
- for (memberName in newVnodeAttrs) {
507
+ for (memberName of sortedAttrNames(Object.keys(newVnodeAttrs))) {
445
508
  setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);
446
509
  }
447
510
  };
511
+ /**
512
+ * Sort a list of attribute names to ensure that all the attribute names which
513
+ * are _not_ `"ref"` come before `"ref"`. Preserve the order of the non-ref
514
+ * attributes.
515
+ *
516
+ * **Note**: if the supplied attributes do not include `'ref'` then the same
517
+ * (by reference) array will be returned without modification.
518
+ *
519
+ * @param attrNames attribute names to sort
520
+ * @returns a list of attribute names, sorted if they include `"ref"`
521
+ */
522
+ function sortedAttrNames(attrNames) {
523
+ return attrNames.includes('ref')
524
+ ? // we need to sort these to ensure that `'ref'` is the last attr
525
+ [...attrNames.filter((attr) => attr !== 'ref'), 'ref']
526
+ : // no need to sort, return the original array
527
+ attrNames;
528
+ }
448
529
  /**
449
530
  * Create a DOM Node corresponding to one of the children of a given VNode.
450
531
  *
@@ -1266,6 +1347,11 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1266
1347
  let refNode = (_b = orgLocationNode['s-nr']) !== null && _b !== void 0 ? _b : null;
1267
1348
  if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1268
1349
  refNode = refNode.nextSibling;
1350
+ // If the refNode is the same node to be relocated or another element's slot reference, keep searching to find the
1351
+ // correct relocation target
1352
+ while (refNode === nodeToRelocate || (refNode === null || refNode === void 0 ? void 0 : refNode['s-sr'])) {
1353
+ refNode = refNode === null || refNode === void 0 ? void 0 : refNode.nextSibling;
1354
+ }
1269
1355
  if (!refNode || !refNode['s-nr']) {
1270
1356
  insertBeforeNode = refNode;
1271
1357
  break;
@@ -1576,6 +1662,7 @@ const getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propNam
1576
1662
  const setValue = (ref, propName, newVal, cmpMeta) => {
1577
1663
  // check our new property value against our internal value
1578
1664
  const hostRef = getHostRef(ref);
1665
+ const elm = hostRef.$hostElement$ ;
1579
1666
  const oldVal = hostRef.$instanceValues$.get(propName);
1580
1667
  const flags = hostRef.$flags$;
1581
1668
  const instance = hostRef.$lazyInstance$ ;
@@ -1588,6 +1675,22 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1588
1675
  // set our new value!
1589
1676
  hostRef.$instanceValues$.set(propName, newVal);
1590
1677
  if (instance) {
1678
+ // get an array of method names of watch functions to call
1679
+ if (cmpMeta.$watchers$ && flags & 128 /* HOST_FLAGS.isWatchReady */) {
1680
+ const watchMethods = cmpMeta.$watchers$[propName];
1681
+ if (watchMethods) {
1682
+ // this instance is watching for when this property changed
1683
+ watchMethods.map((watchMethodName) => {
1684
+ try {
1685
+ // fire off each of the watch methods that are watching this property
1686
+ instance[watchMethodName](newVal, oldVal, propName);
1687
+ }
1688
+ catch (e) {
1689
+ consoleError(e, elm);
1690
+ }
1691
+ });
1692
+ }
1693
+ }
1591
1694
  if ((flags & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {
1592
1695
  // looks like this value actually changed, so we've got work to do!
1593
1696
  // but only if we've already rendered, otherwise just chill out
@@ -1612,6 +1715,9 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1612
1715
  var _a;
1613
1716
  const prototype = Cstr.prototype;
1614
1717
  if (cmpMeta.$members$) {
1718
+ if (Cstr.watchers) {
1719
+ cmpMeta.$watchers$ = Cstr.watchers;
1720
+ }
1615
1721
  // It's better to have a const than two Object.entries()
1616
1722
  const members = Object.entries(cmpMeta.$members$);
1617
1723
  members.map(([memberName, [memberFlags]]) => {
@@ -1761,6 +1867,12 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1761
1867
  endLoad();
1762
1868
  }
1763
1869
  if (!Cstr.isProxied) {
1870
+ // we've never proxied this Constructor before
1871
+ // let's add the getters/setters to its prototype before
1872
+ // the first time we create an instance of the implementation
1873
+ {
1874
+ cmpMeta.$watchers$ = Cstr.watchers;
1875
+ }
1764
1876
  proxyComponent(Cstr, cmpMeta, 2 /* PROXY_FLAGS.proxyState */);
1765
1877
  Cstr.isProxied = true;
1766
1878
  }
@@ -1784,6 +1896,9 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1784
1896
  {
1785
1897
  hostRef.$flags$ &= ~8 /* HOST_FLAGS.isConstructingInstance */;
1786
1898
  }
1899
+ {
1900
+ hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */;
1901
+ }
1787
1902
  endNewInstance();
1788
1903
  }
1789
1904
  else {
@@ -1920,6 +2035,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1920
2035
  let hasSlotRelocation = false;
1921
2036
  lazyBundles.map((lazyBundle) => {
1922
2037
  lazyBundle[1].map((compactMeta) => {
2038
+ var _a;
1923
2039
  const cmpMeta = {
1924
2040
  $flags$: compactMeta[0],
1925
2041
  $tagName$: compactMeta[1],
@@ -1937,6 +2053,9 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1937
2053
  {
1938
2054
  cmpMeta.$attrsToReflect$ = [];
1939
2055
  }
2056
+ {
2057
+ cmpMeta.$watchers$ = (_a = compactMeta[4]) !== null && _a !== void 0 ? _a : {};
2058
+ }
1940
2059
  const tagName = cmpMeta.$tagName$;
1941
2060
  const HostElement = class extends HTMLElement {
1942
2061
  // StencilLazyHost
@@ -2174,9 +2293,10 @@ const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
2174
2293
 
2175
2294
  exports.Host = Host;
2176
2295
  exports.bootstrapLazy = bootstrapLazy;
2296
+ exports.createEvent = createEvent;
2177
2297
  exports.h = h;
2178
2298
  exports.promiseResolve = promiseResolve;
2179
2299
  exports.registerInstance = registerInstance;
2180
2300
  exports.setNonce = setNonce;
2181
2301
 
2182
- //# sourceMappingURL=index-12f40d28.js.map
2302
+ //# sourceMappingURL=index-41aaa52a.js.map