@o3r/components 10.3.0-prerelease.7 → 10.3.0-prerelease.71
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/builders/component-extractor/helpers/component/component-class.extractor.d.ts +1 -1
- package/builders/component-extractor/helpers/component/component-class.extractor.d.ts.map +1 -1
- package/builders/component-extractor/helpers/component/component-class.extractor.js +1 -1
- package/devkit/components-devkit.interface.d.ts +9 -1
- package/devkit/components-devkit.interface.d.ts.map +1 -1
- package/devkit/components-devtools.message.service.d.ts +5 -2
- package/devkit/components-devtools.message.service.d.ts.map +1 -1
- package/devkit/components-devtools.module.d.ts +2 -1
- package/devkit/components-devtools.module.d.ts.map +1 -1
- package/devkit/inspector/otter-inspector.helpers.d.ts.map +1 -1
- package/devkit/inspector/otter-inspector.service.d.ts.map +1 -1
- package/esm2022/devkit/components-devkit.interface.mjs +2 -1
- package/esm2022/devkit/components-devtools.message.service.mjs +14 -6
- package/esm2022/devkit/components-devtools.module.mjs +11 -7
- package/esm2022/devkit/inspector/otter-inspector.helpers.mjs +3 -2
- package/esm2022/devkit/inspector/otter-inspector.service.mjs +2 -3
- package/esm2022/rules-engine/placeholder.action-handler.mjs +18 -14
- package/esm2022/rules-engine/placeholder.rules-engine.effect.mjs +3 -3
- package/esm2022/rules-engine/placeholder.rules-engine.module.mjs +4 -4
- package/esm2022/stores/placeholder-request/placeholder-request.module.mjs +4 -4
- package/esm2022/stores/placeholder-template/placeholder-template.actions.mjs +3 -1
- package/esm2022/stores/placeholder-template/placeholder-template.module.mjs +4 -4
- package/esm2022/stores/placeholder-template/placeholder-template.reducer.mjs +10 -2
- package/esm2022/stores/placeholder-template/placeholder-template.selectors.mjs +2 -1
- package/esm2022/stores/placeholder-template/placeholder-template.state.mjs +1 -1
- package/esm2022/tools/component-replacement/c11n.directive.mjs +3 -3
- package/esm2022/tools/component-replacement/c11n.mock.module.mjs +10 -10
- package/esm2022/tools/component-replacement/c11n.module.mjs +4 -4
- package/esm2022/tools/component-replacement/c11n.service.mjs +3 -3
- package/esm2022/tools/pipes/capitalize/capitalize.module.mjs +4 -4
- package/esm2022/tools/pipes/capitalize/capitalize.pipe.mjs +6 -6
- package/esm2022/tools/pipes/duration/duration.module.mjs +4 -4
- package/esm2022/tools/pipes/duration/duration.pipe.mjs +6 -6
- package/esm2022/tools/pipes/keep-white-space/keep-white-space.module.mjs +4 -4
- package/esm2022/tools/pipes/keep-white-space/keep-white-space.pipe.mjs +6 -6
- package/esm2022/tools/pipes/replace-with-bold/replace-with-bold.module.mjs +4 -4
- package/esm2022/tools/pipes/replace-with-bold/replace-with-bold.pipe.mjs +6 -6
- package/esm2022/tools/placeholder/placeholder.component.mjs +11 -13
- package/esm2022/tools/placeholder/placeholder.module.mjs +5 -5
- package/fesm2022/o3r-components-rules-engine.mjs +23 -19
- package/fesm2022/o3r-components-rules-engine.mjs.map +1 -1
- package/fesm2022/o3r-components.mjs +448 -430
- package/fesm2022/o3r-components.mjs.map +1 -1
- package/package.json +14 -14
- package/rules-engine/placeholder.action-handler.d.ts +7 -6
- package/rules-engine/placeholder.action-handler.d.ts.map +1 -1
- package/schemas/placeholder-template.schema.json +1 -1
- package/stores/placeholder-template/placeholder-template.actions.d.ts +6 -1
- package/stores/placeholder-template/placeholder-template.actions.d.ts.map +1 -1
- package/stores/placeholder-template/placeholder-template.reducer.d.ts.map +1 -1
- package/stores/placeholder-template/placeholder-template.selectors.d.ts +1 -0
- package/stores/placeholder-template/placeholder-template.selectors.d.ts.map +1 -1
- package/stores/placeholder-template/placeholder-template.state.d.ts +3 -0
- package/stores/placeholder-template/placeholder-template.state.d.ts.map +1 -1
- package/tools/placeholder/placeholder.component.d.ts +5 -3
- package/tools/placeholder/placeholder.component.d.ts.map +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { of, from, observeOn, animationFrameScheduler, BehaviorSubject, Subscription, firstValueFrom, fromEvent, Subject, ReplaySubject, sample } from 'rxjs';
|
|
2
2
|
import { mergeMap, bufferCount, concatMap, delay, scan, tap, filter, distinctUntilChanged, map, mapTo, switchMap } from 'rxjs/operators';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken, Injectable, Optional, Inject,
|
|
5
|
-
import {
|
|
6
|
-
import * as i1 from '@o3r/logger';
|
|
7
|
-
import * as i1
|
|
8
|
-
import {
|
|
4
|
+
import { InjectionToken, NgModule, Injectable, Optional, Inject, SimpleChange, forwardRef, Directive, Input, Pipe, Component, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
|
|
5
|
+
import { asyncProps, createEntityAsyncRequestAdapter, asyncStoreItemAdapter, asyncEntitySerializer, otterComponentInfoPropertyName, sendOtterMessage, filterMessageContent } from '@o3r/core';
|
|
6
|
+
import * as i1$1 from '@o3r/logger';
|
|
7
|
+
import * as i1 from '@ngrx/store';
|
|
8
|
+
import { createAction, props, on, createReducer, StoreModule, createFeatureSelector, createSelector } from '@ngrx/store';
|
|
9
9
|
import { createEntityAdapter } from '@ngrx/entity';
|
|
10
10
|
import { NgControl, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
|
|
11
11
|
import * as i2 from '@angular/common';
|
|
@@ -50,9 +50,322 @@ const isComponentsMessage = (message) => {
|
|
|
50
50
|
message.dataType === 'connect' ||
|
|
51
51
|
message.dataType === 'selectedComponentInfo' ||
|
|
52
52
|
message.dataType === 'isComponentSelectionAvailable' ||
|
|
53
|
+
message.dataType === 'placeholderMode' ||
|
|
53
54
|
message.dataType === 'toggleInspector');
|
|
54
55
|
};
|
|
55
56
|
|
|
57
|
+
const ACTION_DELETE_ENTITY = '[PlaceholderTemplate] delete entity';
|
|
58
|
+
const ACTION_SET_ENTITY = '[PlaceholderTemplate] set entity';
|
|
59
|
+
const ACTION_TOGGLE_MODE = '[PlaceholderTemplate] toggle mode';
|
|
60
|
+
/** Action to delete a specific entity */
|
|
61
|
+
const deletePlaceholderTemplateEntity = createAction(ACTION_DELETE_ENTITY, props());
|
|
62
|
+
/** Action to clear all placeholderTemplate and fill the store with the payload */
|
|
63
|
+
const setPlaceholderTemplateEntity = createAction(ACTION_SET_ENTITY, props());
|
|
64
|
+
const togglePlaceholderModeTemplate = createAction(ACTION_TOGGLE_MODE, props());
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* PlaceholderTemplate Store adapter
|
|
68
|
+
*/
|
|
69
|
+
const placeholderTemplateAdapter = createEntityAdapter({
|
|
70
|
+
selectId: (model) => model.id
|
|
71
|
+
});
|
|
72
|
+
/**
|
|
73
|
+
* PlaceholderTemplate Store initial value
|
|
74
|
+
*/
|
|
75
|
+
const placeholderTemplateInitialState = placeholderTemplateAdapter.getInitialState({
|
|
76
|
+
mode: 'normal'
|
|
77
|
+
});
|
|
78
|
+
/**
|
|
79
|
+
* List of basic actions for PlaceholderTemplate Store
|
|
80
|
+
*/
|
|
81
|
+
const placeholderTemplateReducerFeatures = [
|
|
82
|
+
on(setPlaceholderTemplateEntity, (state, payload) => placeholderTemplateAdapter.addOne(payload.entity, placeholderTemplateAdapter.removeOne(payload.entity.id, state))),
|
|
83
|
+
on(deletePlaceholderTemplateEntity, (state, payload) => {
|
|
84
|
+
const id = payload.id;
|
|
85
|
+
if (!id || !state.entities[id]) {
|
|
86
|
+
return state;
|
|
87
|
+
}
|
|
88
|
+
return placeholderTemplateAdapter.removeOne(id, state);
|
|
89
|
+
}),
|
|
90
|
+
on(togglePlaceholderModeTemplate, (state, payload) => {
|
|
91
|
+
return {
|
|
92
|
+
...state,
|
|
93
|
+
mode: payload.mode
|
|
94
|
+
};
|
|
95
|
+
})
|
|
96
|
+
];
|
|
97
|
+
/**
|
|
98
|
+
* PlaceholderTemplate Store reducer
|
|
99
|
+
*/
|
|
100
|
+
const placeholderTemplateReducer = createReducer(placeholderTemplateInitialState, ...placeholderTemplateReducerFeatures);
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Name of the PlaceholderTemplate Store
|
|
104
|
+
*/
|
|
105
|
+
const PLACEHOLDER_TEMPLATE_STORE_NAME = 'placeholderTemplate';
|
|
106
|
+
|
|
107
|
+
/** Token of the PlaceholderTemplate reducer */
|
|
108
|
+
const PLACEHOLDER_TEMPLATE_REDUCER_TOKEN = new InjectionToken('Feature PlaceholderTemplate Reducer');
|
|
109
|
+
/** Provide default reducer for PlaceholderTemplate store */
|
|
110
|
+
function getDefaultPlaceholderTemplateReducer() {
|
|
111
|
+
return placeholderTemplateReducer;
|
|
112
|
+
}
|
|
113
|
+
class PlaceholderTemplateStoreModule {
|
|
114
|
+
static forRoot(reducerFactory) {
|
|
115
|
+
return {
|
|
116
|
+
ngModule: PlaceholderTemplateStoreModule,
|
|
117
|
+
providers: [
|
|
118
|
+
{ provide: PLACEHOLDER_TEMPLATE_REDUCER_TOKEN, useFactory: reducerFactory }
|
|
119
|
+
]
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderTemplateStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
123
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderTemplateStoreModule, imports: [i1.StoreFeatureModule] }); }
|
|
124
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderTemplateStoreModule, providers: [
|
|
125
|
+
{ provide: PLACEHOLDER_TEMPLATE_REDUCER_TOKEN, useFactory: getDefaultPlaceholderTemplateReducer }
|
|
126
|
+
], imports: [StoreModule.forFeature(PLACEHOLDER_TEMPLATE_STORE_NAME, PLACEHOLDER_TEMPLATE_REDUCER_TOKEN)] }); }
|
|
127
|
+
}
|
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderTemplateStoreModule, decorators: [{
|
|
129
|
+
type: NgModule,
|
|
130
|
+
args: [{
|
|
131
|
+
imports: [
|
|
132
|
+
StoreModule.forFeature(PLACEHOLDER_TEMPLATE_STORE_NAME, PLACEHOLDER_TEMPLATE_REDUCER_TOKEN)
|
|
133
|
+
],
|
|
134
|
+
providers: [
|
|
135
|
+
{ provide: PLACEHOLDER_TEMPLATE_REDUCER_TOKEN, useFactory: getDefaultPlaceholderTemplateReducer }
|
|
136
|
+
]
|
|
137
|
+
}]
|
|
138
|
+
}] });
|
|
139
|
+
|
|
140
|
+
const ACTION_FAIL_ENTITIES = '[PlaceholderRequest] fail entities';
|
|
141
|
+
const ACTION_SET_ENTITY_FROM_URL = '[PlaceholderRequest] set entity from url';
|
|
142
|
+
const ACTION_CANCEL_REQUEST = '[PlaceholderRequest] cancel request';
|
|
143
|
+
const ACTION_UPDATE_ENTITY = '[PlaceholderRequest] update entity';
|
|
144
|
+
const ACTION_UPDATE_ENTITY_SYNC = '[PlaceholderRequest] update entity sync';
|
|
145
|
+
/** Action to cancel a Request ID registered in the store. Can happen from effect based on a switchMap for instance */
|
|
146
|
+
const cancelPlaceholderRequest = createAction(ACTION_CANCEL_REQUEST, props());
|
|
147
|
+
/** Action to update failureStatus for PlaceholderRequestModels */
|
|
148
|
+
const failPlaceholderRequestEntity = createAction(ACTION_FAIL_ENTITIES, props());
|
|
149
|
+
/** Action to update an entity */
|
|
150
|
+
const updatePlaceholderRequestEntity = createAction(ACTION_UPDATE_ENTITY, props());
|
|
151
|
+
/** Action to update an entity without impact on request id */
|
|
152
|
+
const updatePlaceholderRequestEntitySync = createAction(ACTION_UPDATE_ENTITY_SYNC, props());
|
|
153
|
+
/** Action to update PlaceholderRequest with known IDs, will create the entity with only the url, the call will be created in the effect */
|
|
154
|
+
const setPlaceholderRequestEntityFromUrl = createAction(ACTION_SET_ENTITY_FROM_URL, asyncProps());
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* PlaceholderRequest Store adapter
|
|
158
|
+
*/
|
|
159
|
+
const placeholderRequestAdapter = createEntityAsyncRequestAdapter(createEntityAdapter({
|
|
160
|
+
selectId: (model) => model.id
|
|
161
|
+
}));
|
|
162
|
+
/**
|
|
163
|
+
* PlaceholderRequest Store initial value
|
|
164
|
+
*/
|
|
165
|
+
const placeholderRequestInitialState = placeholderRequestAdapter.getInitialState({
|
|
166
|
+
requestIds: []
|
|
167
|
+
});
|
|
168
|
+
/**
|
|
169
|
+
* Reducers of Placeholder request store that handles the call to the placeholder template URL
|
|
170
|
+
*/
|
|
171
|
+
const placeholderRequestReducerFeatures = [
|
|
172
|
+
on(cancelPlaceholderRequest, (state, action) => {
|
|
173
|
+
const id = action.id;
|
|
174
|
+
if (!id || !state.entities[id]) {
|
|
175
|
+
return state;
|
|
176
|
+
}
|
|
177
|
+
return placeholderRequestAdapter.updateOne({
|
|
178
|
+
id: action.id,
|
|
179
|
+
changes: asyncStoreItemAdapter.resolveRequest(state.entities[id], action.requestId)
|
|
180
|
+
}, asyncStoreItemAdapter.resolveRequest(state, action.requestId));
|
|
181
|
+
}),
|
|
182
|
+
on(updatePlaceholderRequestEntity, (state, action) => {
|
|
183
|
+
const currentEntity = state.entities[action.entity.id];
|
|
184
|
+
const newEntity = asyncStoreItemAdapter.resolveRequest({ ...action.entity, ...asyncStoreItemAdapter.extractAsyncStoreItem(currentEntity) }, action.requestId);
|
|
185
|
+
return placeholderRequestAdapter.updateOne({
|
|
186
|
+
id: newEntity.id,
|
|
187
|
+
changes: newEntity
|
|
188
|
+
}, asyncStoreItemAdapter.resolveRequest(state, action.requestId));
|
|
189
|
+
}),
|
|
190
|
+
on(updatePlaceholderRequestEntitySync, (state, action) => {
|
|
191
|
+
return placeholderRequestAdapter.updateOne({
|
|
192
|
+
id: action.entity.id,
|
|
193
|
+
changes: {
|
|
194
|
+
...action.entity
|
|
195
|
+
}
|
|
196
|
+
}, state);
|
|
197
|
+
}),
|
|
198
|
+
on(setPlaceholderRequestEntityFromUrl, (state, payload) => {
|
|
199
|
+
const currentEntity = state.entities[payload.id];
|
|
200
|
+
// Nothing to update if resolved URLs already match
|
|
201
|
+
if (currentEntity && currentEntity.resolvedUrl === payload.resolvedUrl) {
|
|
202
|
+
return state;
|
|
203
|
+
}
|
|
204
|
+
let newEntity = {
|
|
205
|
+
id: payload.id,
|
|
206
|
+
resolvedUrl: payload.resolvedUrl,
|
|
207
|
+
used: true
|
|
208
|
+
};
|
|
209
|
+
if (currentEntity) {
|
|
210
|
+
newEntity = { ...asyncStoreItemAdapter.extractAsyncStoreItem(currentEntity), ...newEntity };
|
|
211
|
+
}
|
|
212
|
+
return placeholderRequestAdapter.addOne(asyncStoreItemAdapter.addRequest(asyncStoreItemAdapter.initialize(newEntity), payload.requestId), asyncStoreItemAdapter.addRequest(state, payload.requestId));
|
|
213
|
+
}),
|
|
214
|
+
on(failPlaceholderRequestEntity, (state, payload) => {
|
|
215
|
+
return placeholderRequestAdapter.failRequestMany(asyncStoreItemAdapter.resolveRequest(state, payload.requestId), payload && payload.ids, payload.requestId);
|
|
216
|
+
})
|
|
217
|
+
];
|
|
218
|
+
/**
|
|
219
|
+
* PlaceholderRequest Store reducer
|
|
220
|
+
*/
|
|
221
|
+
const placeholderRequestReducer = createReducer(placeholderRequestInitialState, ...placeholderRequestReducerFeatures);
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Name of the PlaceholderRequest Store
|
|
225
|
+
*/
|
|
226
|
+
const PLACEHOLDER_REQUEST_STORE_NAME = 'placeholderRequest';
|
|
227
|
+
|
|
228
|
+
/** Token of the PlaceholderRequest reducer */
|
|
229
|
+
const PLACEHOLDER_REQUEST_REDUCER_TOKEN = new InjectionToken('Feature PlaceholderRequest Reducer');
|
|
230
|
+
/** Provide default reducer for PlaceholderRequest store */
|
|
231
|
+
function getDefaultplaceholderRequestReducer() {
|
|
232
|
+
return placeholderRequestReducer;
|
|
233
|
+
}
|
|
234
|
+
class PlaceholderRequestStoreModule {
|
|
235
|
+
static forRoot(reducerFactory) {
|
|
236
|
+
return {
|
|
237
|
+
ngModule: PlaceholderRequestStoreModule,
|
|
238
|
+
providers: [
|
|
239
|
+
{ provide: PLACEHOLDER_REQUEST_REDUCER_TOKEN, useFactory: reducerFactory }
|
|
240
|
+
]
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderRequestStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
244
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderRequestStoreModule, imports: [i1.StoreFeatureModule] }); }
|
|
245
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderRequestStoreModule, providers: [
|
|
246
|
+
{ provide: PLACEHOLDER_REQUEST_REDUCER_TOKEN, useFactory: getDefaultplaceholderRequestReducer }
|
|
247
|
+
], imports: [StoreModule.forFeature(PLACEHOLDER_REQUEST_STORE_NAME, PLACEHOLDER_REQUEST_REDUCER_TOKEN)] }); }
|
|
248
|
+
}
|
|
249
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderRequestStoreModule, decorators: [{
|
|
250
|
+
type: NgModule,
|
|
251
|
+
args: [{
|
|
252
|
+
imports: [
|
|
253
|
+
StoreModule.forFeature(PLACEHOLDER_REQUEST_STORE_NAME, PLACEHOLDER_REQUEST_REDUCER_TOKEN)
|
|
254
|
+
],
|
|
255
|
+
providers: [
|
|
256
|
+
{ provide: PLACEHOLDER_REQUEST_REDUCER_TOKEN, useFactory: getDefaultplaceholderRequestReducer }
|
|
257
|
+
]
|
|
258
|
+
}]
|
|
259
|
+
}] });
|
|
260
|
+
|
|
261
|
+
const selectPlaceholderRequestState = createFeatureSelector(PLACEHOLDER_REQUEST_STORE_NAME);
|
|
262
|
+
const { selectEntities: selectEntities$1 } = placeholderRequestAdapter.getSelectors();
|
|
263
|
+
/** Select the dictionary of PlaceholderRequest entities */
|
|
264
|
+
const selectPlaceholderRequestEntities = createSelector(selectPlaceholderRequestState, (state) => state && selectEntities$1(state));
|
|
265
|
+
/**
|
|
266
|
+
* Select a specific PlaceholderRequest entity using a raw url as id
|
|
267
|
+
* @param rawUrl
|
|
268
|
+
*/
|
|
269
|
+
const selectPlaceholderRequestEntityUsage = (rawUrl) => createSelector(selectPlaceholderRequestState, (state) => {
|
|
270
|
+
return state?.entities[rawUrl] ? state?.entities[rawUrl].used : undefined;
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
const placeholderRequestStorageSerializer = asyncEntitySerializer;
|
|
274
|
+
const placeholderRequestStorageDeserializer = (rawObject) => {
|
|
275
|
+
if (!rawObject || !rawObject.ids) {
|
|
276
|
+
return placeholderRequestInitialState;
|
|
277
|
+
}
|
|
278
|
+
const storeObject = placeholderRequestAdapter.getInitialState(rawObject);
|
|
279
|
+
for (const id of rawObject.ids) {
|
|
280
|
+
storeObject.entities[id] = rawObject.entities[id];
|
|
281
|
+
}
|
|
282
|
+
return storeObject;
|
|
283
|
+
};
|
|
284
|
+
const placeholderRequestStorageSync = {
|
|
285
|
+
serialize: placeholderRequestStorageSerializer,
|
|
286
|
+
deserialize: placeholderRequestStorageDeserializer
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
const { selectEntities } = placeholderTemplateAdapter.getSelectors();
|
|
290
|
+
const selectPlaceholderTemplateState = createFeatureSelector(PLACEHOLDER_TEMPLATE_STORE_NAME);
|
|
291
|
+
/** Select the dictionary of PlaceholderTemplate entities */
|
|
292
|
+
const selectPlaceholderTemplateEntities = createSelector(selectPlaceholderTemplateState, (state) => state && selectEntities(state));
|
|
293
|
+
/**
|
|
294
|
+
* Select a specific PlaceholderTemplate
|
|
295
|
+
* @param placeholderId
|
|
296
|
+
*/
|
|
297
|
+
const selectPlaceholderTemplateEntity = (placeholderId) => createSelector(selectPlaceholderTemplateState, (state) => state?.entities[placeholderId]);
|
|
298
|
+
/**
|
|
299
|
+
* Select the ordered rendered placeholder template full data (url, priority etc.) for a given placeholderId
|
|
300
|
+
* Return undefined if the placeholder is not found
|
|
301
|
+
* Returns {orderedRenderedTemplates: undefined, isPending: true} if any of the request is still pending
|
|
302
|
+
* @param placeholderId
|
|
303
|
+
*/
|
|
304
|
+
const selectSortedTemplates = (placeholderId) => createSelector(selectPlaceholderTemplateEntity(placeholderId), selectPlaceholderRequestState, (placeholderTemplate, placeholderRequestState) => {
|
|
305
|
+
if (!placeholderTemplate || !placeholderRequestState) {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
// The isPending will be considered true if any of the Url is still pending
|
|
309
|
+
let isPending = false;
|
|
310
|
+
const templates = [];
|
|
311
|
+
placeholderTemplate.urlsWithPriority.forEach(urlWithPriority => {
|
|
312
|
+
const placeholderRequest = placeholderRequestState.entities[urlWithPriority.rawUrl];
|
|
313
|
+
if (placeholderRequest) {
|
|
314
|
+
// If one of the items is pending, we will wait to display all contents at the same time
|
|
315
|
+
isPending = isPending || placeholderRequest.isPending;
|
|
316
|
+
// Templates in failure will be ignored from the list
|
|
317
|
+
if (!placeholderRequest.isFailure) {
|
|
318
|
+
templates.push({
|
|
319
|
+
rawUrl: urlWithPriority.rawUrl,
|
|
320
|
+
resolvedUrl: placeholderRequest.resolvedUrl,
|
|
321
|
+
priority: urlWithPriority.priority,
|
|
322
|
+
renderedTemplate: placeholderRequest.renderedTemplate
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
});
|
|
327
|
+
// No need to perform sorting if still pending
|
|
328
|
+
if (isPending) {
|
|
329
|
+
return { orderedTemplates: undefined, isPending };
|
|
330
|
+
}
|
|
331
|
+
// Sort templates by priority
|
|
332
|
+
const orderedTemplates = templates.sort((template1, template2) => {
|
|
333
|
+
return (template2.priority - template1.priority) || 1;
|
|
334
|
+
}).filter(templateData => !!templateData.renderedTemplate);
|
|
335
|
+
return { orderedTemplates, isPending };
|
|
336
|
+
});
|
|
337
|
+
/**
|
|
338
|
+
* Select the ordered rendered templates for a given placeholderId
|
|
339
|
+
* Return undefined if the placeholder is not found
|
|
340
|
+
* Returns {orderedRenderedTemplates: undefined, isPending: true} if any of the request is still pending
|
|
341
|
+
* @param placeholderId
|
|
342
|
+
* @deprecated Please use {@link selectSortedTemplates} instead
|
|
343
|
+
*/
|
|
344
|
+
const selectPlaceholderRenderedTemplates = (placeholderId) => createSelector(selectSortedTemplates(placeholderId), (placeholderData) => {
|
|
345
|
+
if (!placeholderData) {
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
return {
|
|
349
|
+
orderedRenderedTemplates: placeholderData.orderedTemplates?.map(placeholder => placeholder.renderedTemplate),
|
|
350
|
+
isPending: placeholderData.isPending
|
|
351
|
+
};
|
|
352
|
+
});
|
|
353
|
+
const selectPlaceholderTemplateMode = createSelector(selectPlaceholderTemplateState, (state) => state.mode);
|
|
354
|
+
|
|
355
|
+
const placeholderTemplateStorageDeserializer = (rawObject) => {
|
|
356
|
+
if (!rawObject || !rawObject.ids) {
|
|
357
|
+
return placeholderTemplateInitialState;
|
|
358
|
+
}
|
|
359
|
+
const storeObject = placeholderTemplateAdapter.getInitialState(rawObject);
|
|
360
|
+
for (const id of rawObject.ids) {
|
|
361
|
+
storeObject.entities[id] = rawObject.entities[id];
|
|
362
|
+
}
|
|
363
|
+
return storeObject;
|
|
364
|
+
};
|
|
365
|
+
const placeholderTemplateStorageSync = {
|
|
366
|
+
deserialize: placeholderTemplateStorageDeserializer
|
|
367
|
+
};
|
|
368
|
+
|
|
56
369
|
const OTTER_COMPONENTS_DEVTOOLS_DEFAULT_OPTIONS = {
|
|
57
370
|
isActivatedOnBootstrap: false
|
|
58
371
|
};
|
|
@@ -163,7 +476,8 @@ const getOtterLikeComponentInfo = (componentClassInstance, host) => {
|
|
|
163
476
|
const translations = getTranslations(host);
|
|
164
477
|
const analytics = getAnalyticEvents(host);
|
|
165
478
|
return {
|
|
166
|
-
|
|
479
|
+
// Cannot use anymore `constructor.name` else all components are named `_a`
|
|
480
|
+
componentName: componentClassInstance.constructor.ɵcmp?.debugInfo?.className || componentClassInstance.constructor.name,
|
|
167
481
|
configId,
|
|
168
482
|
translations,
|
|
169
483
|
analytics
|
|
@@ -261,8 +575,7 @@ class OtterInspectorService {
|
|
|
261
575
|
this.inspectorDiv.style.height = `${rect.height}px`;
|
|
262
576
|
this.inspectorDiv.style.top = `${rect.top}px`;
|
|
263
577
|
this.inspectorDiv.style.left = `${rect.left}px`;
|
|
264
|
-
|
|
265
|
-
this.inspectorDiv.firstChild.textContent = `<${this.selectedComponent.component.constructor.name}>`;
|
|
578
|
+
this.inspectorDiv.firstChild.textContent = `<${this.selectedComponent.componentName}>`;
|
|
266
579
|
}
|
|
267
580
|
}
|
|
268
581
|
unHighlight() {
|
|
@@ -336,8 +649,9 @@ class OtterInspectorService {
|
|
|
336
649
|
}
|
|
337
650
|
|
|
338
651
|
class ComponentsDevtoolsMessageService {
|
|
339
|
-
constructor(logger, options) {
|
|
652
|
+
constructor(logger, store, options) {
|
|
340
653
|
this.logger = logger;
|
|
654
|
+
this.store = store;
|
|
341
655
|
this.subscriptions = new Subscription();
|
|
342
656
|
this.sendMessage = (sendOtterMessage);
|
|
343
657
|
this.options = {
|
|
@@ -405,372 +719,78 @@ class ComponentsDevtoolsMessageService {
|
|
|
405
719
|
this.inspectorService.toggleInspector(message.isRunning);
|
|
406
720
|
break;
|
|
407
721
|
}
|
|
408
|
-
|
|
409
|
-
this.
|
|
722
|
+
case 'placeholderMode': {
|
|
723
|
+
this.store.dispatch(togglePlaceholderModeTemplate({ mode: message.mode }));
|
|
724
|
+
break;
|
|
410
725
|
}
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
this.subscriptions.add(fromEvent(window, 'message').pipe(filterMessageContent(isComponentsMessage)).subscribe((e) => this.handleEvents(e)));
|
|
416
|
-
this.inspectorService.prepareInspector();
|
|
417
|
-
this.subscriptions.add(this.inspectorService.otterLikeComponentInfoToBeSent$
|
|
418
|
-
.pipe(filter((info) => !!info)).subscribe((info) => this.sendMessage('selectedComponentInfo', info)));
|
|
419
|
-
}
|
|
420
|
-
/** @inheritDoc */
|
|
421
|
-
ngOnDestroy() {
|
|
422
|
-
this.subscriptions.unsubscribe();
|
|
423
|
-
}
|
|
424
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ComponentsDevtoolsMessageService, deps: [{ token: i1.LoggerService }, { token: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
425
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ComponentsDevtoolsMessageService, providedIn: 'root' }); }
|
|
426
|
-
}
|
|
427
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ComponentsDevtoolsMessageService, decorators: [{
|
|
428
|
-
type: Injectable,
|
|
429
|
-
args: [{
|
|
430
|
-
providedIn: 'root'
|
|
431
|
-
}]
|
|
432
|
-
}], ctorParameters: () => [{ type: i1.LoggerService }, { type: undefined, decorators: [{
|
|
433
|
-
type: Optional
|
|
434
|
-
}, {
|
|
435
|
-
type: Inject,
|
|
436
|
-
args: [OTTER_COMPONENTS_DEVTOOLS_OPTIONS]
|
|
437
|
-
}] }] });
|
|
438
|
-
|
|
439
|
-
class ComponentsDevtoolsModule {
|
|
440
|
-
/**
|
|
441
|
-
* Initialize Otter Devtools
|
|
442
|
-
* @param options
|
|
443
|
-
*/
|
|
444
|
-
static instrument(options) {
|
|
445
|
-
return {
|
|
446
|
-
ngModule: ComponentsDevtoolsModule,
|
|
447
|
-
providers: [
|
|
448
|
-
{ provide: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, useValue: { ...OTTER_COMPONENTS_DEVTOOLS_DEFAULT_OPTIONS, ...options }, multi: false },
|
|
449
|
-
ComponentsDevtoolsMessageService
|
|
450
|
-
]
|
|
451
|
-
};
|
|
452
|
-
}
|
|
453
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ComponentsDevtoolsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
454
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: ComponentsDevtoolsModule, imports: [StoreModule] }); }
|
|
455
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ComponentsDevtoolsModule, providers: [
|
|
456
|
-
{ provide: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, useValue: OTTER_COMPONENTS_DEVTOOLS_DEFAULT_OPTIONS },
|
|
457
|
-
ComponentsDevtoolsMessageService
|
|
458
|
-
], imports: [StoreModule] }); }
|
|
459
|
-
}
|
|
460
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: ComponentsDevtoolsModule, decorators: [{
|
|
461
|
-
type: NgModule,
|
|
462
|
-
args: [{
|
|
463
|
-
imports: [
|
|
464
|
-
StoreModule
|
|
465
|
-
],
|
|
466
|
-
providers: [
|
|
467
|
-
{ provide: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, useValue: OTTER_COMPONENTS_DEVTOOLS_DEFAULT_OPTIONS },
|
|
468
|
-
ComponentsDevtoolsMessageService
|
|
469
|
-
]
|
|
470
|
-
}]
|
|
471
|
-
}] });
|
|
472
|
-
|
|
473
|
-
const ACTION_DELETE_ENTITY = '[PlaceholderTemplate] delete entity';
|
|
474
|
-
const ACTION_SET_ENTITY = '[PlaceholderTemplate] set entity';
|
|
475
|
-
/** Action to delete a specific entity */
|
|
476
|
-
const deletePlaceholderTemplateEntity = createAction(ACTION_DELETE_ENTITY, props());
|
|
477
|
-
/** Action to clear all placeholderTemplate and fill the store with the payload */
|
|
478
|
-
const setPlaceholderTemplateEntity = createAction(ACTION_SET_ENTITY, props());
|
|
479
|
-
|
|
480
|
-
/**
|
|
481
|
-
* PlaceholderTemplate Store adapter
|
|
482
|
-
*/
|
|
483
|
-
const placeholderTemplateAdapter = createEntityAdapter({
|
|
484
|
-
selectId: (model) => model.id
|
|
485
|
-
});
|
|
486
|
-
/**
|
|
487
|
-
* PlaceholderTemplate Store initial value
|
|
488
|
-
*/
|
|
489
|
-
const placeholderTemplateInitialState = placeholderTemplateAdapter.getInitialState();
|
|
490
|
-
/**
|
|
491
|
-
* List of basic actions for PlaceholderTemplate Store
|
|
492
|
-
*/
|
|
493
|
-
const placeholderTemplateReducerFeatures = [
|
|
494
|
-
on(setPlaceholderTemplateEntity, (state, payload) => placeholderTemplateAdapter.addOne(payload.entity, placeholderTemplateAdapter.removeOne(payload.entity.id, state))),
|
|
495
|
-
on(deletePlaceholderTemplateEntity, (state, payload) => {
|
|
496
|
-
const id = payload.id;
|
|
497
|
-
if (!id || !state.entities[id]) {
|
|
498
|
-
return state;
|
|
499
|
-
}
|
|
500
|
-
return placeholderTemplateAdapter.removeOne(id, state);
|
|
501
|
-
})
|
|
502
|
-
];
|
|
503
|
-
/**
|
|
504
|
-
* PlaceholderTemplate Store reducer
|
|
505
|
-
*/
|
|
506
|
-
const placeholderTemplateReducer = createReducer(placeholderTemplateInitialState, ...placeholderTemplateReducerFeatures);
|
|
507
|
-
|
|
508
|
-
/**
|
|
509
|
-
* Name of the PlaceholderTemplate Store
|
|
510
|
-
*/
|
|
511
|
-
const PLACEHOLDER_TEMPLATE_STORE_NAME = 'placeholderTemplate';
|
|
512
|
-
|
|
513
|
-
/** Token of the PlaceholderTemplate reducer */
|
|
514
|
-
const PLACEHOLDER_TEMPLATE_REDUCER_TOKEN = new InjectionToken('Feature PlaceholderTemplate Reducer');
|
|
515
|
-
/** Provide default reducer for PlaceholderTemplate store */
|
|
516
|
-
function getDefaultPlaceholderTemplateReducer() {
|
|
517
|
-
return placeholderTemplateReducer;
|
|
518
|
-
}
|
|
519
|
-
class PlaceholderTemplateStoreModule {
|
|
520
|
-
static forRoot(reducerFactory) {
|
|
521
|
-
return {
|
|
522
|
-
ngModule: PlaceholderTemplateStoreModule,
|
|
523
|
-
providers: [
|
|
524
|
-
{ provide: PLACEHOLDER_TEMPLATE_REDUCER_TOKEN, useFactory: reducerFactory }
|
|
525
|
-
]
|
|
526
|
-
};
|
|
726
|
+
default: {
|
|
727
|
+
this.logger.warn('Message ignored by the components service', message);
|
|
728
|
+
}
|
|
729
|
+
}
|
|
527
730
|
}
|
|
528
|
-
/** @
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
731
|
+
/** @inheritDoc */
|
|
732
|
+
activate() {
|
|
733
|
+
this.subscriptions.add(fromEvent(window, 'message').pipe(filterMessageContent(isComponentsMessage)).subscribe((e) => this.handleEvents(e)));
|
|
734
|
+
this.inspectorService.prepareInspector();
|
|
735
|
+
this.subscriptions.add(this.inspectorService.otterLikeComponentInfoToBeSent$
|
|
736
|
+
.pipe(filter((info) => !!info)).subscribe((info) => this.sendMessage('selectedComponentInfo', info)));
|
|
737
|
+
}
|
|
738
|
+
/** @inheritDoc */
|
|
739
|
+
ngOnDestroy() {
|
|
740
|
+
this.subscriptions.unsubscribe();
|
|
741
|
+
}
|
|
742
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsMessageService, deps: [{ token: i1$1.LoggerService }, { token: i1.Store }, { token: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
743
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsMessageService, providedIn: 'root' }); }
|
|
533
744
|
}
|
|
534
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
535
|
-
type:
|
|
745
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsMessageService, decorators: [{
|
|
746
|
+
type: Injectable,
|
|
536
747
|
args: [{
|
|
537
|
-
|
|
538
|
-
StoreModule.forFeature(PLACEHOLDER_TEMPLATE_STORE_NAME, PLACEHOLDER_TEMPLATE_REDUCER_TOKEN)
|
|
539
|
-
],
|
|
540
|
-
providers: [
|
|
541
|
-
{ provide: PLACEHOLDER_TEMPLATE_REDUCER_TOKEN, useFactory: getDefaultPlaceholderTemplateReducer }
|
|
542
|
-
]
|
|
748
|
+
providedIn: 'root'
|
|
543
749
|
}]
|
|
544
|
-
}] }
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
const ACTION_UPDATE_ENTITY_SYNC = '[PlaceholderRequest] update entity sync';
|
|
551
|
-
/** Action to cancel a Request ID registered in the store. Can happen from effect based on a switchMap for instance */
|
|
552
|
-
const cancelPlaceholderRequest = createAction(ACTION_CANCEL_REQUEST, props());
|
|
553
|
-
/** Action to update failureStatus for PlaceholderRequestModels */
|
|
554
|
-
const failPlaceholderRequestEntity = createAction(ACTION_FAIL_ENTITIES, props());
|
|
555
|
-
/** Action to update an entity */
|
|
556
|
-
const updatePlaceholderRequestEntity = createAction(ACTION_UPDATE_ENTITY, props());
|
|
557
|
-
/** Action to update an entity without impact on request id */
|
|
558
|
-
const updatePlaceholderRequestEntitySync = createAction(ACTION_UPDATE_ENTITY_SYNC, props());
|
|
559
|
-
/** Action to update PlaceholderRequest with known IDs, will create the entity with only the url, the call will be created in the effect */
|
|
560
|
-
const setPlaceholderRequestEntityFromUrl = createAction(ACTION_SET_ENTITY_FROM_URL, asyncProps());
|
|
561
|
-
|
|
562
|
-
/**
|
|
563
|
-
* PlaceholderRequest Store adapter
|
|
564
|
-
*/
|
|
565
|
-
const placeholderRequestAdapter = createEntityAsyncRequestAdapter(createEntityAdapter({
|
|
566
|
-
selectId: (model) => model.id
|
|
567
|
-
}));
|
|
568
|
-
/**
|
|
569
|
-
* PlaceholderRequest Store initial value
|
|
570
|
-
*/
|
|
571
|
-
const placeholderRequestInitialState = placeholderRequestAdapter.getInitialState({
|
|
572
|
-
requestIds: []
|
|
573
|
-
});
|
|
574
|
-
/**
|
|
575
|
-
* Reducers of Placeholder request store that handles the call to the placeholder template URL
|
|
576
|
-
*/
|
|
577
|
-
const placeholderRequestReducerFeatures = [
|
|
578
|
-
on(cancelPlaceholderRequest, (state, action) => {
|
|
579
|
-
const id = action.id;
|
|
580
|
-
if (!id || !state.entities[id]) {
|
|
581
|
-
return state;
|
|
582
|
-
}
|
|
583
|
-
return placeholderRequestAdapter.updateOne({
|
|
584
|
-
id: action.id,
|
|
585
|
-
changes: asyncStoreItemAdapter.resolveRequest(state.entities[id], action.requestId)
|
|
586
|
-
}, asyncStoreItemAdapter.resolveRequest(state, action.requestId));
|
|
587
|
-
}),
|
|
588
|
-
on(updatePlaceholderRequestEntity, (state, action) => {
|
|
589
|
-
const currentEntity = state.entities[action.entity.id];
|
|
590
|
-
const newEntity = asyncStoreItemAdapter.resolveRequest({ ...action.entity, ...asyncStoreItemAdapter.extractAsyncStoreItem(currentEntity) }, action.requestId);
|
|
591
|
-
return placeholderRequestAdapter.updateOne({
|
|
592
|
-
id: newEntity.id,
|
|
593
|
-
changes: newEntity
|
|
594
|
-
}, asyncStoreItemAdapter.resolveRequest(state, action.requestId));
|
|
595
|
-
}),
|
|
596
|
-
on(updatePlaceholderRequestEntitySync, (state, action) => {
|
|
597
|
-
return placeholderRequestAdapter.updateOne({
|
|
598
|
-
id: action.entity.id,
|
|
599
|
-
changes: {
|
|
600
|
-
...action.entity
|
|
601
|
-
}
|
|
602
|
-
}, state);
|
|
603
|
-
}),
|
|
604
|
-
on(setPlaceholderRequestEntityFromUrl, (state, payload) => {
|
|
605
|
-
const currentEntity = state.entities[payload.id];
|
|
606
|
-
// Nothing to update if resolved URLs already match
|
|
607
|
-
if (currentEntity && currentEntity.resolvedUrl === payload.resolvedUrl) {
|
|
608
|
-
return state;
|
|
609
|
-
}
|
|
610
|
-
let newEntity = {
|
|
611
|
-
id: payload.id,
|
|
612
|
-
resolvedUrl: payload.resolvedUrl,
|
|
613
|
-
used: true
|
|
614
|
-
};
|
|
615
|
-
if (currentEntity) {
|
|
616
|
-
newEntity = { ...asyncStoreItemAdapter.extractAsyncStoreItem(currentEntity), ...newEntity };
|
|
617
|
-
}
|
|
618
|
-
return placeholderRequestAdapter.addOne(asyncStoreItemAdapter.addRequest(asyncStoreItemAdapter.initialize(newEntity), payload.requestId), asyncStoreItemAdapter.addRequest(state, payload.requestId));
|
|
619
|
-
}),
|
|
620
|
-
on(failPlaceholderRequestEntity, (state, payload) => {
|
|
621
|
-
return placeholderRequestAdapter.failRequestMany(asyncStoreItemAdapter.resolveRequest(state, payload.requestId), payload && payload.ids, payload.requestId);
|
|
622
|
-
})
|
|
623
|
-
];
|
|
624
|
-
/**
|
|
625
|
-
* PlaceholderRequest Store reducer
|
|
626
|
-
*/
|
|
627
|
-
const placeholderRequestReducer = createReducer(placeholderRequestInitialState, ...placeholderRequestReducerFeatures);
|
|
628
|
-
|
|
629
|
-
/**
|
|
630
|
-
* Name of the PlaceholderRequest Store
|
|
631
|
-
*/
|
|
632
|
-
const PLACEHOLDER_REQUEST_STORE_NAME = 'placeholderRequest';
|
|
750
|
+
}], ctorParameters: () => [{ type: i1$1.LoggerService }, { type: i1.Store }, { type: undefined, decorators: [{
|
|
751
|
+
type: Optional
|
|
752
|
+
}, {
|
|
753
|
+
type: Inject,
|
|
754
|
+
args: [OTTER_COMPONENTS_DEVTOOLS_OPTIONS]
|
|
755
|
+
}] }] });
|
|
633
756
|
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
class PlaceholderRequestStoreModule {
|
|
641
|
-
static forRoot(reducerFactory) {
|
|
757
|
+
class ComponentsDevtoolsModule {
|
|
758
|
+
/**
|
|
759
|
+
* Initialize Otter Devtools
|
|
760
|
+
* @param options
|
|
761
|
+
*/
|
|
762
|
+
static instrument(options) {
|
|
642
763
|
return {
|
|
643
|
-
ngModule:
|
|
764
|
+
ngModule: ComponentsDevtoolsModule,
|
|
644
765
|
providers: [
|
|
645
|
-
{ provide:
|
|
766
|
+
{ provide: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, useValue: { ...OTTER_COMPONENTS_DEVTOOLS_DEFAULT_OPTIONS, ...options }, multi: false },
|
|
767
|
+
ComponentsDevtoolsMessageService
|
|
646
768
|
]
|
|
647
769
|
};
|
|
648
770
|
}
|
|
649
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
650
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
771
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
772
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsModule, imports: [StoreModule,
|
|
773
|
+
PlaceholderTemplateStoreModule] }); }
|
|
774
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsModule, providers: [
|
|
775
|
+
{ provide: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, useValue: OTTER_COMPONENTS_DEVTOOLS_DEFAULT_OPTIONS },
|
|
776
|
+
ComponentsDevtoolsMessageService
|
|
777
|
+
], imports: [StoreModule,
|
|
778
|
+
PlaceholderTemplateStoreModule] }); }
|
|
654
779
|
}
|
|
655
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
780
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ComponentsDevtoolsModule, decorators: [{
|
|
656
781
|
type: NgModule,
|
|
657
782
|
args: [{
|
|
658
783
|
imports: [
|
|
659
|
-
StoreModule
|
|
784
|
+
StoreModule,
|
|
785
|
+
PlaceholderTemplateStoreModule
|
|
660
786
|
],
|
|
661
787
|
providers: [
|
|
662
|
-
{ provide:
|
|
788
|
+
{ provide: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, useValue: OTTER_COMPONENTS_DEVTOOLS_DEFAULT_OPTIONS },
|
|
789
|
+
ComponentsDevtoolsMessageService
|
|
663
790
|
]
|
|
664
791
|
}]
|
|
665
792
|
}] });
|
|
666
793
|
|
|
667
|
-
const selectPlaceholderRequestState = createFeatureSelector(PLACEHOLDER_REQUEST_STORE_NAME);
|
|
668
|
-
const { selectEntities: selectEntities$1 } = placeholderRequestAdapter.getSelectors();
|
|
669
|
-
/** Select the dictionary of PlaceholderRequest entities */
|
|
670
|
-
const selectPlaceholderRequestEntities = createSelector(selectPlaceholderRequestState, (state) => state && selectEntities$1(state));
|
|
671
|
-
/**
|
|
672
|
-
* Select a specific PlaceholderRequest entity using a raw url as id
|
|
673
|
-
* @param rawUrl
|
|
674
|
-
*/
|
|
675
|
-
const selectPlaceholderRequestEntityUsage = (rawUrl) => createSelector(selectPlaceholderRequestState, (state) => {
|
|
676
|
-
return state?.entities[rawUrl] ? state?.entities[rawUrl].used : undefined;
|
|
677
|
-
});
|
|
678
|
-
|
|
679
|
-
const placeholderRequestStorageSerializer = asyncEntitySerializer;
|
|
680
|
-
const placeholderRequestStorageDeserializer = (rawObject) => {
|
|
681
|
-
if (!rawObject || !rawObject.ids) {
|
|
682
|
-
return placeholderRequestInitialState;
|
|
683
|
-
}
|
|
684
|
-
const storeObject = placeholderRequestAdapter.getInitialState(rawObject);
|
|
685
|
-
for (const id of rawObject.ids) {
|
|
686
|
-
storeObject.entities[id] = rawObject.entities[id];
|
|
687
|
-
}
|
|
688
|
-
return storeObject;
|
|
689
|
-
};
|
|
690
|
-
const placeholderRequestStorageSync = {
|
|
691
|
-
serialize: placeholderRequestStorageSerializer,
|
|
692
|
-
deserialize: placeholderRequestStorageDeserializer
|
|
693
|
-
};
|
|
694
|
-
|
|
695
|
-
const { selectEntities } = placeholderTemplateAdapter.getSelectors();
|
|
696
|
-
const selectPlaceholderTemplateState = createFeatureSelector(PLACEHOLDER_TEMPLATE_STORE_NAME);
|
|
697
|
-
/** Select the dictionary of PlaceholderTemplate entities */
|
|
698
|
-
const selectPlaceholderTemplateEntities = createSelector(selectPlaceholderTemplateState, (state) => state && selectEntities(state));
|
|
699
|
-
/**
|
|
700
|
-
* Select a specific PlaceholderTemplate
|
|
701
|
-
* @param placeholderId
|
|
702
|
-
*/
|
|
703
|
-
const selectPlaceholderTemplateEntity = (placeholderId) => createSelector(selectPlaceholderTemplateState, (state) => state?.entities[placeholderId]);
|
|
704
|
-
/**
|
|
705
|
-
* Select the ordered rendered placeholder template full data (url, priority etc.) for a given placeholderId
|
|
706
|
-
* Return undefined if the placeholder is not found
|
|
707
|
-
* Returns {orderedRenderedTemplates: undefined, isPending: true} if any of the request is still pending
|
|
708
|
-
* @param placeholderId
|
|
709
|
-
*/
|
|
710
|
-
const selectSortedTemplates = (placeholderId) => createSelector(selectPlaceholderTemplateEntity(placeholderId), selectPlaceholderRequestState, (placeholderTemplate, placeholderRequestState) => {
|
|
711
|
-
if (!placeholderTemplate || !placeholderRequestState) {
|
|
712
|
-
return;
|
|
713
|
-
}
|
|
714
|
-
// The isPending will be considered true if any of the Url is still pending
|
|
715
|
-
let isPending = false;
|
|
716
|
-
const templates = [];
|
|
717
|
-
placeholderTemplate.urlsWithPriority.forEach(urlWithPriority => {
|
|
718
|
-
const placeholderRequest = placeholderRequestState.entities[urlWithPriority.rawUrl];
|
|
719
|
-
if (placeholderRequest) {
|
|
720
|
-
// If one of the items is pending, we will wait to display all contents at the same time
|
|
721
|
-
isPending = isPending || placeholderRequest.isPending;
|
|
722
|
-
// Templates in failure will be ignored from the list
|
|
723
|
-
if (!placeholderRequest.isFailure) {
|
|
724
|
-
templates.push({
|
|
725
|
-
rawUrl: urlWithPriority.rawUrl,
|
|
726
|
-
resolvedUrl: placeholderRequest.resolvedUrl,
|
|
727
|
-
priority: urlWithPriority.priority,
|
|
728
|
-
renderedTemplate: placeholderRequest.renderedTemplate
|
|
729
|
-
});
|
|
730
|
-
}
|
|
731
|
-
}
|
|
732
|
-
});
|
|
733
|
-
// No need to perform sorting if still pending
|
|
734
|
-
if (isPending) {
|
|
735
|
-
return { orderedTemplates: undefined, isPending };
|
|
736
|
-
}
|
|
737
|
-
// Sort templates by priority
|
|
738
|
-
const orderedTemplates = templates.sort((template1, template2) => {
|
|
739
|
-
return (template2.priority - template1.priority) || 1;
|
|
740
|
-
}).filter(templateData => !!templateData.renderedTemplate);
|
|
741
|
-
return { orderedTemplates, isPending };
|
|
742
|
-
});
|
|
743
|
-
/**
|
|
744
|
-
* Select the ordered rendered templates for a given placeholderId
|
|
745
|
-
* Return undefined if the placeholder is not found
|
|
746
|
-
* Returns {orderedRenderedTemplates: undefined, isPending: true} if any of the request is still pending
|
|
747
|
-
* @param placeholderId
|
|
748
|
-
* @deprecated Please use {@link selectSortedTemplates} instead
|
|
749
|
-
*/
|
|
750
|
-
const selectPlaceholderRenderedTemplates = (placeholderId) => createSelector(selectSortedTemplates(placeholderId), (placeholderData) => {
|
|
751
|
-
if (!placeholderData) {
|
|
752
|
-
return;
|
|
753
|
-
}
|
|
754
|
-
return {
|
|
755
|
-
orderedRenderedTemplates: placeholderData.orderedTemplates?.map(placeholder => placeholder.renderedTemplate),
|
|
756
|
-
isPending: placeholderData.isPending
|
|
757
|
-
};
|
|
758
|
-
});
|
|
759
|
-
|
|
760
|
-
const placeholderTemplateStorageDeserializer = (rawObject) => {
|
|
761
|
-
if (!rawObject || !rawObject.ids) {
|
|
762
|
-
return placeholderTemplateInitialState;
|
|
763
|
-
}
|
|
764
|
-
const storeObject = placeholderTemplateAdapter.getInitialState(rawObject);
|
|
765
|
-
for (const id of rawObject.ids) {
|
|
766
|
-
storeObject.entities[id] = rawObject.entities[id];
|
|
767
|
-
}
|
|
768
|
-
return storeObject;
|
|
769
|
-
};
|
|
770
|
-
const placeholderTemplateStorageSync = {
|
|
771
|
-
deserialize: placeholderTemplateStorageDeserializer
|
|
772
|
-
};
|
|
773
|
-
|
|
774
794
|
class C11nDirective {
|
|
775
795
|
/** The input setter */
|
|
776
796
|
set inputs(value) {
|
|
@@ -883,8 +903,8 @@ class C11nDirective {
|
|
|
883
903
|
this.componentRef.destroy();
|
|
884
904
|
}
|
|
885
905
|
}
|
|
886
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
887
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.
|
|
906
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.KeyValueDiffers }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
907
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.6", type: C11nDirective, selector: "[c11n]", inputs: { component: "component", config: "config", formControl: "formControl", inputs: "inputs", outputs: "outputs" }, providers: [
|
|
888
908
|
{
|
|
889
909
|
provide: NG_VALUE_ACCESSOR,
|
|
890
910
|
useExisting: forwardRef((() => C11nDirective)),
|
|
@@ -897,7 +917,7 @@ class C11nDirective {
|
|
|
897
917
|
}
|
|
898
918
|
], usesOnChanges: true, ngImport: i0 }); }
|
|
899
919
|
}
|
|
900
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
920
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nDirective, decorators: [{
|
|
901
921
|
type: Directive,
|
|
902
922
|
args: [{
|
|
903
923
|
selector: '[c11n]',
|
|
@@ -954,10 +974,10 @@ class C11nService {
|
|
|
954
974
|
return typeof presenterConfig === 'string' && presenterConfig !== '' ? (this.presentersMap.get(presenterConfig) || defaultPres) : defaultPres;
|
|
955
975
|
}));
|
|
956
976
|
}
|
|
957
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
958
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.
|
|
977
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nService, deps: [{ token: C11N_PRESENTERS_MAP_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
978
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nService }); }
|
|
959
979
|
}
|
|
960
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
980
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nService, decorators: [{
|
|
961
981
|
type: Injectable
|
|
962
982
|
}], ctorParameters: () => [{ type: Map, decorators: [{
|
|
963
983
|
type: Inject,
|
|
@@ -993,11 +1013,11 @@ class C11nModule {
|
|
|
993
1013
|
}]
|
|
994
1014
|
};
|
|
995
1015
|
}
|
|
996
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
997
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.
|
|
998
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.
|
|
1016
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1017
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: C11nModule, declarations: [C11nDirective], exports: [C11nDirective] }); }
|
|
1018
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nModule }); }
|
|
999
1019
|
}
|
|
1000
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1020
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nModule, decorators: [{
|
|
1001
1021
|
type: NgModule,
|
|
1002
1022
|
args: [{
|
|
1003
1023
|
declarations: [C11nDirective],
|
|
@@ -1018,10 +1038,10 @@ function registerCustomComponent(customComponentsMap, customComponentKey, custom
|
|
|
1018
1038
|
|
|
1019
1039
|
/** C11n directive mock */
|
|
1020
1040
|
class MockC11nDirective {
|
|
1021
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1022
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.
|
|
1041
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: MockC11nDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1042
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.6", type: MockC11nDirective, selector: "[c11n]", inputs: { config: "config", component: "component", inputs: "inputs", outputs: "outputs" }, ngImport: i0 }); }
|
|
1023
1043
|
}
|
|
1024
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1044
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: MockC11nDirective, decorators: [{
|
|
1025
1045
|
type: Directive,
|
|
1026
1046
|
args: [{
|
|
1027
1047
|
selector: '[c11n]',
|
|
@@ -1035,21 +1055,21 @@ class C11nMockService {
|
|
|
1035
1055
|
getPresenter(_defaultPres, _presKey) {
|
|
1036
1056
|
return (source) => source.pipe(mapTo(null));
|
|
1037
1057
|
}
|
|
1038
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1039
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.
|
|
1058
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nMockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1059
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nMockService }); }
|
|
1040
1060
|
}
|
|
1041
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1061
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nMockService, decorators: [{
|
|
1042
1062
|
type: Injectable
|
|
1043
1063
|
}] });
|
|
1044
1064
|
/**
|
|
1045
1065
|
* The purpose of this module is to be imported in the unit tests of the components which are using c11n directive
|
|
1046
1066
|
*/
|
|
1047
1067
|
class C11nMockModule {
|
|
1048
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1049
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.
|
|
1050
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.
|
|
1068
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1069
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: C11nMockModule, declarations: [MockC11nDirective], exports: [MockC11nDirective] }); }
|
|
1070
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nMockModule, providers: [{ provide: C11nService, useClass: C11nMockService }] }); }
|
|
1051
1071
|
}
|
|
1052
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1072
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: C11nMockModule, decorators: [{
|
|
1053
1073
|
type: NgModule,
|
|
1054
1074
|
args: [{
|
|
1055
1075
|
declarations: [MockC11nDirective],
|
|
@@ -1064,10 +1084,10 @@ class O3rCapitalizePipe {
|
|
|
1064
1084
|
const firstLetter = val && val.charAt(0);
|
|
1065
1085
|
return firstLetter ? firstLetter.toUpperCase() + val.slice(1) : value;
|
|
1066
1086
|
}
|
|
1067
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1068
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.
|
|
1087
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: O3rCapitalizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1088
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: O3rCapitalizePipe, isStandalone: true, name: "o3rCapitalize" }); }
|
|
1069
1089
|
}
|
|
1070
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1090
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: O3rCapitalizePipe, decorators: [{
|
|
1071
1091
|
type: Pipe,
|
|
1072
1092
|
args: [{ name: 'o3rCapitalize', standalone: true }]
|
|
1073
1093
|
}] });
|
|
@@ -1075,10 +1095,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
1075
1095
|
* @deprecated please use O3rCapitalizePipe, will be removed in v12.
|
|
1076
1096
|
*/
|
|
1077
1097
|
class CapitalizePipe extends O3rCapitalizePipe {
|
|
1078
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1079
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.
|
|
1098
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: CapitalizePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1099
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: CapitalizePipe, name: "capitalize" }); }
|
|
1080
1100
|
}
|
|
1081
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: CapitalizePipe, decorators: [{
|
|
1082
1102
|
type: Pipe,
|
|
1083
1103
|
args: [{ name: 'capitalize' }]
|
|
1084
1104
|
}] });
|
|
@@ -1087,11 +1107,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
1087
1107
|
* @deprecated please use O3rCapitalizePipe, will be removed in v12.
|
|
1088
1108
|
*/
|
|
1089
1109
|
class CapitalizePipeModule {
|
|
1090
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1091
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.
|
|
1092
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.
|
|
1110
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: CapitalizePipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1111
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: CapitalizePipeModule, declarations: [CapitalizePipe], exports: [CapitalizePipe] }); }
|
|
1112
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: CapitalizePipeModule }); }
|
|
1093
1113
|
}
|
|
1094
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: CapitalizePipeModule, decorators: [{
|
|
1095
1115
|
type: NgModule,
|
|
1096
1116
|
args: [{
|
|
1097
1117
|
declarations: [CapitalizePipe],
|
|
@@ -1173,10 +1193,10 @@ class O3rDurationPipe {
|
|
|
1173
1193
|
return result.replace(matchedPatternToReplace, padded);
|
|
1174
1194
|
}, pattern);
|
|
1175
1195
|
}
|
|
1176
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1177
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.
|
|
1196
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: O3rDurationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1197
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: O3rDurationPipe, isStandalone: true, name: "o3rDuration" }); }
|
|
1178
1198
|
}
|
|
1179
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: O3rDurationPipe, decorators: [{
|
|
1180
1200
|
type: Pipe,
|
|
1181
1201
|
args: [{ name: 'o3rDuration', standalone: true }]
|
|
1182
1202
|
}] });
|
|
@@ -1185,10 +1205,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
1185
1205
|
* @deprecated please use O3rDurationPipe, will be removed in v12.
|
|
1186
1206
|
*/
|
|
1187
1207
|
class DurationPipe extends O3rDurationPipe {
|
|
1188
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1189
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.
|
|
1208
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: DurationPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1209
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: DurationPipe, name: "duration" }); }
|
|
1190
1210
|
}
|
|
1191
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: DurationPipe, decorators: [{
|
|
1192
1212
|
type: Pipe,
|
|
1193
1213
|
args: [{ name: 'duration' }]
|
|
1194
1214
|
}] });
|
|
@@ -1197,11 +1217,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
1197
1217
|
* @deprecated please use O3rDurationPipe, will be removed in v12.
|
|
1198
1218
|
*/
|
|
1199
1219
|
class DurationPipeModule {
|
|
1200
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1201
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.
|
|
1202
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.
|
|
1220
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: DurationPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1221
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: DurationPipeModule, declarations: [DurationPipe], exports: [DurationPipe] }); }
|
|
1222
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: DurationPipeModule }); }
|
|
1203
1223
|
}
|
|
1204
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: DurationPipeModule, decorators: [{
|
|
1205
1225
|
type: NgModule,
|
|
1206
1226
|
args: [{
|
|
1207
1227
|
declarations: [DurationPipe],
|
|
@@ -1213,10 +1233,10 @@ class O3rKeepWhiteSpacePipe {
|
|
|
1213
1233
|
transform(value) {
|
|
1214
1234
|
return value.replace(/\s/g, ' ');
|
|
1215
1235
|
}
|
|
1216
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1217
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.
|
|
1236
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: O3rKeepWhiteSpacePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1237
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: O3rKeepWhiteSpacePipe, name: "o3rKeepWhiteSpace" }); }
|
|
1218
1238
|
}
|
|
1219
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: O3rKeepWhiteSpacePipe, decorators: [{
|
|
1220
1240
|
type: Pipe,
|
|
1221
1241
|
args: [{
|
|
1222
1242
|
name: 'o3rKeepWhiteSpace'
|
|
@@ -1226,10 +1246,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
1226
1246
|
* @deprecated please use O3rKeepWhiteSpacePipe, will be removed in v12.
|
|
1227
1247
|
*/
|
|
1228
1248
|
class KeepWhiteSpacePipe extends O3rKeepWhiteSpacePipe {
|
|
1229
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1230
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.
|
|
1249
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: KeepWhiteSpacePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1250
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: KeepWhiteSpacePipe, name: "keepWhiteSpace" }); }
|
|
1231
1251
|
}
|
|
1232
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: KeepWhiteSpacePipe, decorators: [{
|
|
1233
1253
|
type: Pipe,
|
|
1234
1254
|
args: [{
|
|
1235
1255
|
name: 'keepWhiteSpace'
|
|
@@ -1240,11 +1260,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
1240
1260
|
* @deprecated please use O3rKeepWhiteSpacePipe, will be removed in v12.
|
|
1241
1261
|
*/
|
|
1242
1262
|
class KeepWhiteSpacePipeModule {
|
|
1243
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1244
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.
|
|
1245
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.
|
|
1263
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: KeepWhiteSpacePipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1264
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: KeepWhiteSpacePipeModule, declarations: [KeepWhiteSpacePipe], exports: [KeepWhiteSpacePipe] }); }
|
|
1265
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: KeepWhiteSpacePipeModule }); }
|
|
1246
1266
|
}
|
|
1247
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1267
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: KeepWhiteSpacePipeModule, decorators: [{
|
|
1248
1268
|
type: NgModule,
|
|
1249
1269
|
args: [{
|
|
1250
1270
|
declarations: [KeepWhiteSpacePipe],
|
|
@@ -1263,10 +1283,10 @@ class O3rReplaceWithBoldPipe {
|
|
|
1263
1283
|
return value;
|
|
1264
1284
|
}
|
|
1265
1285
|
}
|
|
1266
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1267
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.
|
|
1286
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: O3rReplaceWithBoldPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1287
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: O3rReplaceWithBoldPipe, isStandalone: true, name: "o3rReplaceWithBold" }); }
|
|
1268
1288
|
}
|
|
1269
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1289
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: O3rReplaceWithBoldPipe, decorators: [{
|
|
1270
1290
|
type: Pipe,
|
|
1271
1291
|
args: [{
|
|
1272
1292
|
name: 'o3rReplaceWithBold',
|
|
@@ -1280,10 +1300,10 @@ class ReplaceWithBoldPipe extends O3rReplaceWithBoldPipe {
|
|
|
1280
1300
|
escapeRegExp(str) {
|
|
1281
1301
|
return escapeRegExp(str);
|
|
1282
1302
|
}
|
|
1283
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1284
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.
|
|
1303
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ReplaceWithBoldPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1304
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: ReplaceWithBoldPipe, name: "replaceWithBold" }); }
|
|
1285
1305
|
}
|
|
1286
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1306
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ReplaceWithBoldPipe, decorators: [{
|
|
1287
1307
|
type: Pipe,
|
|
1288
1308
|
args: [{
|
|
1289
1309
|
name: 'replaceWithBold'
|
|
@@ -1294,11 +1314,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
1294
1314
|
* @deprecated please use O3rReplaceWithBoldPipe, will be removed in v12.
|
|
1295
1315
|
*/
|
|
1296
1316
|
class ReplaceWithBoldPipeModule {
|
|
1297
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1298
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.
|
|
1299
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.
|
|
1317
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ReplaceWithBoldPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1318
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: ReplaceWithBoldPipeModule, declarations: [ReplaceWithBoldPipe], exports: [ReplaceWithBoldPipe] }); }
|
|
1319
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ReplaceWithBoldPipeModule }); }
|
|
1300
1320
|
}
|
|
1301
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1321
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ReplaceWithBoldPipeModule, decorators: [{
|
|
1302
1322
|
type: NgModule,
|
|
1303
1323
|
args: [{
|
|
1304
1324
|
declarations: [ReplaceWithBoldPipe],
|
|
@@ -1324,6 +1344,7 @@ class PlaceholderComponent {
|
|
|
1324
1344
|
this.id$ = new BehaviorSubject(undefined);
|
|
1325
1345
|
this.afterViewInit$ = new Subject();
|
|
1326
1346
|
this.messages$ = new ReplaySubject(1);
|
|
1347
|
+
this.mode = this.store.selectSignal(selectPlaceholderTemplateMode);
|
|
1327
1348
|
}
|
|
1328
1349
|
/** @inheritdoc */
|
|
1329
1350
|
ngOnInit() {
|
|
@@ -1369,34 +1390,31 @@ class PlaceholderComponent {
|
|
|
1369
1390
|
this.afterViewInit$.complete();
|
|
1370
1391
|
this.subscription.unsubscribe();
|
|
1371
1392
|
}
|
|
1372
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1373
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1393
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1394
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.6", type: PlaceholderComponent, selector: "o3r-placeholder", inputs: { id: "id" }, host: { properties: { "class.debug": "mode() === 'debug'" } }, ngImport: i0, template: "<ng-template #projection>\n <ng-content></ng-content>\n</ng-template>\n@switch (mode()) {\n @case ('debug') {\n <span class=\"placehoder-id\">{{ id$ | async }}</span>\n }\n @case ('pending') {\n <ng-container *ngTemplateOutlet=\"projection\" />\n }\n @case ('normal') {\n @if (isPending) {\n <ng-container *ngTemplateOutlet=\"projection\" />\n } @else {\n <div [innerHTML]=\"template\"></div>\n }\n }\n}\n", styles: [".debug{padding:15px;text-align:center;border:2px dashed var(--o3r-placeholder-debug-color, #a65c27);border-radius:10px;width:100%;background:var(--o3r-placeholder-background, #fff2ea);border-style:dashed;color:var(--o3r-placeholder-debug-color, #a65c27);font-size:larger}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1374
1395
|
}
|
|
1375
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1396
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderComponent, decorators: [{
|
|
1376
1397
|
type: Component,
|
|
1377
|
-
args: [{
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
encapsulation: ViewEncapsulation.None
|
|
1383
|
-
}]
|
|
1384
|
-
}], ctorParameters: () => [{ type: i1$1.Store }, { type: i0.ChangeDetectorRef }], propDecorators: { id: [{
|
|
1398
|
+
args: [{ selector: 'o3r-placeholder', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
1399
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1400
|
+
'[class.debug]': `mode() === 'debug'`
|
|
1401
|
+
}, template: "<ng-template #projection>\n <ng-content></ng-content>\n</ng-template>\n@switch (mode()) {\n @case ('debug') {\n <span class=\"placehoder-id\">{{ id$ | async }}</span>\n }\n @case ('pending') {\n <ng-container *ngTemplateOutlet=\"projection\" />\n }\n @case ('normal') {\n @if (isPending) {\n <ng-container *ngTemplateOutlet=\"projection\" />\n } @else {\n <div [innerHTML]=\"template\"></div>\n }\n }\n}\n", styles: [".debug{padding:15px;text-align:center;border:2px dashed var(--o3r-placeholder-debug-color, #a65c27);border-radius:10px;width:100%;background:var(--o3r-placeholder-background, #fff2ea);border-style:dashed;color:var(--o3r-placeholder-debug-color, #a65c27);font-size:larger}\n"] }]
|
|
1402
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i0.ChangeDetectorRef }], propDecorators: { id: [{
|
|
1385
1403
|
type: Input
|
|
1386
1404
|
}] } });
|
|
1387
1405
|
|
|
1388
1406
|
class PlaceholderModule {
|
|
1389
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1390
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.
|
|
1407
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1408
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderModule, declarations: [PlaceholderComponent], imports: [CommonModule,
|
|
1391
1409
|
StoreModule,
|
|
1392
1410
|
PlaceholderTemplateStoreModule,
|
|
1393
1411
|
PlaceholderRequestStoreModule], exports: [PlaceholderComponent] }); }
|
|
1394
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.
|
|
1412
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderModule, imports: [CommonModule,
|
|
1395
1413
|
StoreModule,
|
|
1396
1414
|
PlaceholderTemplateStoreModule,
|
|
1397
1415
|
PlaceholderRequestStoreModule] }); }
|
|
1398
1416
|
}
|
|
1399
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1417
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PlaceholderModule, decorators: [{
|
|
1400
1418
|
type: NgModule,
|
|
1401
1419
|
args: [{
|
|
1402
1420
|
imports: [
|
|
@@ -1414,5 +1432,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
1414
1432
|
* Generated bundle index. Do not edit.
|
|
1415
1433
|
*/
|
|
1416
1434
|
|
|
1417
|
-
export { C11N_PRESENTERS_MAP_TOKEN, C11N_REGISTER_FUNC_TOKEN, C11nDirective, C11nMockModule, C11nMockService, C11nModule, C11nService, CapitalizePipe, CapitalizePipeModule, ComponentsDevtoolsMessageService, ComponentsDevtoolsModule, DurationPipe, DurationPipeModule, INSPECTOR_CLASS, KeepWhiteSpacePipe, KeepWhiteSpacePipeModule, MockC11nDirective, O3rCapitalizePipe, O3rDurationPipe, O3rKeepWhiteSpacePipe, O3rReplaceWithBoldPipe, OTTER_COMPONENTS_DEVTOOLS_DEFAULT_OPTIONS, OTTER_COMPONENTS_DEVTOOLS_OPTIONS, OtterInspectorService, PLACEHOLDER_REQUEST_REDUCER_TOKEN, PLACEHOLDER_REQUEST_STORE_NAME, PLACEHOLDER_TEMPLATE_REDUCER_TOKEN, PLACEHOLDER_TEMPLATE_STORE_NAME, PlaceholderComponent, PlaceholderModule, PlaceholderRequestStoreModule, PlaceholderTemplateStoreModule, ReplaceWithBoldPipe, ReplaceWithBoldPipeModule, cancelPlaceholderRequest, createC11nService, deletePlaceholderTemplateEntity, failPlaceholderRequestEntity, getAnalyticEvents, getAnalyticEventsRec, getConfigId, getDefaultPlaceholderTemplateReducer, getDefaultplaceholderRequestReducer, getOtterLikeComponentInfo, getTranslations, getTranslationsRec, isComponentsMessage, isContainer, lazyArray, placeholderRequestAdapter, placeholderRequestInitialState, placeholderRequestReducer, placeholderRequestReducerFeatures, placeholderRequestStorageDeserializer, placeholderRequestStorageSerializer, placeholderRequestStorageSync, placeholderTemplateAdapter, placeholderTemplateInitialState, placeholderTemplateReducer, placeholderTemplateReducerFeatures, placeholderTemplateStorageDeserializer, placeholderTemplateStorageSync, registerCustomComponent, selectPlaceholderRenderedTemplates, selectPlaceholderRequestEntities, selectPlaceholderRequestEntityUsage, selectPlaceholderRequestState, selectPlaceholderTemplateEntities, selectPlaceholderTemplateEntity, selectPlaceholderTemplateState, selectSortedTemplates, setPlaceholderRequestEntityFromUrl, setPlaceholderTemplateEntity, updatePlaceholderRequestEntity, updatePlaceholderRequestEntitySync };
|
|
1435
|
+
export { C11N_PRESENTERS_MAP_TOKEN, C11N_REGISTER_FUNC_TOKEN, C11nDirective, C11nMockModule, C11nMockService, C11nModule, C11nService, CapitalizePipe, CapitalizePipeModule, ComponentsDevtoolsMessageService, ComponentsDevtoolsModule, DurationPipe, DurationPipeModule, INSPECTOR_CLASS, KeepWhiteSpacePipe, KeepWhiteSpacePipeModule, MockC11nDirective, O3rCapitalizePipe, O3rDurationPipe, O3rKeepWhiteSpacePipe, O3rReplaceWithBoldPipe, OTTER_COMPONENTS_DEVTOOLS_DEFAULT_OPTIONS, OTTER_COMPONENTS_DEVTOOLS_OPTIONS, OtterInspectorService, PLACEHOLDER_REQUEST_REDUCER_TOKEN, PLACEHOLDER_REQUEST_STORE_NAME, PLACEHOLDER_TEMPLATE_REDUCER_TOKEN, PLACEHOLDER_TEMPLATE_STORE_NAME, PlaceholderComponent, PlaceholderModule, PlaceholderRequestStoreModule, PlaceholderTemplateStoreModule, ReplaceWithBoldPipe, ReplaceWithBoldPipeModule, cancelPlaceholderRequest, createC11nService, deletePlaceholderTemplateEntity, failPlaceholderRequestEntity, getAnalyticEvents, getAnalyticEventsRec, getConfigId, getDefaultPlaceholderTemplateReducer, getDefaultplaceholderRequestReducer, getOtterLikeComponentInfo, getTranslations, getTranslationsRec, isComponentsMessage, isContainer, lazyArray, placeholderRequestAdapter, placeholderRequestInitialState, placeholderRequestReducer, placeholderRequestReducerFeatures, placeholderRequestStorageDeserializer, placeholderRequestStorageSerializer, placeholderRequestStorageSync, placeholderTemplateAdapter, placeholderTemplateInitialState, placeholderTemplateReducer, placeholderTemplateReducerFeatures, placeholderTemplateStorageDeserializer, placeholderTemplateStorageSync, registerCustomComponent, selectPlaceholderRenderedTemplates, selectPlaceholderRequestEntities, selectPlaceholderRequestEntityUsage, selectPlaceholderRequestState, selectPlaceholderTemplateEntities, selectPlaceholderTemplateEntity, selectPlaceholderTemplateMode, selectPlaceholderTemplateState, selectSortedTemplates, setPlaceholderRequestEntityFromUrl, setPlaceholderTemplateEntity, togglePlaceholderModeTemplate, updatePlaceholderRequestEntity, updatePlaceholderRequestEntitySync };
|
|
1418
1436
|
//# sourceMappingURL=o3r-components.mjs.map
|