@forcecalendar/interface 1.0.42 → 1.0.44
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.
- package/dist/force-calendar-interface.esm.js +57 -77
- package/dist/force-calendar-interface.esm.js.map +1 -1
- package/dist/force-calendar-interface.umd.js +31 -31
- package/dist/force-calendar-interface.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/ForceCalendar.js +8 -31
- package/src/core/EventBus.js +4 -15
package/package.json
CHANGED
|
@@ -19,6 +19,12 @@ import { DayViewRenderer } from '../renderers/DayViewRenderer.js';
|
|
|
19
19
|
import './EventForm.js';
|
|
20
20
|
|
|
21
21
|
export class ForceCalendar extends BaseComponent {
|
|
22
|
+
static RENDERERS = {
|
|
23
|
+
month: MonthViewRenderer,
|
|
24
|
+
week: WeekViewRenderer,
|
|
25
|
+
day: DayViewRenderer
|
|
26
|
+
};
|
|
27
|
+
|
|
22
28
|
static get observedAttributes() {
|
|
23
29
|
return ['view', 'date', 'locale', 'timezone', 'week-starts-on', 'height'];
|
|
24
30
|
}
|
|
@@ -204,13 +210,7 @@ export class ForceCalendar extends BaseComponent {
|
|
|
204
210
|
|
|
205
211
|
// Create new view using renderer classes
|
|
206
212
|
try {
|
|
207
|
-
const
|
|
208
|
-
month: MonthViewRenderer,
|
|
209
|
-
week: WeekViewRenderer,
|
|
210
|
-
day: DayViewRenderer
|
|
211
|
-
};
|
|
212
|
-
|
|
213
|
-
const RendererClass = renderers[this.currentView] || MonthViewRenderer;
|
|
213
|
+
const RendererClass = ForceCalendar.RENDERERS[this.currentView] || MonthViewRenderer;
|
|
214
214
|
const viewRenderer = new RendererClass(container, this.stateManager);
|
|
215
215
|
viewRenderer._viewType = this.currentView;
|
|
216
216
|
this._currentViewInstance = viewRenderer;
|
|
@@ -747,13 +747,7 @@ export class ForceCalendar extends BaseComponent {
|
|
|
747
747
|
|
|
748
748
|
// Create view renderer using the appropriate renderer class
|
|
749
749
|
try {
|
|
750
|
-
const
|
|
751
|
-
month: MonthViewRenderer,
|
|
752
|
-
week: WeekViewRenderer,
|
|
753
|
-
day: DayViewRenderer
|
|
754
|
-
};
|
|
755
|
-
|
|
756
|
-
const RendererClass = renderers[this.currentView] || MonthViewRenderer;
|
|
750
|
+
const RendererClass = ForceCalendar.RENDERERS[this.currentView] || MonthViewRenderer;
|
|
757
751
|
const viewRenderer = new RendererClass(container, this.stateManager);
|
|
758
752
|
viewRenderer._viewType = this.currentView;
|
|
759
753
|
this._currentViewInstance = viewRenderer;
|
|
@@ -812,23 +806,6 @@ export class ForceCalendar extends BaseComponent {
|
|
|
812
806
|
this._hasRendered = true;
|
|
813
807
|
}
|
|
814
808
|
|
|
815
|
-
/**
|
|
816
|
-
* Create a view renderer instance for the given view type
|
|
817
|
-
* Uses pure JavaScript renderer classes for Salesforce Locker Service compatibility
|
|
818
|
-
* @param {string} viewName - 'month', 'week', or 'day'
|
|
819
|
-
* @returns {BaseViewRenderer} Renderer instance
|
|
820
|
-
*/
|
|
821
|
-
_createViewRenderer(viewName) {
|
|
822
|
-
const renderers = {
|
|
823
|
-
month: MonthViewRenderer,
|
|
824
|
-
week: WeekViewRenderer,
|
|
825
|
-
day: DayViewRenderer
|
|
826
|
-
};
|
|
827
|
-
|
|
828
|
-
const RendererClass = renderers[viewName] || MonthViewRenderer;
|
|
829
|
-
return new RendererClass(null, null); // Container and stateManager set after creation
|
|
830
|
-
}
|
|
831
|
-
|
|
832
809
|
handleNavigation(event) {
|
|
833
810
|
const action = event.currentTarget.dataset.action;
|
|
834
811
|
switch (action) {
|
package/src/core/EventBus.js
CHANGED
|
@@ -120,14 +120,11 @@ class EventBus {
|
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
/**
|
|
123
|
-
* Emit an event
|
|
123
|
+
* Emit an event synchronously
|
|
124
124
|
* @param {string} eventName - Event name
|
|
125
125
|
* @param {*} data - Event data
|
|
126
|
-
* @returns {Promise} Resolves when all handlers complete
|
|
127
126
|
*/
|
|
128
|
-
|
|
129
|
-
const promises = [];
|
|
130
|
-
|
|
127
|
+
emit(eventName, data) {
|
|
131
128
|
// Handle direct subscriptions
|
|
132
129
|
if (this.events.has(eventName)) {
|
|
133
130
|
const handlers = [...this.events.get(eventName)];
|
|
@@ -140,10 +137,7 @@ class EventBus {
|
|
|
140
137
|
}
|
|
141
138
|
|
|
142
139
|
try {
|
|
143
|
-
|
|
144
|
-
if (result instanceof Promise) {
|
|
145
|
-
promises.push(result);
|
|
146
|
-
}
|
|
140
|
+
handler(data, eventName);
|
|
147
141
|
} catch (error) {
|
|
148
142
|
console.error(`Error in event handler for ${eventName}:`, error);
|
|
149
143
|
}
|
|
@@ -161,10 +155,7 @@ class EventBus {
|
|
|
161
155
|
}
|
|
162
156
|
|
|
163
157
|
try {
|
|
164
|
-
|
|
165
|
-
if (result instanceof Promise) {
|
|
166
|
-
promises.push(result);
|
|
167
|
-
}
|
|
158
|
+
handler(data, eventName);
|
|
168
159
|
} catch (error) {
|
|
169
160
|
console.error(`Error in wildcard handler for ${eventName}:`, error);
|
|
170
161
|
}
|
|
@@ -172,8 +163,6 @@ class EventBus {
|
|
|
172
163
|
}
|
|
173
164
|
// Remove one-time handlers after iteration
|
|
174
165
|
toRemove.forEach(sub => this.wildcardHandlers.delete(sub));
|
|
175
|
-
|
|
176
|
-
return Promise.all(promises);
|
|
177
166
|
}
|
|
178
167
|
|
|
179
168
|
/**
|