@lynx-js/web-elements 0.3.0 → 0.5.0

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.
@@ -4,118 +4,70 @@ import { __esDecorate, __runInitializers, __setFunctionName } from "tslib";
4
4
  // Licensed under the Apache License Version 2.0 that can be found in the
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { registerAttributeHandler, genDomGetter, } from '@lynx-js/web-elements-reactive';
7
+ import { genDomGetter, } from '@lynx-js/web-elements-reactive';
8
8
  import { XRefreshIntersectionObserverEvent } from './XRefreshSubElementIntersectionObserver.js';
9
9
  import { commonComponentEventSetting } from '../common/commonEventInitConfiguration.js';
10
+ import { registerEventEnableStatusChangeHandler } from '@lynx-js/web-elements-reactive';
10
11
  let XRefreshViewEventsEmitter = (() => {
11
12
  let _instanceExtraInitializers = [];
13
+ let _private_handleComplexEventEnableAttributes_decorators;
14
+ let _private_handleComplexEventEnableAttributes_descriptor;
12
15
  let _private_handleXEnableHeaderOffsetEvent_decorators;
13
16
  let _private_handleXEnableHeaderOffsetEvent_descriptor;
14
- let _private_handleXEnableHeaderShowEvent_decorators;
15
- let _private_handleXEnableHeaderShowEvent_descriptor;
16
- let _private_handleXEnableFooterOffsetEvent_decorators;
17
- let _private_handleXEnableFooterOffsetEvent_descriptor;
18
- let _private_handleXEnableStartRefreshEvent_decorators;
19
- let _private_handleXEnableStartRefreshEvent_descriptor;
20
- let _private_handleXEnableHeaderReleasedEvent_decorators;
21
- let _private_handleXEnableHeaderReleasedEvent_descriptor;
22
- let _private_handleXEnableStartLoadMoreEvent_decorators;
23
- let _private_handleXEnableStartLoadMoreEvent_descriptor;
24
- let _private_handleXEnableFooterReleasedEvent_decorators;
25
- let _private_handleXEnableFooterReleasedEvent_descriptor;
26
17
  return class XRefreshViewEventsEmitter {
27
18
  static {
28
19
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
29
- _private_handleXEnableHeaderOffsetEvent_decorators = [registerAttributeHandler('x-enable-headeroffset-event', true)];
30
- _private_handleXEnableHeaderShowEvent_decorators = [registerAttributeHandler('x-enable-headershow-event', true)];
31
- _private_handleXEnableFooterOffsetEvent_decorators = [registerAttributeHandler('x-enable-footeroffset-event', true)];
32
- _private_handleXEnableStartRefreshEvent_decorators = [registerAttributeHandler('x-enable-startrefresh-event', true)];
33
- _private_handleXEnableHeaderReleasedEvent_decorators = [registerAttributeHandler('x-enable-headerreleased-event', true)];
34
- _private_handleXEnableStartLoadMoreEvent_decorators = [registerAttributeHandler('x-enable-startloadmore-event', true)];
35
- _private_handleXEnableFooterReleasedEvent_decorators = [registerAttributeHandler('x-enable-footerreleased-event', true)];
36
- __esDecorate(this, _private_handleXEnableHeaderOffsetEvent_descriptor = { value: __setFunctionName(function (newVal) {
37
- this.#enableHeaderOffsetEvent = newVal !== null;
38
- this.#handleComplexEventEnableAttributes();
20
+ _private_handleComplexEventEnableAttributes_decorators = [registerEventEnableStatusChangeHandler('headeroffset'), registerEventEnableStatusChangeHandler('headershow'), registerEventEnableStatusChangeHandler('footeroffset')];
21
+ _private_handleXEnableHeaderOffsetEvent_decorators = [registerEventEnableStatusChangeHandler('startrefresh'), registerEventEnableStatusChangeHandler('headerreleased'), registerEventEnableStatusChangeHandler('startloadmore'), registerEventEnableStatusChangeHandler('footerreleased')];
22
+ __esDecorate(this, _private_handleComplexEventEnableAttributes_descriptor = { value: __setFunctionName(function (status, eventName) {
23
+ this
24
+ .#eventSwitches[eventName] = status;
25
+ const { headeroffset, headershow, footeroffset } = this.#eventSwitches;
26
+ if (headeroffset
27
+ || headershow
28
+ || footeroffset) {
29
+ this.#enableComplexRefreshViewEvents();
30
+ }
31
+ else {
32
+ this.#disableComplexRefreshViewEvents();
33
+ }
34
+ }, "#handleComplexEventEnableAttributes") }, _private_handleComplexEventEnableAttributes_decorators, { kind: "method", name: "#handleComplexEventEnableAttributes", static: false, private: true, access: { has: obj => #handleComplexEventEnableAttributes in obj, get: obj => obj.#handleComplexEventEnableAttributes }, metadata: _metadata }, null, _instanceExtraInitializers);
35
+ __esDecorate(this, _private_handleXEnableHeaderOffsetEvent_descriptor = { value: __setFunctionName(function (status, eventName) {
36
+ this
37
+ .#eventSwitches[eventName] = status;
38
+ const { startrefresh, headerreleased, startloadmore, footerreleased } = this.#eventSwitches;
39
+ if (headerreleased
40
+ || footerreleased
41
+ || startloadmore
42
+ || startrefresh) {
43
+ this.#enableSimpleRefreshViewEvents();
44
+ }
45
+ else {
46
+ this.#disableSimpleRefreshViewEvents();
47
+ }
39
48
  }, "#handleXEnableHeaderOffsetEvent") }, _private_handleXEnableHeaderOffsetEvent_decorators, { kind: "method", name: "#handleXEnableHeaderOffsetEvent", static: false, private: true, access: { has: obj => #handleXEnableHeaderOffsetEvent in obj, get: obj => obj.#handleXEnableHeaderOffsetEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
40
- __esDecorate(this, _private_handleXEnableHeaderShowEvent_descriptor = { value: __setFunctionName(function (newVal) {
41
- this.#enableHeaderShowEvent = newVal !== null;
42
- this.#handleComplexEventEnableAttributes();
43
- }, "#handleXEnableHeaderShowEvent") }, _private_handleXEnableHeaderShowEvent_decorators, { kind: "method", name: "#handleXEnableHeaderShowEvent", static: false, private: true, access: { has: obj => #handleXEnableHeaderShowEvent in obj, get: obj => obj.#handleXEnableHeaderShowEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
44
- __esDecorate(this, _private_handleXEnableFooterOffsetEvent_descriptor = { value: __setFunctionName(function (newVal) {
45
- this.#enableFooterOffsetEvent = newVal !== null;
46
- this.#handleComplexEventEnableAttributes();
47
- }, "#handleXEnableFooterOffsetEvent") }, _private_handleXEnableFooterOffsetEvent_decorators, { kind: "method", name: "#handleXEnableFooterOffsetEvent", static: false, private: true, access: { has: obj => #handleXEnableFooterOffsetEvent in obj, get: obj => obj.#handleXEnableFooterOffsetEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
48
- __esDecorate(this, _private_handleXEnableStartRefreshEvent_descriptor = { value: __setFunctionName(function (newVal) {
49
- this.#enableStartRefreshEvent = newVal !== null;
50
- this.#handleSimpleEventEnableAttributes();
51
- }, "#handleXEnableStartRefreshEvent") }, _private_handleXEnableStartRefreshEvent_decorators, { kind: "method", name: "#handleXEnableStartRefreshEvent", static: false, private: true, access: { has: obj => #handleXEnableStartRefreshEvent in obj, get: obj => obj.#handleXEnableStartRefreshEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
52
- __esDecorate(this, _private_handleXEnableHeaderReleasedEvent_descriptor = { value: __setFunctionName(function (newVal) {
53
- this.#enableHeaderReleasedEvent = newVal !== null;
54
- this.#handleSimpleEventEnableAttributes();
55
- }, "#handleXEnableHeaderReleasedEvent") }, _private_handleXEnableHeaderReleasedEvent_decorators, { kind: "method", name: "#handleXEnableHeaderReleasedEvent", static: false, private: true, access: { has: obj => #handleXEnableHeaderReleasedEvent in obj, get: obj => obj.#handleXEnableHeaderReleasedEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
56
- __esDecorate(this, _private_handleXEnableStartLoadMoreEvent_descriptor = { value: __setFunctionName(function (newVal) {
57
- this.#enableStartLoadMoreEvent = newVal !== null;
58
- this.#handleSimpleEventEnableAttributes();
59
- }, "#handleXEnableStartLoadMoreEvent") }, _private_handleXEnableStartLoadMoreEvent_decorators, { kind: "method", name: "#handleXEnableStartLoadMoreEvent", static: false, private: true, access: { has: obj => #handleXEnableStartLoadMoreEvent in obj, get: obj => obj.#handleXEnableStartLoadMoreEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
60
- __esDecorate(this, _private_handleXEnableFooterReleasedEvent_descriptor = { value: __setFunctionName(function (newVal) {
61
- this.#enableFooterReleasedEvent = newVal !== null;
62
- this.#handleSimpleEventEnableAttributes();
63
- }, "#handleXEnableFooterReleasedEvent") }, _private_handleXEnableFooterReleasedEvent_decorators, { kind: "method", name: "#handleXEnableFooterReleasedEvent", static: false, private: true, access: { has: obj => #handleXEnableFooterReleasedEvent in obj, get: obj => obj.#handleXEnableFooterReleasedEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
64
49
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
65
50
  }
66
51
  #dom = __runInitializers(this, _instanceExtraInitializers);
67
- #enableStartRefreshEvent = false;
68
- #enableHeaderReleasedEvent = false;
69
- #enableHeaderOffsetEvent = false;
70
- #enableHeaderShowEvent = false;
71
- #enableStartLoadMoreEvent = false;
72
- #enableFooterReleasedEvent = false;
73
- #enableFooterOffsetEvent = false;
74
- static observedAttributes = [
75
- 'x-enable-startrefresh-event',
76
- 'x-enable-headerreleased-event',
77
- 'x-enable-headeroffset-event',
78
- 'x-enable-headershow-event',
79
- 'x-enable-startloadmore-event',
80
- 'x-enable-footerreleased-event',
81
- 'x-enable-footeroffset-event',
82
- ];
52
+ static observedAttributes = [];
83
53
  #getXRefreshHeader = genDomGetter(() => this.#dom, 'x-refresh-view > x-refresh-header:first-of-type');
84
54
  #getXRefreshFooter = genDomGetter(() => this.#dom, 'x-refresh-view > x-refresh-footer:first-of-type');
85
55
  constructor(dom) {
86
56
  this.#dom = dom;
87
57
  this.#dom.addEventListener(XRefreshIntersectionObserverEvent.EventName, this.#handleSubElementObserverEvent);
88
58
  }
59
+ #eventSwitches = {
60
+ headeroffset: false,
61
+ headerreleased: false,
62
+ startrefresh: false,
63
+ footeroffset: false,
64
+ headershow: false,
65
+ footerreleased: false,
66
+ startloadmore: false,
67
+ };
89
68
  // complex events switches
69
+ get #handleComplexEventEnableAttributes() { return _private_handleComplexEventEnableAttributes_descriptor.value; }
90
70
  get #handleXEnableHeaderOffsetEvent() { return _private_handleXEnableHeaderOffsetEvent_descriptor.value; }
91
- get #handleXEnableHeaderShowEvent() { return _private_handleXEnableHeaderShowEvent_descriptor.value; }
92
- get #handleXEnableFooterOffsetEvent() { return _private_handleXEnableFooterOffsetEvent_descriptor.value; }
93
- #handleComplexEventEnableAttributes() {
94
- if (this.#enableHeaderOffsetEvent
95
- || this.#enableHeaderShowEvent
96
- || this.#enableFooterOffsetEvent) {
97
- this.#enableComplexRefreshViewEvents();
98
- }
99
- else {
100
- this.#disableComplexRefreshViewEvents();
101
- }
102
- }
103
- // simple events switches
104
- get #handleXEnableStartRefreshEvent() { return _private_handleXEnableStartRefreshEvent_descriptor.value; }
105
- get #handleXEnableHeaderReleasedEvent() { return _private_handleXEnableHeaderReleasedEvent_descriptor.value; }
106
- get #handleXEnableStartLoadMoreEvent() { return _private_handleXEnableStartLoadMoreEvent_descriptor.value; }
107
- get #handleXEnableFooterReleasedEvent() { return _private_handleXEnableFooterReleasedEvent_descriptor.value; }
108
- #handleSimpleEventEnableAttributes() {
109
- if (this.#enableHeaderReleasedEvent
110
- || this.#enableFooterReleasedEvent
111
- || this.#enableStartLoadMoreEvent
112
- || this.#enableStartRefreshEvent) {
113
- this.#enableSimpleRefreshViewEvents();
114
- }
115
- else {
116
- this.#disableSimpleRefreshViewEvents();
117
- }
118
- }
119
71
  /**
120
72
  * handle header/footer showing events
121
73
  */
@@ -188,7 +140,7 @@ let XRefreshViewEventsEmitter = (() => {
188
140
  };
189
141
  #handleScroll = () => {
190
142
  if (this.#headerShowing
191
- && (this.#enableHeaderShowEvent || this.#enableHeaderOffsetEvent)) {
143
+ && (this.#eventSwitches.headershow || this.#eventSwitches.headeroffset)) {
192
144
  const header = this.#getXRefreshHeader();
193
145
  if (header) {
194
146
  const height = parseFloat(getComputedStyle(header).height);
@@ -209,7 +161,7 @@ let XRefreshViewEventsEmitter = (() => {
209
161
  }));
210
162
  }
211
163
  }
212
- else if (this.#footerShowing && this.#enableFooterOffsetEvent) {
164
+ else if (this.#footerShowing && this.#eventSwitches.footeroffset) {
213
165
  const footer = this.#getXRefreshFooter();
214
166
  if (footer) {
215
167
  const contentDom = this.#dom.shadowRoot.querySelector('#container');
package/dist/XSvg/XSvg.js CHANGED
@@ -40,8 +40,6 @@ let XSvgFeatures = (() => {
40
40
  return `url("${src}")`;
41
41
  })));
42
42
  #fireLoadEvent = (__runInitializers(this, _private_handleContent_extraInitializers), () => {
43
- if (this.#dom.getAttribute('x-enable-load-event') === null)
44
- return;
45
43
  const { width, height } = this.#loadEventInvoker;
46
44
  this.#dom.dispatchEvent(new CustomEvent('load', {
47
45
  ...commonComponentEventSetting,
@@ -17,9 +17,8 @@ let XSwiperCircular = (() => {
17
17
  _private_handleCircular_decorators = [registerAttributeHandler('circular', false)];
18
18
  _private_handleVerticalChange_decorators = [registerAttributeHandler('vertical', true)];
19
19
  __esDecorate(this, _private_handleCircular_descriptor = { value: __setFunctionName(function (newVal) {
20
- this.#listeners.forEach((l) => l(newVal));
20
+ this.#listeners.forEach((l) => l(newVal != null));
21
21
  if (newVal !== null) {
22
- this.#dom.setAttribute('x-enable-change-event-for-indicator', '');
23
22
  this.#changeEventHandler({
24
23
  detail: {
25
24
  current: this.#dom.current,
@@ -2,7 +2,7 @@ import { type AttributeReactiveClass } from '@lynx-js/web-elements-reactive';
2
2
  import type { XSwiper } from './XSwiper.js';
3
3
  export declare class XSwipeEvents implements InstanceType<AttributeReactiveClass<typeof XSwiper>> {
4
4
  #private;
5
- static observedAttributes: string[];
5
+ static observedAttributes: never[];
6
6
  constructor(dom: XSwiper);
7
7
  connectedCallback(): void;
8
8
  }
@@ -4,9 +4,10 @@ import { __esDecorate, __runInitializers, __setFunctionName } from "tslib";
4
4
  // Licensed under the Apache License Version 2.0 that can be found in the
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { bindSwitchToEventListener, genDomGetter, registerAttributeHandler, } from '@lynx-js/web-elements-reactive';
7
+ import { bindSwitchToEventListener, genDomGetter, } from '@lynx-js/web-elements-reactive';
8
8
  import { commonComponentEventSetting } from '../common/commonEventInitConfiguration.js';
9
9
  import { useScrollEnd } from '../common/constants.js';
10
+ import { registerEventEnableStatusChangeHandler } from '@lynx-js/web-elements-reactive';
10
11
  let XSwipeEvents = (() => {
11
12
  let _instanceExtraInitializers = [];
12
13
  let _private_handleEnableTransitionEvent_decorators;
@@ -17,29 +18,20 @@ let XSwipeEvents = (() => {
17
18
  return class XSwipeEvents {
18
19
  static {
19
20
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
20
- _private_handleEnableTransitionEvent_decorators = [registerAttributeHandler('x-enable-transition-event', true)];
21
- _private_enableScrollEventProcessor_decorators = [registerAttributeHandler('x-enable-scrollstart-event', false), registerAttributeHandler('x-enable-scrollend-event', false), registerAttributeHandler('x-enable-change-event', false), registerAttributeHandler('x-enable-change-event-for-indicator', false)];
22
- __esDecorate(this, _private_enableScrollEventProcessor_descriptor = { value: __setFunctionName(function () {
23
- const enableScrollstartEvent = this.#dom.getAttribute('x-enable-scrollstart-event') !== null;
24
- const enableScrollendEvent = this.#dom.getAttribute('x-enable-scrollend-event') !== null;
25
- const enableChangeEvent = this.#dom.getAttribute('x-enable-change-event') !== null;
26
- const enableChangeforindicatorEvent = this.#dom.getAttribute('x-enable-change-event-for-indicator') !== null;
27
- const enableEvent = enableChangeEvent
28
- || enableScrollendEvent
29
- || enableScrollstartEvent
30
- || enableChangeforindicatorEvent;
31
- this.#listeners.forEach((l) => l(enableEvent ? '' : null));
21
+ _private_handleEnableTransitionEvent_decorators = [registerEventEnableStatusChangeHandler('transition')];
22
+ _private_enableScrollEventProcessor_decorators = [registerEventEnableStatusChangeHandler('scrollstart'), registerEventEnableStatusChangeHandler('lynxscrollend'), registerEventEnableStatusChangeHandler('change'), registerEventEnableStatusChangeHandler('change-event-for-indicator')];
23
+ __esDecorate(this, _private_enableScrollEventProcessor_descriptor = { value: __setFunctionName(function (value, eventName) {
24
+ this
25
+ .#eventSwitches[eventName] = value;
26
+ const { lynxscrollend, scrollstart, change } = this.#eventSwitches;
27
+ const changeEventEnabled = change || lynxscrollend || scrollstart
28
+ || this.#eventSwitches['change-event-for-indicator'];
29
+ this.#listeners.forEach((l) => l(changeEventEnabled));
32
30
  }, "#enableScrollEventProcessor") }, _private_enableScrollEventProcessor_decorators, { kind: "method", name: "#enableScrollEventProcessor", static: false, private: true, access: { has: obj => #enableScrollEventProcessor in obj, get: obj => obj.#enableScrollEventProcessor }, metadata: _metadata }, null, _instanceExtraInitializers);
33
31
  __esDecorate(null, null, _private_handleEnableTransitionEvent_decorators, { kind: "field", name: "#handleEnableTransitionEvent", static: false, private: true, access: { has: obj => #handleEnableTransitionEvent in obj, get: obj => obj.#handleEnableTransitionEvent, set: (obj, value) => { obj.#handleEnableTransitionEvent = value; } }, metadata: _metadata }, _private_handleEnableTransitionEvent_initializers, _private_handleEnableTransitionEvent_extraInitializers);
34
32
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
35
33
  }
36
- static observedAttributes = [
37
- 'x-enable-scrollstart-event',
38
- 'x-enable-scrollend-event',
39
- 'x-enable-change-event',
40
- 'x-enable-change-event-for-indicator',
41
- 'x-enable-transition-event',
42
- ];
34
+ static observedAttributes = [];
43
35
  #dom = __runInitializers(this, _instanceExtraInitializers);
44
36
  #current = 0;
45
37
  #pervScrollPosition = 0;
@@ -130,6 +122,12 @@ let XSwipeEvents = (() => {
130
122
  bindSwitchToEventListener(this.#getContentContainer, 'touchcancel', this.#handleTouchEndAndCancel.bind(this), { passive: true }),
131
123
  bindSwitchToEventListener(this.#getContentContainer, 'scrollend', this.#handleScrollEnd.bind(this), { passive: true }),
132
124
  ]);
125
+ #eventSwitches = {
126
+ scrollstart: false,
127
+ lynxscrollend: false,
128
+ change: false,
129
+ 'change-event-for-indicator': false,
130
+ };
133
131
  get #enableScrollEventProcessor() { return _private_enableScrollEventProcessor_descriptor.value; }
134
132
  connectedCallback() {
135
133
  this.#current = parseFloat(this.#dom.getAttribute('current') ?? '0');
@@ -86,7 +86,6 @@ let XSwiperIndicator = (() => {
86
86
  subtree: false,
87
87
  });
88
88
  if (!CSS.supports('timeline-scope', '--a, --b')) {
89
- this.#dom.setAttribute('x-enable-change-event-for-indicator', '');
90
89
  this.#dom.addEventListener('change', (({ detail }) => {
91
90
  const currentPage = detail.current;
92
91
  const numberOfChildren = this.#dom.childElementCount;
@@ -6,6 +6,7 @@ import { __esDecorate, __runInitializers, __setFunctionName } from "tslib";
6
6
  */
7
7
  import { boostedQueueMicrotask, genDomGetter, registerAttributeHandler, } from '@lynx-js/web-elements-reactive';
8
8
  import { commonComponentEventSetting } from '../common/commonEventInitConfiguration.js';
9
+ import { registerEventEnableStatusChangeHandler } from '@lynx-js/web-elements-reactive';
9
10
  let XTextTruncation = (() => {
10
11
  var _a;
11
12
  let _instanceExtraInitializers = [];
@@ -17,7 +18,7 @@ let XTextTruncation = (() => {
17
18
  static {
18
19
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
19
20
  _private_handleAttributeChange_decorators = [registerAttributeHandler('text-maxlength', true), registerAttributeHandler('text-maxline', true), registerAttributeHandler('tail-color-convert', true)];
20
- _private_handleEnableLayoutEvent_decorators = [registerAttributeHandler('x-enable-layout-event', true)];
21
+ _private_handleEnableLayoutEvent_decorators = [registerEventEnableStatusChangeHandler('layout')];
21
22
  __esDecorate(this, _private_handleAttributeChange_descriptor = { value: __setFunctionName(function () {
22
23
  this.#maxLength = parseFloat(this.#dom.getAttribute('text-maxlength') ?? '');
23
24
  this.#maxLine = parseFloat(this.#dom.getAttribute('text-maxline') ?? '');
@@ -35,8 +36,8 @@ let XTextTruncation = (() => {
35
36
  }
36
37
  this.#layoutText();
37
38
  }, "#handleAttributeChange") }, _private_handleAttributeChange_decorators, { kind: "method", name: "#handleAttributeChange", static: false, private: true, access: { has: obj => #handleAttributeChange in obj, get: obj => obj.#handleAttributeChange }, metadata: _metadata }, null, _instanceExtraInitializers);
38
- __esDecorate(this, _private_handleEnableLayoutEvent_descriptor = { value: __setFunctionName(function (newVal) {
39
- this.#enableLayoutEvent = newVal !== null;
39
+ __esDecorate(this, _private_handleEnableLayoutEvent_descriptor = { value: __setFunctionName(function (status) {
40
+ this.#enableLayoutEvent = status;
40
41
  }, "#handleEnableLayoutEvent") }, _private_handleEnableLayoutEvent_decorators, { kind: "method", name: "#handleEnableLayoutEvent", static: false, private: true, access: { has: obj => #handleEnableLayoutEvent in obj, get: obj => obj.#handleEnableLayoutEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
41
42
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
42
43
  }
@@ -46,7 +47,6 @@ let XTextTruncation = (() => {
46
47
  'text-maxlength',
47
48
  'text-maxline',
48
49
  'tail-color-convert',
49
- 'x-enable-layout-event',
50
50
  ];
51
51
  #scheduledTextLayout = (__runInitializers(this, _instanceExtraInitializers), false);
52
52
  #componentConnected = false;
@@ -337,7 +337,7 @@ let XTextTruncation = (() => {
337
337
  }
338
338
  connectedCallback() {
339
339
  this.#componentConnected = true;
340
- this.#handleEnableLayoutEvent(this.#dom.getAttribute('x-enable-layout-event'));
340
+ this.#handleEnableLayoutEvent(this.#enableLayoutEvent);
341
341
  document.fonts.ready.then(() => {
342
342
  this.#handleAttributeChange();
343
343
  });
@@ -7,6 +7,7 @@ import { __esDecorate, __runInitializers, __setFunctionName } from "tslib";
7
7
  import { genDomGetter, registerAttributeHandler, } from '@lynx-js/web-elements-reactive';
8
8
  import { commonComponentEventSetting } from '../common/commonEventInitConfiguration.js';
9
9
  import { renameEvent } from '../common/renameEvent.js';
10
+ import { registerEventEnableStatusChangeHandler } from '@lynx-js/web-elements-reactive';
10
11
  let XTextareaEvents = (() => {
11
12
  let _instanceExtraInitializers = [];
12
13
  let _private_handleEnableConfirmEvent_decorators;
@@ -16,11 +17,11 @@ let XTextareaEvents = (() => {
16
17
  return class XTextareaEvents {
17
18
  static {
18
19
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
19
- _private_handleEnableConfirmEvent_decorators = [registerAttributeHandler('x-enable-input-event', true)];
20
+ _private_handleEnableConfirmEvent_decorators = [registerEventEnableStatusChangeHandler('input')];
20
21
  _private_handleSendComposingInput_decorators = [registerAttributeHandler('send-composing-input', true)];
21
- __esDecorate(this, _private_handleEnableConfirmEvent_descriptor = { value: __setFunctionName(function (newValue) {
22
+ __esDecorate(this, _private_handleEnableConfirmEvent_descriptor = { value: __setFunctionName(function (status) {
22
23
  const textareaElement = this.#getTextareaElement();
23
- if (newValue !== null) {
24
+ if (status) {
24
25
  textareaElement.addEventListener('input', this.#teleportInput, { passive: true });
25
26
  textareaElement.addEventListener('compositionend', this.#teleportCompositionendInput, { passive: true });
26
27
  }
@@ -34,7 +35,7 @@ let XTextareaEvents = (() => {
34
35
  }, "#handleSendComposingInput") }, _private_handleSendComposingInput_decorators, { kind: "method", name: "#handleSendComposingInput", static: false, private: true, access: { has: obj => #handleSendComposingInput in obj, get: obj => obj.#handleSendComposingInput }, metadata: _metadata }, null, _instanceExtraInitializers);
35
36
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
36
37
  }
37
- static observedAttributes = ['x-enable-input-event', 'send-composing-input'];
38
+ static observedAttributes = ['send-composing-input'];
38
39
  #dom = __runInitializers(this, _instanceExtraInitializers);
39
40
  #sendComposingInput = false;
40
41
  #getTextareaElement = genDomGetter(() => this.#dom.shadowRoot, '#textarea');
@@ -2,7 +2,7 @@ import { type AttributeReactiveClass } from '@lynx-js/web-elements-reactive';
2
2
  import type { XViewpagerNg } from './XViewpagerNg.js';
3
3
  export declare class XViewpagerNgEvents implements InstanceType<AttributeReactiveClass<typeof XViewpagerNg>> {
4
4
  #private;
5
- static observedAttributes: string[];
5
+ static observedAttributes: never[];
6
6
  constructor(dom: XViewpagerNg);
7
7
  connectedCallback(): void;
8
8
  dispose(): void;
@@ -4,50 +4,36 @@ import { __esDecorate, __runInitializers, __setFunctionName } from "tslib";
4
4
  // Licensed under the Apache License Version 2.0 that can be found in the
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { genDomGetter, registerAttributeHandler, } from '@lynx-js/web-elements-reactive';
7
+ import { genDomGetter, } from '@lynx-js/web-elements-reactive';
8
8
  import { commonComponentEventSetting } from '../common/commonEventInitConfiguration.js';
9
9
  import { useScrollEnd } from '../common/constants.js';
10
+ import { registerEventEnableStatusChangeHandler } from '@lynx-js/web-elements-reactive';
10
11
  let XViewpagerNgEvents = (() => {
11
12
  let _instanceExtraInitializers = [];
12
- let _private_enableScrollEventListener_decorators;
13
- let _private_enableScrollEventListener_descriptor;
13
+ let _private_enableChangeEvent_decorators;
14
+ let _private_enableChangeEvent_descriptor;
15
+ let _private_enableOffsetChangeEvent_decorators;
16
+ let _private_enableOffsetChangeEvent_descriptor;
14
17
  return class XViewpagerNgEvents {
15
18
  static {
16
19
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
17
- _private_enableScrollEventListener_decorators = [registerAttributeHandler('x-enable-change-event', true), registerAttributeHandler('x-enable-offsetchange-event', true)];
18
- __esDecorate(this, _private_enableScrollEventListener_descriptor = { value: __setFunctionName(function () {
19
- this.#enableChange =
20
- this.#dom.getAttribute('x-enable-change-event') !== null;
21
- const enableOffsetChange = this.#dom.getAttribute('x-enable-offsetchange-event') !== null;
22
- const scrollContainer = this.#getScrollContainer();
23
- if (enableOffsetChange !== null || this.#enableChange) {
24
- scrollContainer.addEventListener('scroll', this.#scrollHandler, {
25
- passive: true,
26
- });
27
- }
28
- else {
29
- scrollContainer.removeEventListener('scroll', this.#scrollHandler);
30
- }
31
- if (useScrollEnd && this.#enableChange) {
32
- scrollContainer.addEventListener('scrollend', this.#scrollEndHandler, {
33
- passive: true,
34
- });
35
- }
36
- else {
37
- scrollContainer.removeEventListener('scrollend', this.#scrollEndHandler);
38
- }
39
- }, "#enableScrollEventListener") }, _private_enableScrollEventListener_decorators, { kind: "method", name: "#enableScrollEventListener", static: false, private: true, access: { has: obj => #enableScrollEventListener in obj, get: obj => obj.#enableScrollEventListener }, metadata: _metadata }, null, _instanceExtraInitializers);
20
+ _private_enableChangeEvent_decorators = [registerEventEnableStatusChangeHandler('change')];
21
+ _private_enableOffsetChangeEvent_decorators = [registerEventEnableStatusChangeHandler('offsetchange')];
22
+ __esDecorate(this, _private_enableChangeEvent_descriptor = { value: __setFunctionName(function (status) {
23
+ this.#enableChange = status;
24
+ this.#enableScrollEventListener();
25
+ }, "#enableChangeEvent") }, _private_enableChangeEvent_decorators, { kind: "method", name: "#enableChangeEvent", static: false, private: true, access: { has: obj => #enableChangeEvent in obj, get: obj => obj.#enableChangeEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
26
+ __esDecorate(this, _private_enableOffsetChangeEvent_descriptor = { value: __setFunctionName(function (status) {
27
+ this.#enableChange = status;
28
+ this.#enableScrollEventListener();
29
+ }, "#enableOffsetChangeEvent") }, _private_enableOffsetChangeEvent_decorators, { kind: "method", name: "#enableOffsetChangeEvent", static: false, private: true, access: { has: obj => #enableOffsetChangeEvent in obj, get: obj => obj.#enableOffsetChangeEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
40
30
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
41
31
  }
42
- static observedAttributes = [
43
- 'x-enable-change-event',
44
- 'x-enable-offsetchange-event',
45
- ];
32
+ static observedAttributes = [];
46
33
  #dom = __runInitializers(this, _instanceExtraInitializers);
47
34
  #isDragging = false;
48
35
  #connected = false;
49
36
  #currentIndex = 0;
50
- #enableChange = false;
51
37
  #debounceScrollForMockingScrollEnd;
52
38
  constructor(dom) {
53
39
  this.#dom = dom;
@@ -93,7 +79,29 @@ let XViewpagerNgEvents = (() => {
93
79
  #touchEndHandler = () => {
94
80
  this.#isDragging = false;
95
81
  };
96
- get #enableScrollEventListener() { return _private_enableScrollEventListener_descriptor.value; }
82
+ #enableChange = false;
83
+ get #enableChangeEvent() { return _private_enableChangeEvent_descriptor.value; }
84
+ #enableOffsetChange = false;
85
+ get #enableOffsetChangeEvent() { return _private_enableOffsetChangeEvent_descriptor.value; }
86
+ #enableScrollEventListener() {
87
+ const scrollContainer = this.#getScrollContainer();
88
+ if (this.#enableOffsetChange || this.#enableChange) {
89
+ scrollContainer.addEventListener('scroll', this.#scrollHandler, {
90
+ passive: true,
91
+ });
92
+ }
93
+ else {
94
+ scrollContainer.removeEventListener('scroll', this.#scrollHandler);
95
+ }
96
+ if (useScrollEnd && this.#enableChange) {
97
+ scrollContainer.addEventListener('scrollend', this.#scrollEndHandler, {
98
+ passive: true,
99
+ });
100
+ }
101
+ else {
102
+ scrollContainer.removeEventListener('scrollend', this.#scrollEndHandler);
103
+ }
104
+ }
97
105
  connectedCallback() {
98
106
  this.#connected = true;
99
107
  const scrollContainer = this.#getScrollContainer();
@@ -24,5 +24,9 @@ export declare class LynxExposure {
24
24
  onExposureParamsChanged: () => void;
25
25
  onExposureIdChanged(_: string | null, oldValue: string | null): void;
26
26
  attributeChangedHandler: this;
27
+ eventStatusChangedHandler: {
28
+ uiappear: (status: boolean) => void;
29
+ uidisappear: (status: boolean) => void;
30
+ };
27
31
  disableExposure(): void;
28
32
  }
@@ -6,8 +6,6 @@ import { commonComponentEventSetting } from './commonEventInitConfiguration.js';
6
6
  import { scrollContainerDom } from './constants.js';
7
7
  export class LynxExposure {
8
8
  static observedAttributes = [
9
- 'x-enable-uiappear-event',
10
- 'x-enable-uidisappear-event',
11
9
  'exposure-id',
12
10
  'exposure-area',
13
11
  'exposure-screen-margin-top',
@@ -19,6 +17,8 @@ export class LynxExposure {
19
17
  'exposure-ui-margin-bottom',
20
18
  'exposure-ui-margin-left',
21
19
  ];
20
+ #uiAppearEnabled = false;
21
+ #uiDisappearEnabled = false;
22
22
  #currentElement;
23
23
  /**
24
24
  * Stores a promise. We will handler the exposure attribute change after all related life-cycle events has been fired by browser.
@@ -33,9 +33,8 @@ export class LynxExposure {
33
33
  */
34
34
  #exposureObserver;
35
35
  get #exposureEnabled() {
36
- return (this.#currentElement.getAttribute('x-enable-uiappear-event') !== null
37
- || this.#currentElement.getAttribute('x-enable-uidisappear-event')
38
- !== null
36
+ return (this.#uiAppearEnabled
37
+ || this.#uiDisappearEnabled
39
38
  || this.#currentElement.getAttribute('exposure-id') !== null);
40
39
  }
41
40
  constructor(currentElement) {
@@ -73,6 +72,16 @@ export class LynxExposure {
73
72
  return;
74
73
  },
75
74
  });
75
+ eventStatusChangedHandler = {
76
+ 'uiappear': (status) => {
77
+ this.#uiAppearEnabled = status;
78
+ this.onExposureParamsChanged();
79
+ },
80
+ 'uidisappear': (status) => {
81
+ this.#uiDisappearEnabled = status;
82
+ this.onExposureParamsChanged();
83
+ },
84
+ };
76
85
  #updateExposure() {
77
86
  const newParams = {
78
87
  exposureID: this.#currentElement.getAttribute('exposure-id'),
@@ -1 +1 @@
1
- export declare function bindToIntersectionObserver(rootGetter: () => HTMLElement, targetGetter: () => HTMLElement, callback: IntersectionObserverCallback): (newVal: string | null) => void;
1
+ export declare function bindToIntersectionObserver(rootGetter: () => HTMLElement, targetGetter: () => HTMLElement, callback: IntersectionObserverCallback): (newVal: string | boolean | null) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lynx-js/web-elements",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -22,10 +22,6 @@
22
22
  "types": "./dist/all.d.ts",
23
23
  "default": "./dist/all.js"
24
24
  },
25
- "./lazy": {
26
- "types": "./dist/lazy.d.ts",
27
- "default": "./dist/lazy.js"
28
- },
29
25
  "./LynxWrapper": {
30
26
  "types": "./dist/LynxWrapper/index.d.ts",
31
27
  "default": "./dist/LynxWrapper/index.js"
@@ -104,7 +100,7 @@
104
100
  "**/*.css"
105
101
  ],
106
102
  "dependencies": {
107
- "@lynx-js/web-elements-reactive": "0.1.1"
103
+ "@lynx-js/web-elements-reactive": "0.2.0"
108
104
  },
109
105
  "devDependencies": {
110
106
  "tslib": "^2.8.1"