@cityway/basic-ui 1.0.2-beta001 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +2 -1
  2. package/cityway-basic-ui-1.0.2.tgz +0 -0
  3. package/fesm2022/cityway-basic-ui.mjs +194 -849
  4. package/fesm2022/cityway-basic-ui.mjs.map +1 -1
  5. package/index.d.ts +42 -574
  6. package/lib/assets/fonts/nunito/_nunito.scss +10 -10
  7. package/lib/assets/styles/scss/_custom-bootstrap.scss +1 -1
  8. package/lib/assets/styles/scss/bootstrap/_breadcrumb.scss +6 -6
  9. package/lib/assets/styles/scss/cw-ds/_reboot.scss +11 -3
  10. package/lib/assets/styles/scss/cw-ds/_root-bo.scss +0 -1
  11. package/lib/assets/styles/scss/cw-ds/_root-fo.scss +0 -1
  12. package/lib/assets/styles/scss/cw-ds/components/_alert.scss +10 -10
  13. package/lib/assets/styles/scss/cw-ds/components/_badge.scss +22 -22
  14. package/lib/assets/styles/scss/cw-ds/components/_close.scss +0 -5
  15. package/lib/assets/styles/scss/cw-ds/components/_icon-notification.scss +10 -10
  16. package/lib/assets/styles/scss/cw-ds/components/_icon.scss +9 -35
  17. package/lib/assets/styles/scss/cw-ds/components/_numerical-range.scss +4 -4
  18. package/lib/assets/styles/scss/cw-ds/components/{tab/_tab-fo.scss → _tab.scss} +4 -6
  19. package/lib/assets/styles/scss/cw-ds/components/button/_button-bo-variant.scss +21 -87
  20. package/lib/assets/styles/scss/cw-ds/components/button/_button-fo-variant.scss +87 -21
  21. package/lib/assets/styles/scss/cw-ds/components/button/_button.scss +1 -11
  22. package/lib/assets/styles/scss/cw-ds/helpers/_spinner.scss +9 -15
  23. package/lib/assets/styles/scss/cw-ds/mixins/_type.scss +0 -17
  24. package/lib/assets/styles/scss/cw-ds/utilities/_flex.scss +0 -4
  25. package/lib/assets/styles/scss/cw-ds/utilities/_type.scss +3 -0
  26. package/lib/assets/styles/scss/styles-bo.scss +10 -18
  27. package/lib/assets/styles/scss/styles-fo.scss +10 -18
  28. package/package.json +4 -3
  29. package/styles-bo.min.css +5 -0
  30. package/styles-bo.min.css.map +1 -0
  31. package/styles-fo.min.css +5 -0
  32. package/styles-fo.min.css.map +1 -0
  33. package/cityway-basic-ui-1.0.2-beta001.tgz +0 -0
  34. package/lib/assets/icons/sprite.ids.txt +0 -467
  35. package/lib/assets/icons/sprite.preview.html +0 -4966
  36. package/lib/assets/icons/sprite.svg +0 -1404
  37. package/lib/assets/styles/scss/cw-ds/components/_accordion.scss +0 -35
  38. package/lib/assets/styles/scss/cw-ds/components/_modal.scss +0 -161
  39. package/lib/assets/styles/scss/cw-ds/components/tab/_tab-bo.scss +0 -96
  40. package/lib/assets/styles/scss/cw-ds/helpers/_skeleton.scss +0 -67
  41. package/lib/assets/styles/scss/cw-ds/utilities/_breakpoints.scss +0 -30
  42. package/lib/assets/styles/scss/cw-ds/utilities/_grid.scss +0 -65
  43. package/lib/assets/styles/scss/cw-ds/utilities/type/_type-bo.scss +0 -40
  44. package/lib/assets/styles/scss/cw-ds/utilities/type/_type-fo.scss +0 -1
  45. package/lib/assets/styles/scss/cw-ds/utilities/type/_type.scss +0 -18
  46. package/styles/styles-bo.min.css +0 -5
  47. package/styles/styles-bo.min.css.map +0 -1
  48. package/styles/styles-fo.min.css +0 -5
  49. package/styles/styles-fo.min.css.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import * as i1 from '@angular/common';
2
- import { CommonModule, NgClass, NgTemplateOutlet } from '@angular/common';
2
+ import { CommonModule, NgTemplateOutlet, NgClass } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { inject, ElementRef, signal, EventEmitter, effect, Output, Input, Directive, HostBinding, Component, ViewChild, ContentChildren, Injectable, HostListener, Renderer2, output, TemplateRef, ContentChild, ApplicationRef, Injector, createComponent, ViewChildren, Pipe } from '@angular/core';
4
+ import { inject, ElementRef, signal, EventEmitter, effect, Output, Input, Directive, HostBinding, Component, ViewChild, ContentChildren, Injectable, HostListener, Renderer2, output, TemplateRef, ContentChild, ViewChildren, Pipe } from '@angular/core';
5
5
  import * as i2 from '@ngx-translate/core';
6
6
  import { TranslateModule, TranslateService, TranslatePipe } from '@ngx-translate/core';
7
7
  import { BehaviorSubject, fromEvent } from 'rxjs';
@@ -9,10 +9,11 @@ import * as i4 from '@angular-slider/ngx-slider';
9
9
  import { NgxSliderModule } from '@angular-slider/ngx-slider';
10
10
  import * as i2$1 from '@angular/forms';
11
11
  import { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
12
+ import * as i1$1 from '@ng-bootstrap/ng-bootstrap';
12
13
  import { NgbDropdownModule, NgbPopover } from '@ng-bootstrap/ng-bootstrap';
13
14
  import * as i3 from '@ng-select/ng-select';
14
15
  import { NgSelectModule } from '@ng-select/ng-select';
15
- import * as i1$1 from '@angular/router';
16
+ import * as i1$2 from '@angular/router';
16
17
 
17
18
  class CollapseDirective {
18
19
  set cwCollapse(value) {
@@ -57,10 +58,10 @@ class CollapseDirective {
57
58
  hide() {
58
59
  this.collapsedSignal.set(true);
59
60
  }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CollapseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
61
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: CollapseDirective, isStandalone: true, selector: "[cwCollapse]", inputs: { cwCollapse: "cwCollapse" }, outputs: { shown: "shown", hidden: "hidden" }, exportAs: ["cwCollapse"], ngImport: i0 }); }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CollapseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
62
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: CollapseDirective, isStandalone: true, selector: "[cwCollapse]", inputs: { cwCollapse: "cwCollapse" }, outputs: { shown: "shown", hidden: "hidden" }, exportAs: ["cwCollapse"], ngImport: i0 }); }
62
63
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CollapseDirective, decorators: [{
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CollapseDirective, decorators: [{
64
65
  type: Directive,
65
66
  args: [{
66
67
  selector: '[cwCollapse]',
@@ -101,509 +102,40 @@ var IconUiTypeEnum;
101
102
  IconUiTypeEnum["light"] = "light";
102
103
  IconUiTypeEnum["primary"] = "primary";
103
104
  IconUiTypeEnum["invert"] = "invert";
104
- IconUiTypeEnum["success"] = "success";
105
- IconUiTypeEnum["info"] = "info";
106
- IconUiTypeEnum["warning"] = "warning";
107
- IconUiTypeEnum["danger"] = "danger";
108
- IconUiTypeEnum["neutral"] = "neutral";
109
105
  })(IconUiTypeEnum || (IconUiTypeEnum = {}));
110
106
 
111
- // AUTO-GENERATED — ne pas éditer manuellement
112
- // Regénérer avec : node build-sprite.mjs
113
- var SpriteIconEnum;
114
- (function (SpriteIconEnum) {
115
- SpriteIconEnum["accessAccompaniedHearingImpairedUser"] = "accessAccompaniedHearingImpairedUser";
116
- SpriteIconEnum["accessAccompaniedLearningImpairedUser"] = "accessAccompaniedLearningImpairedUser";
117
- SpriteIconEnum["accessAccompaniedVisuallyChallengedUser"] = "accessAccompaniedVisuallyChallengedUser";
118
- SpriteIconEnum["accessAccompaniedWheelchairUser"] = "accessAccompaniedWheelchairUser";
119
- SpriteIconEnum["accessHearingImpairedUser"] = "accessHearingImpairedUser";
120
- SpriteIconEnum["accessLearningImpairedUser"] = "accessLearningImpairedUser";
121
- SpriteIconEnum["accessVisuallyChallengedUser"] = "accessVisuallyChallengedUser";
122
- SpriteIconEnum["accessWheelchairUser"] = "accessWheelchairUser";
123
- SpriteIconEnum["accountConfidentialitySettings"] = "accountConfidentialitySettings";
124
- SpriteIconEnum["accountConsumption"] = "accountConsumption";
125
- SpriteIconEnum["accountCredits"] = "accountCredits";
126
- SpriteIconEnum["accountHelp"] = "accountHelp";
127
- SpriteIconEnum["accountLogout"] = "accountLogout";
128
- SpriteIconEnum["accountServices"] = "accountServices";
129
- SpriteIconEnum["addBag"] = "addBag";
130
- SpriteIconEnum["addCard"] = "addCard";
131
- SpriteIconEnum["addPassenger"] = "addPassenger";
132
- SpriteIconEnum["airQuality"] = "airQuality";
133
- SpriteIconEnum["alertHelp"] = "alertHelp";
134
- SpriteIconEnum["alertHelp1"] = "alertHelp1";
135
- SpriteIconEnum["alertWarning"] = "alertWarning";
136
- SpriteIconEnum["americanExpress"] = "americanExpress";
137
- SpriteIconEnum["baby"] = "baby";
138
- SpriteIconEnum["bad"] = "bad";
139
- SpriteIconEnum["bmp"] = "bmp";
140
- SpriteIconEnum["boardingForbidden"] = "boardingForbidden";
141
- SpriteIconEnum["boardingOnly"] = "boardingOnly";
142
- SpriteIconEnum["border"] = "border";
143
- SpriteIconEnum["card"] = "card";
144
- SpriteIconEnum["carPlate"] = "carPlate";
145
- SpriteIconEnum["cash"] = "cash";
146
- SpriteIconEnum["chat"] = "chat";
147
- SpriteIconEnum["codes"] = "codes";
148
- SpriteIconEnum["computer"] = "computer";
149
- SpriteIconEnum["copyright"] = "copyright";
150
- SpriteIconEnum["crowdsourcingAccident"] = "crowdsourcingAccident";
151
- SpriteIconEnum["crowdsourcingBtn"] = "crowdsourcingBtn";
152
- SpriteIconEnum["crowdsourcingBusShelter"] = "crowdsourcingBusShelter";
153
- SpriteIconEnum["crowdsourcingCrowded"] = "crowdsourcingCrowded";
154
- SpriteIconEnum["crowdsourcingDegradation"] = "crowdsourcingDegradation";
155
- SpriteIconEnum["crowdsourcingDelay"] = "crowdsourcingDelay";
156
- SpriteIconEnum["crowdsourcingEscalator"] = "crowdsourcingEscalator";
157
- SpriteIconEnum["crowdsourcingInvalidate"] = "crowdsourcingInvalidate";
158
- SpriteIconEnum["crowdsourcingLift"] = "crowdsourcingLift";
159
- SpriteIconEnum["crowdsourcingMove"] = "crowdsourcingMove";
160
- SpriteIconEnum["crowdsourcingReport"] = "crowdsourcingReport";
161
- SpriteIconEnum["crowdsourcingSign"] = "crowdsourcingSign";
162
- SpriteIconEnum["crowdsourcingStopRelocated"] = "crowdsourcingStopRelocated";
163
- SpriteIconEnum["crowdsourcingTicket"] = "crowdsourcingTicket";
164
- SpriteIconEnum["crowdsourcingTrafficJam"] = "crowdsourcingTrafficJam";
165
- SpriteIconEnum["crowdsourcingValidate"] = "crowdsourcingValidate";
166
- SpriteIconEnum["crowdsourcingVehicle"] = "crowdsourcingVehicle";
167
- SpriteIconEnum["crowdsourcingWork"] = "crowdsourcingWork";
168
- SpriteIconEnum["dataProtection"] = "dataProtection";
169
- SpriteIconEnum["diamond"] = "diamond";
170
- SpriteIconEnum["doc"] = "doc";
171
- SpriteIconEnum["down"] = "down";
172
- SpriteIconEnum["driver"] = "driver";
173
- SpriteIconEnum["dropOffForbidden"] = "dropOffForbidden";
174
- SpriteIconEnum["dropOffOnly"] = "dropOffOnly";
175
- SpriteIconEnum["error"] = "error";
176
- SpriteIconEnum["errorCard"] = "errorCard";
177
- SpriteIconEnum["eshop"] = "eshop";
178
- SpriteIconEnum["event"] = "event";
179
- SpriteIconEnum["eventChangeRoad"] = "eventChangeRoad";
180
- SpriteIconEnum["eventCloud"] = "eventCloud";
181
- SpriteIconEnum["eventColClose"] = "eventColClose";
182
- SpriteIconEnum["eventColOpen"] = "eventColOpen";
183
- SpriteIconEnum["eventCommercial"] = "eventCommercial";
184
- SpriteIconEnum["eventDisrupt"] = "eventDisrupt";
185
- SpriteIconEnum["eventDisruptionEnd"] = "eventDisruptionEnd";
186
- SpriteIconEnum["eventFog"] = "eventFog";
187
- SpriteIconEnum["eventIce"] = "eventIce";
188
- SpriteIconEnum["eventLine"] = "eventLine";
189
- SpriteIconEnum["eventMarch"] = "eventMarch";
190
- SpriteIconEnum["eventMiscHour"] = "eventMiscHour";
191
- SpriteIconEnum["eventRain"] = "eventRain";
192
- SpriteIconEnum["eventSnow"] = "eventSnow";
193
- SpriteIconEnum["eventSnow2"] = "eventSnow2";
194
- SpriteIconEnum["eventSocialMovement"] = "eventSocialMovement";
195
- SpriteIconEnum["eventSun"] = "eventSun";
196
- SpriteIconEnum["eventTrafficAccident"] = "eventTrafficAccident";
197
- SpriteIconEnum["eventTrafficBlockedroad"] = "eventTrafficBlockedroad";
198
- SpriteIconEnum["eventTrafficCongestion"] = "eventTrafficCongestion";
199
- SpriteIconEnum["eventTrafficDisabledvehicle"] = "eventTrafficDisabledvehicle";
200
- SpriteIconEnum["eventTrafficMiscellaneous"] = "eventTrafficMiscellaneous";
201
- SpriteIconEnum["eventTrafficObstruction"] = "eventTrafficObstruction";
202
- SpriteIconEnum["eventTrafficSportevent"] = "eventTrafficSportevent";
203
- SpriteIconEnum["eventTrafficUndefined"] = "eventTrafficUndefined";
204
- SpriteIconEnum["eventTrafficWeather"] = "eventTrafficWeather";
205
- SpriteIconEnum["eventWarning"] = "eventWarning";
206
- SpriteIconEnum["eventWeather"] = "eventWeather";
207
- SpriteIconEnum["eventWind"] = "eventWind";
208
- SpriteIconEnum["fail"] = "fail";
209
- SpriteIconEnum["favorite"] = "favorite";
210
- SpriteIconEnum["favoriteCard"] = "favoriteCard";
211
- SpriteIconEnum["favoriteLine"] = "favoriteLine";
212
- SpriteIconEnum["file"] = "file";
213
- SpriteIconEnum["free"] = "free";
214
- SpriteIconEnum["from"] = "from";
215
- SpriteIconEnum["gif"] = "gif";
216
- SpriteIconEnum["good"] = "good";
217
- SpriteIconEnum["handCard"] = "handCard";
218
- SpriteIconEnum["headphone"] = "headphone";
219
- SpriteIconEnum["home"] = "home";
220
- SpriteIconEnum["homeLine"] = "homeLine";
221
- SpriteIconEnum["hotline"] = "hotline";
222
- SpriteIconEnum["info"] = "info";
223
- SpriteIconEnum["interactiveMap"] = "interactiveMap";
224
- SpriteIconEnum["interactiveMapLine"] = "interactiveMapLine";
225
- SpriteIconEnum["invert"] = "invert";
226
- SpriteIconEnum["journey"] = "journey";
227
- SpriteIconEnum["jpg"] = "jpg";
228
- SpriteIconEnum["kcal"] = "kcal";
229
- SpriteIconEnum["law"] = "law";
230
- SpriteIconEnum["left"] = "left";
231
- SpriteIconEnum["left1"] = "left1";
232
- SpriteIconEnum["loading"] = "loading";
233
- SpriteIconEnum["mailAlternate"] = "mailAlternate";
234
- SpriteIconEnum["mapCenterMap"] = "mapCenterMap";
235
- SpriteIconEnum["mapChooseMap"] = "mapChooseMap";
236
- SpriteIconEnum["mapChooseMapIos"] = "mapChooseMapIos";
237
- SpriteIconEnum["mapDeparture"] = "mapDeparture";
238
- SpriteIconEnum["mapDisplacement"] = "mapDisplacement";
239
- SpriteIconEnum["mapEnd"] = "mapEnd";
240
- SpriteIconEnum["mapFullScreen"] = "mapFullScreen";
241
- SpriteIconEnum["mapFullScreenReturn"] = "mapFullScreenReturn";
242
- SpriteIconEnum["mapGeolocationActive"] = "mapGeolocationActive";
243
- SpriteIconEnum["mapGeolocationInactive"] = "mapGeolocationInactive";
244
- SpriteIconEnum["mapItinerary"] = "mapItinerary";
245
- SpriteIconEnum["mapLocation"] = "mapLocation";
246
- SpriteIconEnum["mapMap"] = "mapMap";
247
- SpriteIconEnum["mapMap1"] = "mapMap1";
248
- SpriteIconEnum["mapMap2"] = "mapMap2";
249
- SpriteIconEnum["mapMap3"] = "mapMap3";
250
- SpriteIconEnum["mapMove"] = "mapMove";
251
- SpriteIconEnum["mapNavigation"] = "mapNavigation";
252
- SpriteIconEnum["mapNearest"] = "mapNearest";
253
- SpriteIconEnum["mapPin"] = "mapPin";
254
- SpriteIconEnum["mapPin2"] = "mapPin2";
255
- SpriteIconEnum["mapStop"] = "mapStop";
256
- SpriteIconEnum["mapStreetView"] = "mapStreetView";
257
- SpriteIconEnum["mapWorld"] = "mapWorld";
258
- SpriteIconEnum["medium"] = "medium";
259
- SpriteIconEnum["meeting"] = "meeting";
260
- SpriteIconEnum["menu"] = "menu";
261
- SpriteIconEnum["menuLine"] = "menuLine";
262
- SpriteIconEnum["message"] = "message";
263
- SpriteIconEnum["messageActivateAccount"] = "messageActivateAccount";
264
- SpriteIconEnum["messageAlert"] = "messageAlert";
265
- SpriteIconEnum["messageFail"] = "messageFail";
266
- SpriteIconEnum["messageInfo"] = "messageInfo";
267
- SpriteIconEnum["messageInfo2"] = "messageInfo2";
268
- SpriteIconEnum["messageNotification"] = "messageNotification";
269
- SpriteIconEnum["messageNoTripFavoris"] = "messageNoTripFavoris";
270
- SpriteIconEnum["messageOk"] = "messageOk";
271
- SpriteIconEnum["messageWarning"] = "messageWarning";
272
- SpriteIconEnum["messengerAlternate"] = "messengerAlternate";
273
- SpriteIconEnum["miscAccess"] = "miscAccess";
274
- SpriteIconEnum["miscCamcorder"] = "miscCamcorder";
275
- SpriteIconEnum["miscDiscover"] = "miscDiscover";
276
- SpriteIconEnum["miscHealth"] = "miscHealth";
277
- SpriteIconEnum["miscNews"] = "miscNews";
278
- SpriteIconEnum["miscNewsletter"] = "miscNewsletter";
279
- SpriteIconEnum["miscRegistered"] = "miscRegistered";
280
- SpriteIconEnum["miscRoute"] = "miscRoute";
281
- SpriteIconEnum["miscRoute2"] = "miscRoute2";
282
- SpriteIconEnum["miscRoute3"] = "miscRoute3";
283
- SpriteIconEnum["miscRoute4"] = "miscRoute4";
284
- SpriteIconEnum["miscTicket1"] = "miscTicket1";
285
- SpriteIconEnum["miscTicket2"] = "miscTicket2";
286
- SpriteIconEnum["miscTicket3"] = "miscTicket3";
287
- SpriteIconEnum["miscVia"] = "miscVia";
288
- SpriteIconEnum["modeBike"] = "modeBike";
289
- SpriteIconEnum["modeBoat"] = "modeBoat";
290
- SpriteIconEnum["modeBus"] = "modeBus";
291
- SpriteIconEnum["modeBusPmr"] = "modeBusPmr";
292
- SpriteIconEnum["modeCar"] = "modeCar";
293
- SpriteIconEnum["modeCarpooling"] = "modeCarpooling";
294
- SpriteIconEnum["modeCarsharing"] = "modeCarsharing";
295
- SpriteIconEnum["modeCoach"] = "modeCoach";
296
- SpriteIconEnum["modeCyclopouss"] = "modeCyclopouss";
297
- SpriteIconEnum["modeDoubling"] = "modeDoubling";
298
- SpriteIconEnum["modeEBus"] = "modeEBus";
299
- SpriteIconEnum["modeElectricShuttle"] = "modeElectricShuttle";
300
- SpriteIconEnum["modeElevator"] = "modeElevator";
301
- SpriteIconEnum["modeEscalator"] = "modeEscalator";
302
- SpriteIconEnum["modeFindPlace"] = "modeFindPlace";
303
- SpriteIconEnum["modeFreefloating"] = "modeFreefloating";
304
- SpriteIconEnum["modeFunicular"] = "modeFunicular";
305
- SpriteIconEnum["modeHail"] = "modeHail";
306
- SpriteIconEnum["modeInoui"] = "modeInoui";
307
- SpriteIconEnum["modeLer"] = "modeLer";
308
- SpriteIconEnum["modeMinibus"] = "modeMinibus";
309
- SpriteIconEnum["modeMulti"] = "modeMulti";
310
- SpriteIconEnum["modeMultiBikeBus"] = "modeMultiBikeBus";
311
- SpriteIconEnum["modeMultiCarBus"] = "modeMultiCarBus";
312
- SpriteIconEnum["modeMultiCoach"] = "modeMultiCoach";
313
- SpriteIconEnum["modeMultiTrain"] = "modeMultiTrain";
314
- SpriteIconEnum["modePlane"] = "modePlane";
315
- SpriteIconEnum["modeRer"] = "modeRer";
316
- SpriteIconEnum["modeSchool"] = "modeSchool";
317
- SpriteIconEnum["modeSelfServiceBike"] = "modeSelfServiceBike";
318
- SpriteIconEnum["modeSncfIntercite"] = "modeSncfIntercite";
319
- SpriteIconEnum["modeStreetcar"] = "modeStreetcar";
320
- SpriteIconEnum["modeSubway"] = "modeSubway";
321
- SpriteIconEnum["modeTaxi"] = "modeTaxi";
322
- SpriteIconEnum["modeTaxibus"] = "modeTaxibus";
323
- SpriteIconEnum["modeTer"] = "modeTer";
324
- SpriteIconEnum["modeTgv"] = "modeTgv";
325
- SpriteIconEnum["modeTod"] = "modeTod";
326
- SpriteIconEnum["modeTrain"] = "modeTrain";
327
- SpriteIconEnum["modeTrolley"] = "modeTrolley";
328
- SpriteIconEnum["modeUnknown"] = "modeUnknown";
329
- SpriteIconEnum["modeWait"] = "modeWait";
330
- SpriteIconEnum["modeWaitInside"] = "modeWaitInside";
331
- SpriteIconEnum["modeWalk"] = "modeWalk";
332
- SpriteIconEnum["modeZou"] = "modeZou";
333
- SpriteIconEnum["more"] = "more";
334
- SpriteIconEnum["moveBackward"] = "moveBackward";
335
- SpriteIconEnum["moveForward"] = "moveForward";
336
- SpriteIconEnum["music"] = "music";
337
- SpriteIconEnum["navDashboard"] = "navDashboard";
338
- SpriteIconEnum["navFirst"] = "navFirst";
339
- SpriteIconEnum["navigationApple"] = "navigationApple";
340
- SpriteIconEnum["navigationFacebook"] = "navigationFacebook";
341
- SpriteIconEnum["navigationGoogle"] = "navigationGoogle";
342
- SpriteIconEnum["navigationInstagram"] = "navigationInstagram";
343
- SpriteIconEnum["navigationLinkedin"] = "navigationLinkedin";
344
- SpriteIconEnum["navigationPinterest"] = "navigationPinterest";
345
- SpriteIconEnum["navigationSnapchat"] = "navigationSnapchat";
346
- SpriteIconEnum["navigationTiktok"] = "navigationTiktok";
347
- SpriteIconEnum["navigationTwitter"] = "navigationTwitter";
348
- SpriteIconEnum["navigationWhatsapp"] = "navigationWhatsapp";
349
- SpriteIconEnum["navigationYoutube"] = "navigationYoutube";
350
- SpriteIconEnum["navLast"] = "navLast";
351
- SpriteIconEnum["navMediaPause"] = "navMediaPause";
352
- SpriteIconEnum["newWindow"] = "newWindow";
353
- SpriteIconEnum["nextLeft"] = "nextLeft";
354
- SpriteIconEnum["nextRight"] = "nextRight";
355
- SpriteIconEnum["nfc"] = "nfc";
356
- SpriteIconEnum["ok"] = "ok";
357
- SpriteIconEnum["onlineServices"] = "onlineServices";
358
- SpriteIconEnum["onlineServices2"] = "onlineServices2";
359
- SpriteIconEnum["openofficeBlank"] = "openofficeBlank";
360
- SpriteIconEnum["openofficeCalc"] = "openofficeCalc";
361
- SpriteIconEnum["openofficeVideo"] = "openofficeVideo";
362
- SpriteIconEnum["openofficeWriter"] = "openofficeWriter";
363
- SpriteIconEnum["paste"] = "paste";
364
- SpriteIconEnum["payment"] = "payment";
365
- SpriteIconEnum["pdf"] = "pdf";
366
- SpriteIconEnum["pet"] = "pet";
367
- SpriteIconEnum["phone"] = "phone";
368
- SpriteIconEnum["phoneCard"] = "phoneCard";
369
- SpriteIconEnum["pinArrival"] = "pinArrival";
370
- SpriteIconEnum["placeholder"] = "placeholder";
371
- SpriteIconEnum["plan"] = "plan";
372
- SpriteIconEnum["play"] = "play";
373
- SpriteIconEnum["pmr"] = "pmr";
374
- SpriteIconEnum["pmr2"] = "pmr2";
375
- SpriteIconEnum["png"] = "png";
376
- SpriteIconEnum["poiAccommodation"] = "poiAccommodation";
377
- SpriteIconEnum["poiActivity"] = "poiActivity";
378
- SpriteIconEnum["poiAddress"] = "poiAddress";
379
- SpriteIconEnum["poiAdministration"] = "poiAdministration";
380
- SpriteIconEnum["poiAirport"] = "poiAirport";
381
- SpriteIconEnum["poiBar"] = "poiBar";
382
- SpriteIconEnum["poiBeach"] = "poiBeach";
383
- SpriteIconEnum["poiBikePark"] = "poiBikePark";
384
- SpriteIconEnum["poiBikeRack"] = "poiBikeRack";
385
- SpriteIconEnum["poiBikeRental"] = "poiBikeRental";
386
- SpriteIconEnum["poiBusinessFacilities"] = "poiBusinessFacilities";
387
- SpriteIconEnum["poiBusStation"] = "poiBusStation";
388
- SpriteIconEnum["poiCamping"] = "poiCamping";
389
- SpriteIconEnum["poiCarpoolArea"] = "poiCarpoolArea";
390
- SpriteIconEnum["poiCarpoolingTransition"] = "poiCarpoolingTransition";
391
- SpriteIconEnum["poiCarsharingStation"] = "poiCarsharingStation";
392
- SpriteIconEnum["poiChargingStation"] = "poiChargingStation";
393
- SpriteIconEnum["poiClub"] = "poiClub";
394
- SpriteIconEnum["poiCommercialAgency"] = "poiCommercialAgency";
395
- SpriteIconEnum["poiCommunityServices"] = "poiCommunityServices";
396
- SpriteIconEnum["poiCompany"] = "poiCompany";
397
- SpriteIconEnum["poiCorrespondence"] = "poiCorrespondence";
398
- SpriteIconEnum["poiCulture"] = "poiCulture";
399
- SpriteIconEnum["poiDistrict"] = "poiDistrict";
400
- SpriteIconEnum["poiDropSelfServiceBike"] = "poiDropSelfServiceBike";
401
- SpriteIconEnum["poiEducation"] = "poiEducation";
402
- SpriteIconEnum["poiEducation2"] = "poiEducation2";
403
- SpriteIconEnum["poiEnter"] = "poiEnter";
404
- SpriteIconEnum["poiEuro"] = "poiEuro";
405
- SpriteIconEnum["poiEvent"] = "poiEvent";
406
- SpriteIconEnum["poiEventSport"] = "poiEventSport";
407
- SpriteIconEnum["poiExit"] = "poiExit";
408
- SpriteIconEnum["poiFireman"] = "poiFireman";
409
- SpriteIconEnum["poiFuel"] = "poiFuel";
410
- SpriteIconEnum["poiHistoric"] = "poiHistoric";
411
- SpriteIconEnum["poiInfoBus"] = "poiInfoBus";
412
- SpriteIconEnum["poiInformationPoint"] = "poiInformationPoint";
413
- SpriteIconEnum["poiIntersection"] = "poiIntersection";
414
- SpriteIconEnum["poiMapDefault"] = "poiMapDefault";
415
- SpriteIconEnum["poiMarina"] = "poiMarina";
416
- SpriteIconEnum["poiMarket"] = "poiMarket";
417
- SpriteIconEnum["poiMilitary"] = "poiMilitary";
418
- SpriteIconEnum["poiMiscHealthcare"] = "poiMiscHealthcare";
419
- SpriteIconEnum["poiMiscSale"] = "poiMiscSale";
420
- SpriteIconEnum["poiMiscSale2"] = "poiMiscSale2";
421
- SpriteIconEnum["poiMiscWork"] = "poiMiscWork";
422
- SpriteIconEnum["poiMuseum"] = "poiMuseum";
423
- SpriteIconEnum["poiOtherServices"] = "poiOtherServices";
424
- SpriteIconEnum["poiPark2"] = "poiPark2";
425
- SpriteIconEnum["poiParkAndRide"] = "poiParkAndRide";
426
- SpriteIconEnum["poiParking"] = "poiParking";
427
- SpriteIconEnum["poiParkingCarpool"] = "poiParkingCarpool";
428
- SpriteIconEnum["poiParkingElectricVehicle"] = "poiParkingElectricVehicle";
429
- SpriteIconEnum["poiParkingV"] = "poiParkingV";
430
- SpriteIconEnum["poiPatrol"] = "poiPatrol";
431
- SpriteIconEnum["poiPhoto"] = "poiPhoto";
432
- SpriteIconEnum["poiPointSale"] = "poiPointSale";
433
- SpriteIconEnum["poiPolice"] = "poiPolice";
434
- SpriteIconEnum["poiPublicPlace"] = "poiPublicPlace";
435
- SpriteIconEnum["poiRentalAgency"] = "poiRentalAgency";
436
- SpriteIconEnum["poiRestaurant"] = "poiRestaurant";
437
- SpriteIconEnum["poiRezoPouce"] = "poiRezoPouce";
438
- SpriteIconEnum["poiSchool2"] = "poiSchool2";
439
- SpriteIconEnum["poiSecuredBike"] = "poiSecuredBike";
440
- SpriteIconEnum["poiSelfServiceBike"] = "poiSelfServiceBike";
441
- SpriteIconEnum["poiSelfServiceBikeSpot"] = "poiSelfServiceBikeSpot";
442
- SpriteIconEnum["poiShopping"] = "poiShopping";
443
- SpriteIconEnum["poiSkiResort2"] = "poiSkiResort2";
444
- SpriteIconEnum["poiSport2"] = "poiSport2";
445
- SpriteIconEnum["poiSwim"] = "poiSwim";
446
- SpriteIconEnum["poiSwitchPointMulti"] = "poiSwitchPointMulti";
447
- SpriteIconEnum["poiSwitchPointMulti2"] = "poiSwitchPointMulti2";
448
- SpriteIconEnum["poiTakeSelfServiceBike"] = "poiTakeSelfServiceBike";
449
- SpriteIconEnum["poiTouristOffice"] = "poiTouristOffice";
450
- SpriteIconEnum["poiTown"] = "poiTown";
451
- SpriteIconEnum["poiVaccination"] = "poiVaccination";
452
- SpriteIconEnum["poiWorship"] = "poiWorship";
453
- SpriteIconEnum["poiZone"] = "poiZone";
454
- SpriteIconEnum["ppt"] = "ppt";
455
- SpriteIconEnum["priceDollar"] = "priceDollar";
456
- SpriteIconEnum["priceEuro"] = "priceEuro";
457
- SpriteIconEnum["printAlternate"] = "printAlternate";
458
- SpriteIconEnum["qrcode"] = "qrcode";
459
- SpriteIconEnum["rar"] = "rar";
460
- SpriteIconEnum["realtime"] = "realtime";
461
- SpriteIconEnum["recentTrip"] = "recentTrip";
462
- SpriteIconEnum["reloadCard"] = "reloadCard";
463
- SpriteIconEnum["returnTrip"] = "returnTrip";
464
- SpriteIconEnum["right"] = "right";
465
- SpriteIconEnum["right1"] = "right1";
466
- SpriteIconEnum["road"] = "road";
467
- SpriteIconEnum["round"] = "round";
468
- SpriteIconEnum["roundFull"] = "roundFull";
469
- SpriteIconEnum["schedules"] = "schedules";
470
- SpriteIconEnum["schedulesLine"] = "schedulesLine";
471
- SpriteIconEnum["secure"] = "secure";
472
- SpriteIconEnum["settingsFast"] = "settingsFast";
473
- SpriteIconEnum["shop"] = "shop";
474
- SpriteIconEnum["shopLine"] = "shopLine";
475
- SpriteIconEnum["shopping"] = "shopping";
476
- SpriteIconEnum["smartAssistant"] = "smartAssistant";
477
- SpriteIconEnum["smartphone"] = "smartphone";
478
- SpriteIconEnum["smartphoneHandled"] = "smartphoneHandled";
479
- SpriteIconEnum["smartphoneWindows"] = "smartphoneWindows";
480
- SpriteIconEnum["smoke"] = "smoke";
481
- SpriteIconEnum["socialAddthis"] = "socialAddthis";
482
- SpriteIconEnum["socialApple"] = "socialApple";
483
- SpriteIconEnum["socialFacebook"] = "socialFacebook";
484
- SpriteIconEnum["socialGoogle"] = "socialGoogle";
485
- SpriteIconEnum["socialInstagram"] = "socialInstagram";
486
- SpriteIconEnum["socialLinkedin"] = "socialLinkedin";
487
- SpriteIconEnum["socialMail"] = "socialMail";
488
- SpriteIconEnum["socialMessenger"] = "socialMessenger";
489
- SpriteIconEnum["socialPinterest"] = "socialPinterest";
490
- SpriteIconEnum["socialRemovethis"] = "socialRemovethis";
491
- SpriteIconEnum["socialRss"] = "socialRss";
492
- SpriteIconEnum["socialSnapchat"] = "socialSnapchat";
493
- SpriteIconEnum["socialTiktok"] = "socialTiktok";
494
- SpriteIconEnum["socialWhatsapp"] = "socialWhatsapp";
495
- SpriteIconEnum["socialX"] = "socialX";
496
- SpriteIconEnum["socialYoutube"] = "socialYoutube";
497
- SpriteIconEnum["square"] = "square";
498
- SpriteIconEnum["squareFull"] = "squareFull";
499
- SpriteIconEnum["stamp"] = "stamp";
500
- SpriteIconEnum["star"] = "star";
501
- SpriteIconEnum["straight"] = "straight";
502
- SpriteIconEnum["talk"] = "talk";
503
- SpriteIconEnum["tarifProfileDollar"] = "tarifProfileDollar";
504
- SpriteIconEnum["tarifProfileEuro"] = "tarifProfileEuro";
505
- SpriteIconEnum["terminal"] = "terminal";
506
- SpriteIconEnum["ticketAutovalidation"] = "ticketAutovalidation";
507
- SpriteIconEnum["time"] = "time";
508
- SpriteIconEnum["tinyElectricCar"] = "tinyElectricCar";
509
- SpriteIconEnum["tinyTicket"] = "tinyTicket";
510
- SpriteIconEnum["tip"] = "tip";
511
- SpriteIconEnum["to"] = "to";
512
- SpriteIconEnum["todUfr"] = "todUfr";
513
- SpriteIconEnum["toolbarAdd"] = "toolbarAdd";
514
- SpriteIconEnum["toolbarCalendarChecked"] = "toolbarCalendarChecked";
515
- SpriteIconEnum["toolbarCalendarDefault"] = "toolbarCalendarDefault";
516
- SpriteIconEnum["toolbarCalendarSchedule"] = "toolbarCalendarSchedule";
517
- SpriteIconEnum["toolbarClose"] = "toolbarClose";
518
- SpriteIconEnum["toolbarDelete"] = "toolbarDelete";
519
- SpriteIconEnum["toolbarDisconnect"] = "toolbarDisconnect";
520
- SpriteIconEnum["toolbarDownload"] = "toolbarDownload";
521
- SpriteIconEnum["toolbarEdit"] = "toolbarEdit";
522
- SpriteIconEnum["toolbarFavorite"] = "toolbarFavorite";
523
- SpriteIconEnum["toolbarFavoriteAdd"] = "toolbarFavoriteAdd";
524
- SpriteIconEnum["toolbarFavoriteAlert"] = "toolbarFavoriteAlert";
525
- SpriteIconEnum["toolbarFavoriteNotSelected"] = "toolbarFavoriteNotSelected";
526
- SpriteIconEnum["toolbarFilter"] = "toolbarFilter";
527
- SpriteIconEnum["toolbarFilterCancel"] = "toolbarFilterCancel";
528
- SpriteIconEnum["toolbarFullScreen2"] = "toolbarFullScreen2";
529
- SpriteIconEnum["toolbarGuestMode"] = "toolbarGuestMode";
530
- SpriteIconEnum["toolbarHidePassword"] = "toolbarHidePassword";
531
- SpriteIconEnum["toolbarLess"] = "toolbarLess";
532
- SpriteIconEnum["toolbarLogin"] = "toolbarLogin";
533
- SpriteIconEnum["toolbarMenu"] = "toolbarMenu";
534
- SpriteIconEnum["toolbarMinus"] = "toolbarMinus";
535
- SpriteIconEnum["toolbarMyFamily"] = "toolbarMyFamily";
536
- SpriteIconEnum["toolbarNavQuit"] = "toolbarNavQuit";
537
- SpriteIconEnum["toolbarNextJourney"] = "toolbarNextJourney";
538
- SpriteIconEnum["toolbarPastJourney"] = "toolbarPastJourney";
539
- SpriteIconEnum["toolbarPlus"] = "toolbarPlus";
540
- SpriteIconEnum["toolbarPrint"] = "toolbarPrint";
541
- SpriteIconEnum["toolbarRecentSearch"] = "toolbarRecentSearch";
542
- SpriteIconEnum["toolbarRefresh"] = "toolbarRefresh";
543
- SpriteIconEnum["toolbarSchedule"] = "toolbarSchedule";
544
- SpriteIconEnum["toolbarSearch"] = "toolbarSearch";
545
- SpriteIconEnum["toolbarSettings1"] = "toolbarSettings1";
546
- SpriteIconEnum["toolbarSettings2"] = "toolbarSettings2";
547
- SpriteIconEnum["toolbarShare"] = "toolbarShare";
548
- SpriteIconEnum["toolbarShowPassword"] = "toolbarShowPassword";
549
- SpriteIconEnum["toolbarSocialShare"] = "toolbarSocialShare";
550
- SpriteIconEnum["toolbarTable"] = "toolbarTable";
551
- SpriteIconEnum["toolbarUpload"] = "toolbarUpload";
552
- SpriteIconEnum["toolbarUser"] = "toolbarUser";
553
- SpriteIconEnum["traffic"] = "traffic";
554
- SpriteIconEnum["tripPlanner"] = "tripPlanner";
555
- SpriteIconEnum["tripPlannerLine"] = "tripPlannerLine";
556
- SpriteIconEnum["turnCompletelyLeft"] = "turnCompletelyLeft";
557
- SpriteIconEnum["turnCompletelyRight"] = "turnCompletelyRight";
558
- SpriteIconEnum["turnLeft"] = "turnLeft";
559
- SpriteIconEnum["turnRight"] = "turnRight";
560
- SpriteIconEnum["turnSlightlyLeft"] = "turnSlightlyLeft";
561
- SpriteIconEnum["turnSlightlyRight"] = "turnSlightlyRight";
562
- SpriteIconEnum["type2"] = "type2";
563
- SpriteIconEnum["typeChademo"] = "typeChademo";
564
- SpriteIconEnum["typeComboCcs"] = "typeComboCcs";
565
- SpriteIconEnum["typeEf"] = "typeEf";
566
- SpriteIconEnum["up"] = "up";
567
- SpriteIconEnum["user"] = "user";
568
- SpriteIconEnum["userConnected"] = "userConnected";
569
- SpriteIconEnum["userConnectedLine"] = "userConnectedLine";
570
- SpriteIconEnum["userLine"] = "userLine";
571
- SpriteIconEnum["userTicket"] = "userTicket";
572
- SpriteIconEnum["vector"] = "vector";
573
- SpriteIconEnum["via"] = "via";
574
- SpriteIconEnum["wagon"] = "wagon";
575
- SpriteIconEnum["wagonHead"] = "wagonHead";
576
- SpriteIconEnum["wallet"] = "wallet";
577
- SpriteIconEnum["walletLine"] = "walletLine";
578
- SpriteIconEnum["watts"] = "watts";
579
- SpriteIconEnum["wifi"] = "wifi";
580
- SpriteIconEnum["xls"] = "xls";
581
- SpriteIconEnum["zip"] = "zip";
582
- })(SpriteIconEnum || (SpriteIconEnum = {}));
583
-
584
107
  class IconComponent {
585
108
  constructor() {
586
- this.icon = SpriteIconEnum.alertHelp;
109
+ this.icon = 'cw-alert-help';
110
+ this.font = 'optyweb';
587
111
  this.type = IconTypeEnum.default;
588
112
  this.iconSize = IconSizeEnum['sm'];
589
113
  this.iconCssClass = '';
590
114
  this.iconUiType = IconUiTypeEnum.default;
591
- this.spritePath = '/assets/icons/sprite.svg';
592
115
  this.iconTypeEnum = IconTypeEnum;
593
116
  }
594
117
  get hostClasses() {
595
- if (this.type === IconTypeEnum.rounded) {
596
- return `icon-rounded icon-rounded-${this.iconSize} icon-rounded-${this.iconUiType}`;
118
+ if (this.type == IconTypeEnum.rounded) {
119
+ return 'icon-rounded icon-rounded-' + this.iconSize + ' icon-rounded-' + this.iconUiType;
120
+ }
121
+ else {
122
+ return 'icon icon-' + this.iconSize;
597
123
  }
598
- return `icon icon-${this.iconSize}`;
599
124
  }
600
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
601
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: IconComponent, isStandalone: true, selector: "cw-icon", inputs: { icon: "icon", label: "label", type: "type", iconSize: "iconSize", iconCssClass: "iconCssClass", iconUiType: "iconUiType", iconColorCustom: "iconColorCustom", spritePath: "spritePath" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "@if (type == iconTypeEnum.rounded) {\r\n <span class=\"icon\">\r\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\r\n </span>\r\n} @else {\r\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\r\n}\r\n\r\n<ng-template #iconContent>\r\n <svg class=\"icon-svg\" [ngClass]=\"iconCssClass\" aria-hidden=\"true\"\r\n [attr.style]=\"iconColorCustom ? 'color: ' + iconColorCustom : null\">\r\n <use [attr.href]=\"spritePath + '#' + icon\" />\r\n </svg>\r\n @if (label) {\r\n <span class=\"visually-hidden\">{{ label }}</span>\r\n }\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
125
+ ngOnInit() {
126
+ this.iconClass = this.font + ' ' + this.icon;
127
+ }
128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: IconComponent, isStandalone: true, selector: "cw-icon", inputs: { icon: "icon", font: "font", label: "label", type: "type", iconSize: "iconSize", iconCssClass: "iconCssClass", iconUiType: "iconUiType", iconColorCustom: "iconColorCustom" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "@if (type == iconTypeEnum.rounded) {\r\n <span class=\"icon\">\r\n <ng-container *ngTemplateOutlet=\"icon\"></ng-container>\r\n </span>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"icon\"></ng-container>\r\n }\r\n\r\n<ng-template #icon>\r\n <span [class]=\"iconClass + ' icon-span'\" [ngClass]=\"iconCssClass\" aria-hidden=\"true\" [attr.style]=\"iconColorCustom ? 'color: ' + iconColorCustom : null\"></span>\r\n @if (label) {\r\n <span class=\"visually-hidden\">{{ label }}</span>\r\n }\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
602
130
  }
603
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IconComponent, decorators: [{
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconComponent, decorators: [{
604
132
  type: Component,
605
- args: [{ selector: 'cw-icon', standalone: true, imports: [CommonModule], template: "@if (type == iconTypeEnum.rounded) {\r\n <span class=\"icon\">\r\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\r\n </span>\r\n} @else {\r\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\r\n}\r\n\r\n<ng-template #iconContent>\r\n <svg class=\"icon-svg\" [ngClass]=\"iconCssClass\" aria-hidden=\"true\"\r\n [attr.style]=\"iconColorCustom ? 'color: ' + iconColorCustom : null\">\r\n <use [attr.href]=\"spritePath + '#' + icon\" />\r\n </svg>\r\n @if (label) {\r\n <span class=\"visually-hidden\">{{ label }}</span>\r\n }\r\n</ng-template>\r\n" }]
606
- }], propDecorators: { icon: [{
133
+ args: [{ selector: 'cw-icon', standalone: true, imports: [
134
+ CommonModule
135
+ ], template: "@if (type == iconTypeEnum.rounded) {\r\n <span class=\"icon\">\r\n <ng-container *ngTemplateOutlet=\"icon\"></ng-container>\r\n </span>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"icon\"></ng-container>\r\n }\r\n\r\n<ng-template #icon>\r\n <span [class]=\"iconClass + ' icon-span'\" [ngClass]=\"iconCssClass\" aria-hidden=\"true\" [attr.style]=\"iconColorCustom ? 'color: ' + iconColorCustom : null\"></span>\r\n @if (label) {\r\n <span class=\"visually-hidden\">{{ label }}</span>\r\n }\r\n</ng-template>\r\n" }]
136
+ }], ctorParameters: () => [], propDecorators: { icon: [{
137
+ type: Input
138
+ }], font: [{
607
139
  type: Input
608
140
  }], label: [{
609
141
  type: Input
@@ -617,8 +149,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
617
149
  type: Input
618
150
  }], iconColorCustom: [{
619
151
  type: Input
620
- }], spritePath: [{
621
- type: Input
622
152
  }], hostClasses: [{
623
153
  type: HostBinding,
624
154
  args: ['class']
@@ -651,7 +181,6 @@ class CardComponent {
651
181
  this.isCollapsed = signal(false, ...(ngDevMode ? [{ debugName: "isCollapsed" }] : []));
652
182
  this.shouldRenderBody = signal(true, ...(ngDevMode ? [{ debugName: "shouldRenderBody" }] : []));
653
183
  this.iconSize = IconSizeEnum;
654
- this.spriteIcon = SpriteIconEnum;
655
184
  }
656
185
  ngOnInit() {
657
186
  this.isCollapsed.set(this.collapsed);
@@ -694,16 +223,16 @@ class CardComponent {
694
223
  get collapsed_state() {
695
224
  return this.isCollapsed();
696
225
  }
697
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CardComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
698
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: CardComponent, isStandalone: true, selector: "cw-card", inputs: { title: "title", type: "type", titleRank: "titleRank", collapsible: "collapsible", collapsed: "collapsed", collapseId: "collapseId", destroyOnHide: "destroyOnHide" }, outputs: { collapseClicked: "collapseClicked" }, viewQueries: [{ propertyName: "collapseDirective", first: true, predicate: ["collapse"], descendants: true }, { propertyName: "cardFooter", first: true, predicate: ["cardFooter"], descendants: true }], ngImport: i0, template: "<div class=\"card\" [class.card-collapse]=\"collapsible\" [class.card-light]=\"type == typeEnum.light\">\n @if (title) {\n <div class=\"card-header\" [class.card-header-collapse]=\"collapsible\"\n [class.card-header-collapsed]=\"collapsible && isCollapsed()\">\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n </div>\n }\n\n @if(collapsible) {\n <div [cwCollapse]=\"isCollapsed()\" [id]=\"collapseId\" #collapse=\"cwCollapse\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n }\n @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n</div>\n\n<ng-template #header>\n @if (titleRank == titleRankEnum.h2) {\n <h2>{{title}}</h2>\n }\n @else if (titleRank == titleRankEnum.h3) {\n <h3>{{title}}</h3>\n }\n\n <div class=\"card-header-custom-area\">\n <ng-content select=\"[header-custom-area]\"></ng-content>\n </div>\n\n @if (collapsible) {\n <button type=\"button\" class=\"btn btn-collapse stretched-link\" (click)=\"toggleCollapse()\"\n [attr.aria-expanded]=\"!isCollapsed()\" [class.collapsed]=\"isCollapsed()\" [attr.aria-controls]=\"collapseId\">\n <cw-icon [icon]=\"spriteIcon.down\" label=\"D\u00E9plier/Plier\" [iconSize]=\"iconSize['xs']\"></cw-icon>\n <!-- // TODO trad -->\n </button>\n }\n</ng-template>\n\n<ng-template #content>\n @if (shouldRenderBody()) {\n <div class=\"card-body\">\n <ng-content></ng-content>\n </div>\n\n @if (showFooter) {\n <div class=\"card-footer\" #cardFooter>\n <ng-content select=\"[card-footer]\"></ng-content>\n </div>\n }\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CollapseDirective, selector: "[cwCollapse]", inputs: ["cwCollapse"], outputs: ["shown", "hidden"], exportAs: ["cwCollapse"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom", "spritePath"] }] }); }
226
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CardComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
227
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: CardComponent, isStandalone: true, selector: "cw-card", inputs: { title: "title", type: "type", titleRank: "titleRank", collapsible: "collapsible", collapsed: "collapsed", collapseId: "collapseId", destroyOnHide: "destroyOnHide" }, outputs: { collapseClicked: "collapseClicked" }, viewQueries: [{ propertyName: "collapseDirective", first: true, predicate: ["collapse"], descendants: true }, { propertyName: "cardFooter", first: true, predicate: ["cardFooter"], descendants: true }], ngImport: i0, template: "<div class=\"card\" [class.card-collapse]=\"collapsible\" [class.card-light]=\"type == typeEnum.light\">\n @if (title) {\n <div class=\"card-header\" [class.card-header-collapse]=\"collapsible\"\n [class.card-header-collapsed]=\"collapsible && isCollapsed()\">\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n </div>\n }\n\n @if (shouldRenderBody()) {\n <div class=\"card-body\" [cwCollapse]=\"isCollapsed()\" [id]=\"collapseId\" #collapse=\"cwCollapse\">\n <ng-content></ng-content>\n </div>\n }\n\n @if (showFooter) {\n <div class=\"card-footer\" #cardFooter>\n <ng-content select=\"[card-footer]\"></ng-content>\n </div>\n }\n</div>\n\n<ng-template #header>\n @if (titleRank == titleRankEnum.h2) {\n <h2>{{title}}</h2>\n }\n @else if (titleRank == titleRankEnum.h3) {\n <h3>{{title}}</h3>\n }\n\n <div class=\"card-header-custom-area\">\n <ng-content select=\"[header-custom-area]\"></ng-content>\n </div>\n\n @if (collapsible) {\n <button type=\"button\" class=\"btn btn-collapse stretched-link\" (click)=\"toggleCollapse()\"\n [attr.aria-expanded]=\"!isCollapsed()\" [class.collapsed]=\"isCollapsed()\" [attr.aria-controls]=\"collapseId\">\n <cw-icon icon=\"cw-nav-expand2\" label=\"D\u00E9plier/Plier\" [iconSize]=\"iconSize['xs']\"></cw-icon>\n <!-- // TODO trad -->\n </button>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CollapseDirective, selector: "[cwCollapse]", inputs: ["cwCollapse"], outputs: ["shown", "hidden"], exportAs: ["cwCollapse"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "font", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom"] }] }); }
699
228
  }
700
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CardComponent, decorators: [{
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CardComponent, decorators: [{
701
230
  type: Component,
702
231
  args: [{ selector: 'cw-card', standalone: true, imports: [
703
232
  CommonModule,
704
233
  CollapseDirective,
705
234
  IconComponent
706
- ], template: "<div class=\"card\" [class.card-collapse]=\"collapsible\" [class.card-light]=\"type == typeEnum.light\">\n @if (title) {\n <div class=\"card-header\" [class.card-header-collapse]=\"collapsible\"\n [class.card-header-collapsed]=\"collapsible && isCollapsed()\">\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n </div>\n }\n\n @if(collapsible) {\n <div [cwCollapse]=\"isCollapsed()\" [id]=\"collapseId\" #collapse=\"cwCollapse\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n }\n @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n</div>\n\n<ng-template #header>\n @if (titleRank == titleRankEnum.h2) {\n <h2>{{title}}</h2>\n }\n @else if (titleRank == titleRankEnum.h3) {\n <h3>{{title}}</h3>\n }\n\n <div class=\"card-header-custom-area\">\n <ng-content select=\"[header-custom-area]\"></ng-content>\n </div>\n\n @if (collapsible) {\n <button type=\"button\" class=\"btn btn-collapse stretched-link\" (click)=\"toggleCollapse()\"\n [attr.aria-expanded]=\"!isCollapsed()\" [class.collapsed]=\"isCollapsed()\" [attr.aria-controls]=\"collapseId\">\n <cw-icon [icon]=\"spriteIcon.down\" label=\"D\u00E9plier/Plier\" [iconSize]=\"iconSize['xs']\"></cw-icon>\n <!-- // TODO trad -->\n </button>\n }\n</ng-template>\n\n<ng-template #content>\n @if (shouldRenderBody()) {\n <div class=\"card-body\">\n <ng-content></ng-content>\n </div>\n\n @if (showFooter) {\n <div class=\"card-footer\" #cardFooter>\n <ng-content select=\"[card-footer]\"></ng-content>\n </div>\n }\n }\n</ng-template>\n" }]
235
+ ], template: "<div class=\"card\" [class.card-collapse]=\"collapsible\" [class.card-light]=\"type == typeEnum.light\">\n @if (title) {\n <div class=\"card-header\" [class.card-header-collapse]=\"collapsible\"\n [class.card-header-collapsed]=\"collapsible && isCollapsed()\">\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n </div>\n }\n\n @if (shouldRenderBody()) {\n <div class=\"card-body\" [cwCollapse]=\"isCollapsed()\" [id]=\"collapseId\" #collapse=\"cwCollapse\">\n <ng-content></ng-content>\n </div>\n }\n\n @if (showFooter) {\n <div class=\"card-footer\" #cardFooter>\n <ng-content select=\"[card-footer]\"></ng-content>\n </div>\n }\n</div>\n\n<ng-template #header>\n @if (titleRank == titleRankEnum.h2) {\n <h2>{{title}}</h2>\n }\n @else if (titleRank == titleRankEnum.h3) {\n <h3>{{title}}</h3>\n }\n\n <div class=\"card-header-custom-area\">\n <ng-content select=\"[header-custom-area]\"></ng-content>\n </div>\n\n @if (collapsible) {\n <button type=\"button\" class=\"btn btn-collapse stretched-link\" (click)=\"toggleCollapse()\"\n [attr.aria-expanded]=\"!isCollapsed()\" [class.collapsed]=\"isCollapsed()\" [attr.aria-controls]=\"collapseId\">\n <cw-icon icon=\"cw-nav-expand2\" label=\"D\u00E9plier/Plier\" [iconSize]=\"iconSize['xs']\"></cw-icon>\n <!-- // TODO trad -->\n </button>\n }\n</ng-template>\n" }]
707
236
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { title: [{
708
237
  type: Input
709
238
  }], type: [{
@@ -806,10 +335,10 @@ class AccordionComponent {
806
335
  shouldCloseOthers() {
807
336
  return this.closeOthers && !this.allowMultiple;
808
337
  }
809
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
810
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: AccordionComponent, isStandalone: true, selector: "cw-accordion", inputs: { closeOthers: "closeOthers", allowMultiple: "allowMultiple", destroyOnHide: "destroyOnHide" }, outputs: { panelOpened: "panelOpened", panelClosed: "panelClosed" }, queries: [{ propertyName: "cards", predicate: CardComponent }], ngImport: i0, template: "<div class=\"accordion\">\r\n <ng-content></ng-content>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
338
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
339
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AccordionComponent, isStandalone: true, selector: "cw-accordion", inputs: { closeOthers: "closeOthers", allowMultiple: "allowMultiple", destroyOnHide: "destroyOnHide" }, outputs: { panelOpened: "panelOpened", panelClosed: "panelClosed" }, queries: [{ propertyName: "cards", predicate: CardComponent }], ngImport: i0, template: "<div class=\"accordion\">\r\n <ng-content></ng-content>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
811
340
  }
812
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AccordionComponent, decorators: [{
341
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AccordionComponent, decorators: [{
813
342
  type: Component,
814
343
  args: [{ selector: 'cw-accordion', standalone: true, imports: [CommonModule], template: "<div class=\"accordion\">\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
815
344
  }], propDecorators: { closeOthers: [{
@@ -860,36 +389,35 @@ class IconNotificationComponent {
860
389
  ngOnInit() {
861
390
  switch (this.type) {
862
391
  case IconNotifTypeEnum.info:
863
- this.icon = SpriteIconEnum.alertHelp;
392
+ this.icon = 'cw-alert-info2';
864
393
  this.label = 'Informatiion';
865
394
  break;
866
395
  case IconNotifTypeEnum.success:
867
- this.icon = SpriteIconEnum.eventDisruptionEnd;
396
+ this.icon = 'cw-alert-success2';
868
397
  this.label = 'Succès';
869
398
  break;
870
399
  case IconNotifTypeEnum.warning:
871
- this.icon = SpriteIconEnum.event;
400
+ this.icon = 'cw-event-warning';
872
401
  this.label = 'Avertisement';
873
402
  break;
874
403
  case IconNotifTypeEnum.danger:
875
- this.icon = SpriteIconEnum.toolbarClose;
404
+ this.icon = 'cw-toolbar-close1';
876
405
  this.label = 'Erreur';
877
406
  break;
878
407
  case IconNotifTypeEnum.careful:
879
- this.icon = SpriteIconEnum.event;
408
+ this.icon = 'cw-alert-warning';
880
409
  this.label = 'Attention';
881
410
  break;
882
411
  }
883
412
  }
884
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IconNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
885
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: IconNotificationComponent, isStandalone: true, selector: "cw-icon-notification", inputs: { type: "type", iconSize: "iconSize" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "\r\n<span class=\"icon\">\r\n <cw-icon [label]=\"label\" [iconSize]=\"iconSize['2xs']\" [icon]=\"icon\"></cw-icon>\r\n</span>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom", "spritePath"] }] }); }
413
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
414
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: IconNotificationComponent, isStandalone: true, selector: "cw-icon-notification", inputs: { type: "type", iconSize: "iconSize" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "\r\n<span class=\"icon\">\r\n <span class=\"icon-span optyweb\" [ngClass]=\"icon\" aria-hidden=\"true\" [title]=\"label\"></span>\r\n <span class=\"visually-hidden\">{{ label }}</span>\r\n</span>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
886
415
  }
887
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IconNotificationComponent, decorators: [{
416
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IconNotificationComponent, decorators: [{
888
417
  type: Component,
889
418
  args: [{ selector: 'cw-icon-notification', standalone: true, imports: [
890
- CommonModule,
891
- IconComponent
892
- ], template: "\r\n<span class=\"icon\">\r\n <cw-icon [label]=\"label\" [iconSize]=\"iconSize['2xs']\" [icon]=\"icon\"></cw-icon>\r\n</span>\r\n" }]
419
+ CommonModule
420
+ ], template: "\r\n<span class=\"icon\">\r\n <span class=\"icon-span optyweb\" [ngClass]=\"icon\" aria-hidden=\"true\" [title]=\"label\"></span>\r\n <span class=\"visually-hidden\">{{ label }}</span>\r\n</span>\r\n" }]
893
421
  }], ctorParameters: () => [], propDecorators: { type: [{
894
422
  type: Input
895
423
  }], iconSize: [{
@@ -909,7 +437,6 @@ class AlertComponent {
909
437
  this.isVisible = true;
910
438
  this.showContent = true;
911
439
  this.iconSize = IconSizeEnum;
912
- this.spriteIcon = SpriteIconEnum;
913
440
  }
914
441
  ngOnInit() {
915
442
  this.dataTest = this.dataTest ? this.dataTest : 'alert' + this.type;
@@ -944,17 +471,17 @@ class AlertComponent {
944
471
  this.isVisible = false;
945
472
  this.close.emit();
946
473
  }
947
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AlertComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
948
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: AlertComponent, isStandalone: true, selector: "cw-alert", inputs: { type: "type", title: "title", isDismissible: "isDismissible", cssClass: "cssClass", dataTest: "dataTest" }, outputs: { close: "close" }, viewQueries: [{ propertyName: "alertContent", first: true, predicate: ["alertContent"], descendants: true }], ngImport: i0, template: "@if (isVisible) {\r\n <div [class]=\"'alert alert-' + type + ' '+ cssClass\" [ngClass]=\"{ 'alert-dismissible fade show': isDismissible }\"\r\n [attr.data-test-ctw]=\"dataTest\">\r\n <cw-icon-notification [type]=\"iconNotifType\"></cw-icon-notification>\r\n <div class=\"alert-content\">\r\n @if (title) {\r\n <div class=\"fw-bold\">{{ title }}</div>\r\n }\r\n\r\n @if (showContent) {\r\n <p class=\"mb-none\" #alertContent>\r\n <ng-content></ng-content>\r\n </p>\r\n }\r\n </div>\r\n @if (isDismissible) {\r\n <button type=\"button\" class=\"btn-close\" (click)=\"closeAlert()\"\r\n [attr.aria-label]=\"'_COMMON._ACTION.CLOSE' | translate\"\r\n [attr.data-test-ctw]=\"'close-' + dataTest\">\r\n <cw-icon [label]=\"'_COMMON._ACTION.CLOSE' | translate\" [iconSize]=\"iconSize['2xs']\" [icon]=\"spriteIcon.toolbarClose\"></cw-icon>\r\n </button>\r\n }\r\n </div>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: IconNotificationComponent, selector: "cw-icon-notification", inputs: ["type", "iconSize"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom", "spritePath"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
474
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlertComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
475
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AlertComponent, isStandalone: true, selector: "cw-alert", inputs: { type: "type", title: "title", isDismissible: "isDismissible", cssClass: "cssClass", dataTest: "dataTest" }, outputs: { close: "close" }, viewQueries: [{ propertyName: "alertContent", first: true, predicate: ["alertContent"], descendants: true }], ngImport: i0, template: "@if (isVisible) {\r\n <div [class]=\"'alert alert-' + type + ' '+ cssClass\" [ngClass]=\"{ 'alert-dismissible fade show': isDismissible }\"\r\n [attr.data-test-ctw]=\"dataTest\">\r\n <cw-icon-notification [type]=\"iconNotifType\"></cw-icon-notification>\r\n <div class=\"alert-content\">\r\n @if (title) {\r\n <div class=\"fw-bold\">{{ title }}</div>\r\n }\r\n\r\n @if (showContent) {\r\n <p class=\"mb-none\" #alertContent>\r\n <ng-content></ng-content>\r\n </p>\r\n }\r\n </div>\r\n @if (isDismissible) {\r\n <button type=\"button\" class=\"btn-close\" (click)=\"closeAlert()\"\r\n [attr.aria-label]=\"'_COMMON._ACTION.CLOSE' | translate\"\r\n [attr.data-test-ctw]=\"'close-' + dataTest\">\r\n <cw-icon [label]=\"'_COMMON._ACTION.CLOSE' | translate\" [iconSize]=\"iconSize['2xs']\" icon=\"cw-toolbar-close1\"></cw-icon>\r\n </button>\r\n }\r\n </div>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: IconNotificationComponent, selector: "cw-icon-notification", inputs: ["type", "iconSize"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "font", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
949
476
  }
950
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AlertComponent, decorators: [{
477
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlertComponent, decorators: [{
951
478
  type: Component,
952
479
  args: [{ selector: 'cw-alert', standalone: true, imports: [
953
480
  CommonModule,
954
481
  TranslateModule,
955
482
  IconNotificationComponent,
956
483
  IconComponent
957
- ], template: "@if (isVisible) {\r\n <div [class]=\"'alert alert-' + type + ' '+ cssClass\" [ngClass]=\"{ 'alert-dismissible fade show': isDismissible }\"\r\n [attr.data-test-ctw]=\"dataTest\">\r\n <cw-icon-notification [type]=\"iconNotifType\"></cw-icon-notification>\r\n <div class=\"alert-content\">\r\n @if (title) {\r\n <div class=\"fw-bold\">{{ title }}</div>\r\n }\r\n\r\n @if (showContent) {\r\n <p class=\"mb-none\" #alertContent>\r\n <ng-content></ng-content>\r\n </p>\r\n }\r\n </div>\r\n @if (isDismissible) {\r\n <button type=\"button\" class=\"btn-close\" (click)=\"closeAlert()\"\r\n [attr.aria-label]=\"'_COMMON._ACTION.CLOSE' | translate\"\r\n [attr.data-test-ctw]=\"'close-' + dataTest\">\r\n <cw-icon [label]=\"'_COMMON._ACTION.CLOSE' | translate\" [iconSize]=\"iconSize['2xs']\" [icon]=\"spriteIcon.toolbarClose\"></cw-icon>\r\n </button>\r\n }\r\n </div>\r\n}\r\n" }]
484
+ ], template: "@if (isVisible) {\r\n <div [class]=\"'alert alert-' + type + ' '+ cssClass\" [ngClass]=\"{ 'alert-dismissible fade show': isDismissible }\"\r\n [attr.data-test-ctw]=\"dataTest\">\r\n <cw-icon-notification [type]=\"iconNotifType\"></cw-icon-notification>\r\n <div class=\"alert-content\">\r\n @if (title) {\r\n <div class=\"fw-bold\">{{ title }}</div>\r\n }\r\n\r\n @if (showContent) {\r\n <p class=\"mb-none\" #alertContent>\r\n <ng-content></ng-content>\r\n </p>\r\n }\r\n </div>\r\n @if (isDismissible) {\r\n <button type=\"button\" class=\"btn-close\" (click)=\"closeAlert()\"\r\n [attr.aria-label]=\"'_COMMON._ACTION.CLOSE' | translate\"\r\n [attr.data-test-ctw]=\"'close-' + dataTest\">\r\n <cw-icon [label]=\"'_COMMON._ACTION.CLOSE' | translate\" [iconSize]=\"iconSize['2xs']\" icon=\"cw-toolbar-close1\"></cw-icon>\r\n </button>\r\n }\r\n </div>\r\n}\r\n" }]
958
485
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { type: [{
959
486
  type: Input
960
487
  }], title: [{
@@ -990,10 +517,10 @@ class FocusTrackerService {
990
517
  ngOnDestroy() {
991
518
  document.removeEventListener('focus', this.focusListener, true);
992
519
  }
993
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FocusTrackerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
994
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FocusTrackerService, providedIn: 'root' }); }
520
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FocusTrackerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
521
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FocusTrackerService, providedIn: 'root' }); }
995
522
  }
996
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FocusTrackerService, decorators: [{
523
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FocusTrackerService, decorators: [{
997
524
  type: Injectable,
998
525
  args: [{
999
526
  providedIn: 'root',
@@ -1067,10 +594,10 @@ class ToastService {
1067
594
  setLastToast(message) {
1068
595
  this.lastToast = { message, date: new Date() };
1069
596
  }
1070
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1071
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ToastService, providedIn: 'root' }); }
597
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
598
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ToastService, providedIn: 'root' }); }
1072
599
  }
1073
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ToastService, decorators: [{
600
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ToastService, decorators: [{
1074
601
  type: Injectable,
1075
602
  args: [{ providedIn: 'root' }]
1076
603
  }] });
@@ -1102,10 +629,10 @@ class ToastComponent {
1102
629
  close() {
1103
630
  this.closed.emit();
1104
631
  }
1105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: ToastComponent, isStandalone: true, selector: "cw-toast", outputs: { action: "action", closed: "closed" }, host: { attributes: { "role": "alert" }, properties: { "class.toast": "true" } }, ngImport: i0, template: "@for (toast of toastService.toasts; track toast.id) {\r\n <cw-alert [type]=\"toast.type\" [isDismissible]=\"true\" [title]=\"toast.title\" (close)=\"toastService.remove(toast)\" [dataTest]=\"'toast-'+ toast.type\">\r\n <span [innerHTML]=\"toast.message\"></span>&nbsp;\r\n @if (toast.action) {\r\n <a href=\"javascript:void(0);\" (click)=\"onAction(toast)\" class=\"alert-link\">{{ toast.action.label }}</a>\r\n }\r\n </cw-alert>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AlertComponent, selector: "cw-alert", inputs: ["type", "title", "isDismissible", "cssClass", "dataTest"], outputs: ["close"] }] }); }
632
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
633
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ToastComponent, isStandalone: true, selector: "cw-toast", outputs: { action: "action", closed: "closed" }, host: { attributes: { "role": "alert" }, properties: { "class.toast": "true" } }, ngImport: i0, template: "@for (toast of toastService.toasts; track toast.id) {\r\n <cw-alert [type]=\"toast.type\" [isDismissible]=\"true\" [title]=\"toast.title\" (close)=\"toastService.remove(toast)\" [dataTest]=\"'toast-'+ toast.type\">\r\n <span [innerHTML]=\"toast.message\"></span>&nbsp;\r\n @if (toast.action) {\r\n <a href=\"javascript:void(0);\" (click)=\"onAction(toast)\" class=\"alert-link\">{{ toast.action.label }}</a>\r\n }\r\n </cw-alert>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AlertComponent, selector: "cw-alert", inputs: ["type", "title", "isDismissible", "cssClass", "dataTest"], outputs: ["close"] }] }); }
1107
634
  }
1108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ToastComponent, decorators: [{
635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ToastComponent, decorators: [{
1109
636
  type: Component,
1110
637
  args: [{ selector: 'cw-toast', standalone: true, imports: [
1111
638
  CommonModule,
@@ -1142,20 +669,16 @@ var BadgePositionEnum;
1142
669
  })(BadgePositionEnum || (BadgePositionEnum = {}));
1143
670
 
1144
671
  class BadgeComponent {
1145
- get hostClasses() {
1146
- return this.skeletonMode ? 'skeleton badge' : '';
1147
- }
1148
672
  constructor() {
1149
673
  this.badgePositionEnum = BadgePositionEnum;
1150
674
  this.iconPosition = this.badgePositionEnum.left;
1151
675
  this.cssClass = '';
1152
- this.skeletonMode = false;
1153
676
  this.iconSizeEnum = IconSizeEnum;
1154
677
  }
1155
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1156
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: BadgeComponent, isStandalone: true, selector: "cw-badge", inputs: { type: "type", label: "label", withIcon: "withIcon", iconPosition: "iconPosition", cssClass: "cssClass", skeletonMode: "skeletonMode", dataTest: "dataTest" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<div [class]=\"'badge badge-' + type + ' '+ cssClass\" [attr.data-test-ctw]=\"dataTest ? dataTest : null\">\r\n\r\n @if (withIcon && iconPosition === badgePositionEnum.left) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['2xs']\"></cw-icon>\r\n }\r\n\r\n @if (label) {\r\n {{ label }}\r\n }\r\n\r\n @if (withIcon && iconPosition === badgePositionEnum.right) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['2xs']\"></cw-icon>\r\n }\r\n</div>\r\n", dependencies: [{ kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom", "spritePath"] }] }); }
678
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
679
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: BadgeComponent, isStandalone: true, selector: "cw-badge", inputs: { type: "type", label: "label", withIcon: "withIcon", iconPosition: "iconPosition", cssClass: "cssClass", dataTest: "dataTest" }, ngImport: i0, template: "<div [class]=\"'badge badge-' + type + ' '+ cssClass\" [attr.data-test-ctw]=\"dataTest ? dataTest : null\">\r\n\r\n @if (withIcon && iconPosition === badgePositionEnum.left) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['2xs']\"></cw-icon>\r\n }\r\n\r\n @if (label) {\r\n {{ label }}\r\n }\r\n\r\n @if (withIcon && iconPosition === badgePositionEnum.right) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['2xs']\"></cw-icon>\r\n }\r\n</div>\r\n", dependencies: [{ kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "font", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom"] }] }); }
1157
680
  }
1158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: BadgeComponent, decorators: [{
681
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BadgeComponent, decorators: [{
1159
682
  type: Component,
1160
683
  args: [{ selector: 'cw-badge', standalone: true, imports: [IconComponent], template: "<div [class]=\"'badge badge-' + type + ' '+ cssClass\" [attr.data-test-ctw]=\"dataTest ? dataTest : null\">\r\n\r\n @if (withIcon && iconPosition === badgePositionEnum.left) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['2xs']\"></cw-icon>\r\n }\r\n\r\n @if (label) {\r\n {{ label }}\r\n }\r\n\r\n @if (withIcon && iconPosition === badgePositionEnum.right) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['2xs']\"></cw-icon>\r\n }\r\n</div>\r\n" }]
1161
684
  }], ctorParameters: () => [], propDecorators: { type: [{
@@ -1168,13 +691,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
1168
691
  type: Input
1169
692
  }], cssClass: [{
1170
693
  type: Input
1171
- }], skeletonMode: [{
1172
- type: Input
1173
694
  }], dataTest: [{
1174
695
  type: Input
1175
- }], hostClasses: [{
1176
- type: HostBinding,
1177
- args: ['class']
1178
696
  }] } });
1179
697
 
1180
698
  class ClickOutsideDirective {
@@ -1189,10 +707,10 @@ class ClickOutsideDirective {
1189
707
  this.elementRef = elementRef;
1190
708
  this.clickOutside = new EventEmitter();
1191
709
  }
1192
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1193
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: ClickOutsideDirective, isStandalone: true, selector: "[clickOutside]", outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0 }); }
710
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
711
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: ClickOutsideDirective, isStandalone: true, selector: "[clickOutside]", outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0 }); }
1194
712
  }
1195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ClickOutsideDirective, decorators: [{
713
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ClickOutsideDirective, decorators: [{
1196
714
  type: Directive,
1197
715
  args: [{
1198
716
  selector: '[clickOutside]',
@@ -1255,10 +773,10 @@ class ResponsiveService {
1255
773
  checkIsMobileResolution() {
1256
774
  return window.innerWidth < 768;
1257
775
  }
1258
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ResponsiveService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1259
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ResponsiveService, providedIn: 'root' }); }
776
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ResponsiveService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
777
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ResponsiveService, providedIn: 'root' }); }
1260
778
  }
1261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ResponsiveService, decorators: [{
779
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ResponsiveService, decorators: [{
1262
780
  type: Injectable,
1263
781
  args: [{
1264
782
  providedIn: 'root'
@@ -1287,32 +805,29 @@ class DropdownItemDirective {
1287
805
  this.elementRef.nativeElement.classList.add('dropdown-item');
1288
806
  this.elementRef.nativeElement.setAttribute('tabindex', '0');
1289
807
  }
1290
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DropdownItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1291
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: DropdownItemDirective, isStandalone: true, selector: "[cwDropdownItem]", ngImport: i0 }); }
808
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DropdownItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
809
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: DropdownItemDirective, isStandalone: true, selector: "[cwDropdownItem]", ngImport: i0 }); }
1292
810
  }
1293
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DropdownItemDirective, decorators: [{
811
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DropdownItemDirective, decorators: [{
1294
812
  type: Directive,
1295
813
  args: [{ selector: '[cwDropdownItem]' }]
1296
814
  }] });
1297
815
  class ButtonComponent {
1298
- get hostClasses() {
1299
- return this.skeletonMode ? 'skeleton btn' : '';
1300
- }
1301
816
  constructor() {
1302
817
  this.renderer = inject(Renderer2);
1303
818
  this.responsiveService = inject(ResponsiveService);
1304
819
  this.buttonPositionEnum = ButtonPositionEnum;
1305
820
  this.id = '';
1306
821
  this.isDropdown = false;
822
+ this.withIcon = '';
1307
823
  this.withOnlyIcon = false;
1308
824
  this.iconSize = ButtonIconSizeEnum.default;
1309
825
  this.iconPosition = this.buttonPositionEnum.left;
1310
826
  this.dropdownPosition = this.buttonPositionEnum.right;
1311
827
  this.isMinWidth = false;
1312
828
  this.isDisabled = false;
1313
- this.isLoading = false;
829
+ this.withSpinner = false;
1314
830
  this.cssClass = '';
1315
- this.skeletonMode = false;
1316
831
  this.withTooltip = false;
1317
832
  this.tooltipText = '';
1318
833
  this.tooltipTitle = '';
@@ -1321,6 +836,7 @@ class ButtonComponent {
1321
836
  this.tooltipType = TypeTooltipEnum.tooltip;
1322
837
  this.btnAction = new EventEmitter();
1323
838
  this.dropDownClicked = new EventEmitter();
839
+ this.isLoading = false;
1324
840
  this.iconSizeEnum = IconSizeEnum;
1325
841
  this.iconType = IconTypeEnum;
1326
842
  this.iconUiType = IconUiTypeEnum;
@@ -1357,6 +873,9 @@ class ButtonComponent {
1357
873
  }
1358
874
  onBtnAction() {
1359
875
  this.btnAction.emit();
876
+ if (this.withSpinner) {
877
+ this.isLoading = !this.isLoading;
878
+ }
1360
879
  }
1361
880
  toggleDropdown() {
1362
881
  this.getPlacement(this.dropdownPosition);
@@ -1437,17 +956,17 @@ class ButtonComponent {
1437
956
  getRandomId(min, max) {
1438
957
  return Math.floor(Math.random() * (max - min + 1)) + min;
1439
958
  }
1440
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1441
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: ButtonComponent, isStandalone: true, selector: "cw-button", inputs: { type: "type", label: "label", id: "id", isDropdown: "isDropdown", withIcon: "withIcon", withOnlyIcon: "withOnlyIcon", iconSize: "iconSize", iconPosition: "iconPosition", dropdownPosition: "dropdownPosition", isMinWidth: "isMinWidth", isDisabled: "isDisabled", isLoading: "isLoading", cssClass: "cssClass", dataTest: "dataTest", skeletonMode: "skeletonMode", withTooltip: "withTooltip", tooltipText: "tooltipText", tooltipTitle: "tooltipTitle", tooltipTrigger: "tooltipTrigger", tooltipPosition: "tooltipPosition", tooltipType: "tooltipType" }, outputs: { btnAction: "btnAction", dropDownClicked: "dropDownClicked" }, host: { properties: { "class": "this.hostClasses" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "dropdownMenu", first: true, predicate: ["dropdownMenu"], descendants: true }, { propertyName: "dropdownToggle", first: true, predicate: ["dropdownToggle"], descendants: true }], ngImport: i0, template: "<!-- Wrapper pour le tooltip -->\r\n@if (withTooltip) {\r\n <div class=\"d-inline-block position-relative\" (clickOutside)=\"onTooltipClickOutside()\" ctwClickOutside>\r\n\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n\r\n <!-- Tooltip/Popover -->\r\n @if (isTooltipOpened) {\r\n <div role=\"tooltip\" [id]=\"'ctw-tooltip-' + tooltipRandomId\" [ngClass]=\"tooltipType + ' fade show ' + tooltipType + '-' + tooltipPosition\">\r\n <div class=\"arrow\"></div>\r\n @if (tooltipTitle) {\r\n <div [ngClass]=\"(tooltipType === typeTooltipEnum.popover ? 'popover' : 'tooltip') + '-header'\"\r\n [innerHTML]=\"tooltipTitle\"></div>\r\n }\r\n <div [ngClass]=\"tooltipType === typeTooltipEnum.tooltip ? 'tooltip-inner' : 'popover-body'\"\r\n [innerHTML]=\"tooltipText\"></div>\r\n </div>\r\n }\r\n </div>\r\n}\r\n@else {\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n}\r\n\r\n<!-- Template du bouton (code existant envelopp\u00E9) -->\r\n<ng-template #buttonTemplate>\r\n @if (!isDropdown) {\r\n <button type=\"button\" class=\"btn\" [class]=\"'btn-' + type + ' ' + cssClass\" [ngClass]=\"getButtonClasses()\"\r\n [disabled]=\"isDisabled\" (click)=\"onBtnAction()\" [attr.data-test-ctw]=\"dataTest\"\r\n [attr.aria-describedby]=\"withTooltip && isTooltipOpened ? 'ctw-tooltip-' + tooltipRandomId : null\"\r\n (mouseenter)=\"withTooltip && tooltipTrigger === 'hover' ? showTooltip() : null\"\r\n (mouseleave)=\"withTooltip && tooltipTrigger === 'hover' ? hideTooltip() : null\"\r\n (click)=\"withTooltip && tooltipTrigger === 'click' ? showTooltip() : null\">\r\n\r\n @if (isLoading) {\r\n <span class=\"spinner-border spinner-border-sm\" aria-hidden=\"true\"></span>\r\n <span class=\"visually-hidden\" role=\"status\">{{ '_COMMON._HTTP.TXT_LOADING' | translate }}</span>\r\n }\r\n\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n </button>\r\n }\r\n @else {\r\n <div (clickOutside)=\"onClickOutside()\" ctwClickOutside #dropdown class=\"d-inline-block\">\r\n <button class=\"btn\" [class]=\"'btn-' + type + ' '\" type=\"button\"\r\n [ngClass]=\"getButtonClasses()\"\r\n [disabled]=\"isDisabled\" [id]=\"id\" aria-expanded=\"false\" (click)=\"toggleDropdown()\" #dropdownToggle\r\n [attr.data-test-ctw]=\"dataTest\"\r\n [attr.aria-describedby]=\"withTooltip && isTooltipOpened ? 'ctw-tooltip-' + tooltipRandomId : null\"\r\n (mouseenter)=\"withTooltip && tooltipTrigger === 'hover' ? showTooltip() : null\"\r\n (mouseleave)=\"withTooltip && tooltipTrigger === 'hover' ? hideTooltip() : null\">\r\n\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n </button>\r\n\r\n <div [attr.aria-labelledby]=\"id\" class=\"dropdown-menu\" [ngClass]=\"placementCss\" #dropdownMenu>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<!-- Template existant du contenu du bouton -->\r\n<ng-template #buttonContent>\r\n @if (withIcon && iconPosition === buttonPositionEnum.left) {\r\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\r\n }\r\n\r\n @if(withOnlyIcon) {\r\n <span class=\"visually-hidden\">{{label | translate }}</span>\r\n }\r\n @else {\r\n {{ label | translate }}\r\n }\r\n\r\n @if (withIcon && iconPosition === buttonPositionEnum.right) {\r\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #iconContent>\r\n @if(withOnlyIcon) {\r\n @switch(iconSize) {\r\n @case(buttonIconSizeEnum.xsmall) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['xs']\"></cw-icon>\r\n }\r\n @case(buttonIconSizeEnum.small) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['sm']\"></cw-icon>\r\n }\r\n @default {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['md']\"></cw-icon>\r\n }\r\n }\r\n }\r\n @else {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['md']\"></cw-icon>\r\n }\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom", "spritePath"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
959
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
960
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ButtonComponent, isStandalone: true, selector: "cw-button", inputs: { type: "type", label: "label", id: "id", isDropdown: "isDropdown", withIcon: "withIcon", withOnlyIcon: "withOnlyIcon", iconSize: "iconSize", iconPosition: "iconPosition", dropdownPosition: "dropdownPosition", isMinWidth: "isMinWidth", isDisabled: "isDisabled", withSpinner: "withSpinner", cssClass: "cssClass", dataTest: "dataTest", withTooltip: "withTooltip", tooltipText: "tooltipText", tooltipTitle: "tooltipTitle", tooltipTrigger: "tooltipTrigger", tooltipPosition: "tooltipPosition", tooltipType: "tooltipType" }, outputs: { btnAction: "btnAction", dropDownClicked: "dropDownClicked" }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "dropdownMenu", first: true, predicate: ["dropdownMenu"], descendants: true }, { propertyName: "dropdownToggle", first: true, predicate: ["dropdownToggle"], descendants: true }], ngImport: i0, template: "<!-- Wrapper pour le tooltip -->\r\n@if (withTooltip) {\r\n <div class=\"d-inline-block position-relative\" (clickOutside)=\"onTooltipClickOutside()\" ctwClickOutside>\r\n\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n\r\n <!-- Tooltip/Popover -->\r\n @if (isTooltipOpened) {\r\n <div role=\"tooltip\" [id]=\"'ctw-tooltip-' + tooltipRandomId\" [ngClass]=\"tooltipType + ' fade show ' + tooltipType + '-' + tooltipPosition\">\r\n <div class=\"arrow\"></div>\r\n @if (tooltipTitle) {\r\n <div [ngClass]=\"(tooltipType === typeTooltipEnum.popover ? 'popover' : 'tooltip') + '-header'\"\r\n [innerHTML]=\"tooltipTitle\"></div>\r\n }\r\n <div [ngClass]=\"tooltipType === typeTooltipEnum.tooltip ? 'tooltip-inner' : 'popover-body'\"\r\n [innerHTML]=\"tooltipText\"></div>\r\n </div>\r\n }\r\n </div>\r\n}\r\n@else {\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n}\r\n\r\n<!-- Template du bouton (code existant envelopp\u00E9) -->\r\n<ng-template #buttonTemplate>\r\n @if (!isDropdown) {\r\n <button type=\"button\" class=\"btn\" [class]=\"'btn-' + type + ' ' + cssClass\" [ngClass]=\"getButtonClasses()\"\r\n [disabled]=\"isDisabled\" (click)=\"onBtnAction()\" [attr.data-test-ctw]=\"dataTest\"\r\n [attr.aria-describedby]=\"withTooltip && isTooltipOpened ? 'ctw-tooltip-' + tooltipRandomId : null\"\r\n (mouseenter)=\"withTooltip && tooltipTrigger === 'hover' ? showTooltip() : null\"\r\n (mouseleave)=\"withTooltip && tooltipTrigger === 'hover' ? hideTooltip() : null\"\r\n (click)=\"withTooltip && tooltipTrigger === 'click' ? showTooltip() : null\">\r\n\r\n @if (isLoading) {\r\n <span class=\"spinner-border spinner-border-sm\" aria-hidden=\"true\"></span>\r\n <span class=\"visually-hidden\" role=\"status\">{{ '_COMMON._HTTP.TXT_LOADING' | translate }}</span>\r\n }\r\n\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n </button>\r\n }\r\n @else {\r\n <div (clickOutside)=\"onClickOutside()\" ctwClickOutside #dropdown class=\"d-inline-block\">\r\n <button class=\"btn\" [class]=\"'btn-' + type + ' '\" type=\"button\"\r\n [ngClass]=\"getButtonClasses()\"\r\n [disabled]=\"isDisabled\" [id]=\"id\" aria-expanded=\"false\" (click)=\"toggleDropdown()\" #dropdownToggle\r\n [attr.data-test-ctw]=\"dataTest\"\r\n [attr.aria-describedby]=\"withTooltip && isTooltipOpened ? 'ctw-tooltip-' + tooltipRandomId : null\"\r\n (mouseenter)=\"withTooltip && tooltipTrigger === 'hover' ? showTooltip() : null\"\r\n (mouseleave)=\"withTooltip && tooltipTrigger === 'hover' ? hideTooltip() : null\">\r\n\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n </button>\r\n\r\n <div [attr.aria-labelledby]=\"id\" class=\"dropdown-menu\" [ngClass]=\"placementCss\" #dropdownMenu>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<!-- Template existant du contenu du bouton -->\r\n<ng-template #buttonContent>\r\n @if (withIcon && iconPosition === buttonPositionEnum.left) {\r\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\r\n }\r\n\r\n @if(withOnlyIcon) {\r\n <span class=\"visually-hidden\">{{label | translate }}</span>\r\n }\r\n @else {\r\n {{ label | translate }}\r\n }\r\n\r\n @if (withIcon && iconPosition === buttonPositionEnum.right) {\r\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #iconContent>\r\n @if(withOnlyIcon) {\r\n @switch(iconSize) {\r\n @case(buttonIconSizeEnum.xsmall) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['xs']\"></cw-icon>\r\n }\r\n @case(buttonIconSizeEnum.small) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['sm']\"></cw-icon>\r\n }\r\n @default {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['md']\"></cw-icon>\r\n }\r\n }\r\n }\r\n @else {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['md']\"></cw-icon>\r\n }\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "font", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
1442
961
  }
1443
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ButtonComponent, decorators: [{
962
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ButtonComponent, decorators: [{
1444
963
  type: Component,
1445
964
  args: [{ selector: 'cw-button', standalone: true, imports: [
1446
965
  CommonModule,
1447
966
  TranslateModule,
1448
967
  IconComponent,
1449
968
  ClickOutsideDirective
1450
- ], template: "<!-- Wrapper pour le tooltip -->\r\n@if (withTooltip) {\r\n <div class=\"d-inline-block position-relative\" (clickOutside)=\"onTooltipClickOutside()\" ctwClickOutside>\r\n\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n\r\n <!-- Tooltip/Popover -->\r\n @if (isTooltipOpened) {\r\n <div role=\"tooltip\" [id]=\"'ctw-tooltip-' + tooltipRandomId\" [ngClass]=\"tooltipType + ' fade show ' + tooltipType + '-' + tooltipPosition\">\r\n <div class=\"arrow\"></div>\r\n @if (tooltipTitle) {\r\n <div [ngClass]=\"(tooltipType === typeTooltipEnum.popover ? 'popover' : 'tooltip') + '-header'\"\r\n [innerHTML]=\"tooltipTitle\"></div>\r\n }\r\n <div [ngClass]=\"tooltipType === typeTooltipEnum.tooltip ? 'tooltip-inner' : 'popover-body'\"\r\n [innerHTML]=\"tooltipText\"></div>\r\n </div>\r\n }\r\n </div>\r\n}\r\n@else {\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n}\r\n\r\n<!-- Template du bouton (code existant envelopp\u00E9) -->\r\n<ng-template #buttonTemplate>\r\n @if (!isDropdown) {\r\n <button type=\"button\" class=\"btn\" [class]=\"'btn-' + type + ' ' + cssClass\" [ngClass]=\"getButtonClasses()\"\r\n [disabled]=\"isDisabled\" (click)=\"onBtnAction()\" [attr.data-test-ctw]=\"dataTest\"\r\n [attr.aria-describedby]=\"withTooltip && isTooltipOpened ? 'ctw-tooltip-' + tooltipRandomId : null\"\r\n (mouseenter)=\"withTooltip && tooltipTrigger === 'hover' ? showTooltip() : null\"\r\n (mouseleave)=\"withTooltip && tooltipTrigger === 'hover' ? hideTooltip() : null\"\r\n (click)=\"withTooltip && tooltipTrigger === 'click' ? showTooltip() : null\">\r\n\r\n @if (isLoading) {\r\n <span class=\"spinner-border spinner-border-sm\" aria-hidden=\"true\"></span>\r\n <span class=\"visually-hidden\" role=\"status\">{{ '_COMMON._HTTP.TXT_LOADING' | translate }}</span>\r\n }\r\n\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n </button>\r\n }\r\n @else {\r\n <div (clickOutside)=\"onClickOutside()\" ctwClickOutside #dropdown class=\"d-inline-block\">\r\n <button class=\"btn\" [class]=\"'btn-' + type + ' '\" type=\"button\"\r\n [ngClass]=\"getButtonClasses()\"\r\n [disabled]=\"isDisabled\" [id]=\"id\" aria-expanded=\"false\" (click)=\"toggleDropdown()\" #dropdownToggle\r\n [attr.data-test-ctw]=\"dataTest\"\r\n [attr.aria-describedby]=\"withTooltip && isTooltipOpened ? 'ctw-tooltip-' + tooltipRandomId : null\"\r\n (mouseenter)=\"withTooltip && tooltipTrigger === 'hover' ? showTooltip() : null\"\r\n (mouseleave)=\"withTooltip && tooltipTrigger === 'hover' ? hideTooltip() : null\">\r\n\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n </button>\r\n\r\n <div [attr.aria-labelledby]=\"id\" class=\"dropdown-menu\" [ngClass]=\"placementCss\" #dropdownMenu>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<!-- Template existant du contenu du bouton -->\r\n<ng-template #buttonContent>\r\n @if (withIcon && iconPosition === buttonPositionEnum.left) {\r\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\r\n }\r\n\r\n @if(withOnlyIcon) {\r\n <span class=\"visually-hidden\">{{label | translate }}</span>\r\n }\r\n @else {\r\n {{ label | translate }}\r\n }\r\n\r\n @if (withIcon && iconPosition === buttonPositionEnum.right) {\r\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #iconContent>\r\n @if(withOnlyIcon) {\r\n @switch(iconSize) {\r\n @case(buttonIconSizeEnum.xsmall) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['xs']\"></cw-icon>\r\n }\r\n @case(buttonIconSizeEnum.small) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['sm']\"></cw-icon>\r\n }\r\n @default {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['md']\"></cw-icon>\r\n }\r\n }\r\n }\r\n @else {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['md']\"></cw-icon>\r\n }\r\n</ng-template>\r\n" }]
969
+ ], template: "<!-- Wrapper pour le tooltip -->\r\n@if (withTooltip) {\r\n <div class=\"d-inline-block position-relative\" (clickOutside)=\"onTooltipClickOutside()\" ctwClickOutside>\r\n\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n\r\n <!-- Tooltip/Popover -->\r\n @if (isTooltipOpened) {\r\n <div role=\"tooltip\" [id]=\"'ctw-tooltip-' + tooltipRandomId\" [ngClass]=\"tooltipType + ' fade show ' + tooltipType + '-' + tooltipPosition\">\r\n <div class=\"arrow\"></div>\r\n @if (tooltipTitle) {\r\n <div [ngClass]=\"(tooltipType === typeTooltipEnum.popover ? 'popover' : 'tooltip') + '-header'\"\r\n [innerHTML]=\"tooltipTitle\"></div>\r\n }\r\n <div [ngClass]=\"tooltipType === typeTooltipEnum.tooltip ? 'tooltip-inner' : 'popover-body'\"\r\n [innerHTML]=\"tooltipText\"></div>\r\n </div>\r\n }\r\n </div>\r\n}\r\n@else {\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n}\r\n\r\n<!-- Template du bouton (code existant envelopp\u00E9) -->\r\n<ng-template #buttonTemplate>\r\n @if (!isDropdown) {\r\n <button type=\"button\" class=\"btn\" [class]=\"'btn-' + type + ' ' + cssClass\" [ngClass]=\"getButtonClasses()\"\r\n [disabled]=\"isDisabled\" (click)=\"onBtnAction()\" [attr.data-test-ctw]=\"dataTest\"\r\n [attr.aria-describedby]=\"withTooltip && isTooltipOpened ? 'ctw-tooltip-' + tooltipRandomId : null\"\r\n (mouseenter)=\"withTooltip && tooltipTrigger === 'hover' ? showTooltip() : null\"\r\n (mouseleave)=\"withTooltip && tooltipTrigger === 'hover' ? hideTooltip() : null\"\r\n (click)=\"withTooltip && tooltipTrigger === 'click' ? showTooltip() : null\">\r\n\r\n @if (isLoading) {\r\n <span class=\"spinner-border spinner-border-sm\" aria-hidden=\"true\"></span>\r\n <span class=\"visually-hidden\" role=\"status\">{{ '_COMMON._HTTP.TXT_LOADING' | translate }}</span>\r\n }\r\n\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n </button>\r\n }\r\n @else {\r\n <div (clickOutside)=\"onClickOutside()\" ctwClickOutside #dropdown class=\"d-inline-block\">\r\n <button class=\"btn\" [class]=\"'btn-' + type + ' '\" type=\"button\"\r\n [ngClass]=\"getButtonClasses()\"\r\n [disabled]=\"isDisabled\" [id]=\"id\" aria-expanded=\"false\" (click)=\"toggleDropdown()\" #dropdownToggle\r\n [attr.data-test-ctw]=\"dataTest\"\r\n [attr.aria-describedby]=\"withTooltip && isTooltipOpened ? 'ctw-tooltip-' + tooltipRandomId : null\"\r\n (mouseenter)=\"withTooltip && tooltipTrigger === 'hover' ? showTooltip() : null\"\r\n (mouseleave)=\"withTooltip && tooltipTrigger === 'hover' ? hideTooltip() : null\">\r\n\r\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\r\n </button>\r\n\r\n <div [attr.aria-labelledby]=\"id\" class=\"dropdown-menu\" [ngClass]=\"placementCss\" #dropdownMenu>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<!-- Template existant du contenu du bouton -->\r\n<ng-template #buttonContent>\r\n @if (withIcon && iconPosition === buttonPositionEnum.left) {\r\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\r\n }\r\n\r\n @if(withOnlyIcon) {\r\n <span class=\"visually-hidden\">{{label | translate }}</span>\r\n }\r\n @else {\r\n {{ label | translate }}\r\n }\r\n\r\n @if (withIcon && iconPosition === buttonPositionEnum.right) {\r\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #iconContent>\r\n @if(withOnlyIcon) {\r\n @switch(iconSize) {\r\n @case(buttonIconSizeEnum.xsmall) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['xs']\"></cw-icon>\r\n }\r\n @case(buttonIconSizeEnum.small) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['sm']\"></cw-icon>\r\n }\r\n @default {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['md']\"></cw-icon>\r\n }\r\n }\r\n }\r\n @else {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSizeEnum['md']\"></cw-icon>\r\n }\r\n</ng-template>\r\n" }]
1451
970
  }], ctorParameters: () => [], propDecorators: { type: [{
1452
971
  type: Input
1453
972
  }], label: [{
@@ -1470,14 +989,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
1470
989
  type: Input
1471
990
  }], isDisabled: [{
1472
991
  type: Input
1473
- }], isLoading: [{
992
+ }], withSpinner: [{
1474
993
  type: Input
1475
994
  }], cssClass: [{
1476
995
  type: Input
1477
996
  }], dataTest: [{
1478
997
  type: Input
1479
- }], skeletonMode: [{
1480
- type: Input
1481
998
  }], withTooltip: [{
1482
999
  type: Input
1483
1000
  }], tooltipText: [{
@@ -1503,9 +1020,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
1503
1020
  }], dropdownToggle: [{
1504
1021
  type: ViewChild,
1505
1022
  args: ['dropdownToggle']
1506
- }], hostClasses: [{
1507
- type: HostBinding,
1508
- args: ['class']
1509
1023
  }] } });
1510
1024
 
1511
1025
  class DropdownComponent {
@@ -1559,10 +1073,10 @@ class DropdownComponent {
1559
1073
  this.closeDropdown();
1560
1074
  }
1561
1075
  }
1562
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1563
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: DropdownComponent, isStandalone: true, selector: "cw-dropdown", inputs: { id: "id", title: "title", icon: "icon", btnCustom: "btnCustom", btnCssClass: "btnCssClass", menuClass: "menuClass", placement: "placement", autoClose: "autoClose" }, outputs: { opened: "opened", closed: "closed" }, viewQueries: [{ propertyName: "dropdownElement", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "dropdownMenu", first: true, predicate: ["dropdownMenu"], descendants: true }, { propertyName: "dropdownToggle", first: true, predicate: ["dropdownToggle"], descendants: true }], ngImport: i0, template: "<div class=\"dropdown\" [class.show]=\"isOpen()\" (clickOutside)=\"onClickOutside()\" clickOutside #dropdown>\r\n\r\n <button type=\"button\" class=\"dropdown-toggle btn\" [id]=\"dropdownId\" [attr.aria-expanded]=\"isOpen()\"\r\n [attr.aria-haspopup]=\"true\" (click)=\"toggleDropdown()\" [ngClass]=\"btnCssClass\" #dropdownToggle>\r\n\r\n <!-- Custom button content -->\r\n <ng-content select=\"[button]\"></ng-content>\r\n\r\n <!-- Classic button with icon -->\r\n @if (!btnCustom) {\r\n <cw-icon label=\"Menu\"></cw-icon>\r\n }\r\n </button>\r\n\r\n <div [attr.aria-labelledby]=\"dropdownId\" class=\"dropdown-menu\" [class.show]=\"isOpen()\"\r\n [ngClass]=\"placementCss + ' ' + menuClass\" #dropdownMenu>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom", "spritePath"] }] }); }
1076
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1077
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DropdownComponent, isStandalone: true, selector: "cw-dropdown", inputs: { id: "id", title: "title", icon: "icon", btnCustom: "btnCustom", btnCssClass: "btnCssClass", menuClass: "menuClass", placement: "placement", autoClose: "autoClose" }, outputs: { opened: "opened", closed: "closed" }, viewQueries: [{ propertyName: "dropdownElement", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "dropdownMenu", first: true, predicate: ["dropdownMenu"], descendants: true }, { propertyName: "dropdownToggle", first: true, predicate: ["dropdownToggle"], descendants: true }], ngImport: i0, template: "<div class=\"dropdown\" [class.show]=\"isOpen()\" (clickOutside)=\"onClickOutside()\" clickOutside #dropdown>\r\n\r\n <button type=\"button\" class=\"dropdown-toggle btn\" [id]=\"dropdownId\" [attr.aria-expanded]=\"isOpen()\"\r\n [attr.aria-haspopup]=\"true\" (click)=\"toggleDropdown()\" [ngClass]=\"btnCssClass\" #dropdownToggle>\r\n\r\n <!-- Custom button content -->\r\n <ng-content select=\"[button]\"></ng-content>\r\n\r\n <!-- Classic button with icon -->\r\n @if (!btnCustom) {\r\n <cw-icon label=\"Menu\"></cw-icon>\r\n }\r\n </button>\r\n\r\n <div [attr.aria-labelledby]=\"dropdownId\" class=\"dropdown-menu\" [class.show]=\"isOpen()\"\r\n [ngClass]=\"placementCss + ' ' + menuClass\" #dropdownMenu>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "font", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom"] }] }); }
1564
1078
  }
1565
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DropdownComponent, decorators: [{
1079
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DropdownComponent, decorators: [{
1566
1080
  type: Component,
1567
1081
  args: [{ selector: 'cw-dropdown', standalone: true, imports: [
1568
1082
  CommonModule,
@@ -1639,10 +1153,10 @@ class ShowHidePasswordDirective {
1639
1153
  }
1640
1154
  });
1641
1155
  }
1642
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ShowHidePasswordDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Directive }); }
1643
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: ShowHidePasswordDirective, isStandalone: true, selector: "[showHidePassword]", ngImport: i0 }); }
1156
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ShowHidePasswordDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Directive }); }
1157
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: ShowHidePasswordDirective, isStandalone: true, selector: "[showHidePassword]", ngImport: i0 }); }
1644
1158
  }
1645
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ShowHidePasswordDirective, decorators: [{
1159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ShowHidePasswordDirective, decorators: [{
1646
1160
  type: Directive,
1647
1161
  args: [{
1648
1162
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -1732,12 +1246,7 @@ function parseTime(time) {
1732
1246
  }
1733
1247
  class FormFieldComponent {
1734
1248
  get hostClasses() {
1735
- return [
1736
- 'position-relative',
1737
- this.skeletonMode && 'skeleton form-control'
1738
- ]
1739
- .filter(Boolean)
1740
- .join(' ');
1249
+ return 'position-relative';
1741
1250
  }
1742
1251
  constructor() {
1743
1252
  this.displayLabel = true;
@@ -1746,11 +1255,9 @@ class FormFieldComponent {
1746
1255
  this.isInAddon = false;
1747
1256
  this.isReadonly = false;
1748
1257
  this.isDisabled = false;
1749
- this.skeletonMode = false;
1750
1258
  this.refreshEvent = new EventEmitter();
1751
1259
  this.textChanged = new EventEmitter();
1752
1260
  this.typeField = FormFieldTypeEnum;
1753
- this.spriteIcon = SpriteIconEnum;
1754
1261
  }
1755
1262
  get isRange() {
1756
1263
  if (!this.control)
@@ -1889,10 +1396,10 @@ class FormFieldComponent {
1889
1396
  }
1890
1397
  this.formControl.markAsTouched();
1891
1398
  }
1892
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1893
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: FormFieldComponent, isStandalone: true, selector: "cw-form-field", inputs: { control: "control", formGroup: "formGroup", type: "type", label: "label", displayLabel: "displayLabel", name: "name", placeholder: "placeholder", options: "options", rangeOptions: "rangeOptions", isRequired: "isRequired", help: "help", tooltip: "tooltip", addonLeft: "addonLeft", addonRight: "addonRight", isInAddon: "isInAddon", isReadonly: "isReadonly", isDisabled: "isDisabled", sliderValue: "sliderValue", sliderOptions: "sliderOptions", cssClass: "cssClass", skeletonMode: "skeletonMode" }, outputs: { refreshEvent: "refreshEvent", textChanged: "textChanged" }, host: { properties: { "class": "this.hostClasses" } }, queries: [{ propertyName: "optionTemplate", first: true, predicate: ["ngOptionTpl"], descendants: true, read: TemplateRef }, { propertyName: "labelTemplate", first: true, predicate: ["ngLabelTpl"], descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (!isInAddon) {\r\n @if (\r\n type !== typeField.checkbox &&\r\n type !== typeField.radio &&\r\n type !== typeField.checkboxButton &&\r\n type !== typeField.radioButton &&\r\n type !== typeField.checkboxInline &&\r\n type !== typeField.radioInline &&\r\n type !== typeField.switch &&\r\n type !== typeField.range &&\r\n type !== typeField.switchSmall\r\n\r\n ) {\r\n <label [for]=\"name\" class=\"form-label\" [class.visually-hidden]=\"!displayLabel\">\r\n {{ label }}\r\n\r\n @if (isRequired) {\r\n <span class=\"text-danger\">*</span>\r\n }\r\n\r\n @if (tooltip) {\r\n <button type=\"button\" class=\"btn btn-link btn-popover\" placement=\"bottom\" [ngbPopover]=\"popContent\" container=\"body\"\r\n triggers=\"mouseenter:mouseleave\">\r\n <span class=\"btn-popover-icon bo-icons bo-help\"></span>\r\n </button>\r\n <ng-template #popContent>\r\n <div [innerHTML]=\"tooltip\"></div>\r\n </ng-template>\r\n }\r\n </label>\r\n }\r\n\r\n @if (addonLeft || addonRight) {\r\n <div class=\"input-group\">\r\n @if(addonLeft) {\r\n <ng-container [ngTemplateOutlet]=\"addonLeft\"></ng-container>\r\n }\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n @if(addonRight) {\r\n <ng-container [ngTemplateOutlet]=\"addonRight\"></ng-container>\r\n }\r\n </div>\r\n }\r\n @else {\r\n @if ( isInInputGroup() ) {\r\n <div class=\"input-group\">\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n </div>\r\n }\r\n @else {\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n }\r\n }\r\n\r\n <!-- Error message -->\r\n @if (controlOrGroup?.invalid && controlOrGroup?.touched) {\r\n <div class=\"invalid-feedback d-block\" [id]=\"'error-' + name\">\r\n @if ((controlOrGroup?.errors?.['required']) || (getControl('start')?.errors?.['required'] || getControl('end')?.errors?.['required'])) {\r\n <span [innerHtml]=\"'_COMMON._FORM.ERROR_IS_MANDATORY' | translate: {label: label}\"></span>\r\n }\r\n @if(controlOrGroup?.errors?.['rangeInvalid']) {\r\n <span>{{'_COMMON._DATES.ERROR_START_END_PERIOD' | translate}}</span>\r\n }\r\n </div>\r\n }\r\n\r\n @if (help) {\r\n <small [id]=\"name + '-help'\" class=\"form-text text-muted\">{{help}}</small>\r\n }\r\n}\r\n@else {\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n}\r\n\r\n<ng-template #field>\r\n <!-- Text -->\r\n @if ([typeField.text, typeField.date, typeField.time, typeField.dateTime, typeField.number, typeField.file,\r\n typeField.email,\r\n typeField.color].includes(type)) {\r\n <input [type]=\"type\" class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.readonly]=\"isReadonly ? 'readonly' : null\" [disabled]=\"isDisabled\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" />\r\n }\r\n\r\n @if (type === typeField.password) {\r\n <input showHidePassword [type]=\"type\" class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.readonly]=\"isReadonly ? 'readonly' : null\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" />\r\n }\r\n\r\n <!-- Textarea -->\r\n @if (type === typeField.textarea) {\r\n <textarea class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.readonly]=\"isReadonly ? 'readonly' : null\" [attr.disabled]=\"isDisabled ? 'disabled' : null\"\r\n [attr.aria-required]=\"isRequired\" [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\"></textarea>\r\n }\r\n\r\n <!-- Select -->\r\n @if (type === typeField.select) {\r\n <ng-select [formControl]=\"formControl\" [items]=\"options\" bindLabel=\"label\" [labelForId]=\"name\" bindValue=\"value\"\r\n [ngClass]=\"cssClass\" [searchable]=\"false\" [placeholder]=\"placeholder ? placeholder : null\" [readonly]=\"isReadonly\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.aria-required]=\"isRequired\" [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" [attr.id]=\"name\"\r\n (blur)=\"onBlur()\">\r\n\r\n <!-- Template pour les options -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n @if (optionTemplate) {\r\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { item: item, index: index, searchTerm: search }\"></ng-container>\r\n }\r\n @else {\r\n <div>{{ item.label }}</div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Template pour le label -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n @if (labelTemplate) {\r\n <ng-container *ngTemplateOutlet=\"labelTemplate; context: { item: item }\"></ng-container>\r\n }\r\n @else {\r\n {{ item.label }}\r\n }\r\n </ng-template>\r\n </ng-select>\r\n }\r\n\r\n <!-- NgSelect -->\r\n @if (type === typeField.ngSelect || type === typeField.ngSelectMultiple) {\r\n <ng-select [formControl]=\"formControl\" [items]=\"options\" bindLabel=\"label\" [labelForId]=\"name\" bindValue=\"value\"\r\n [multiple]=\"type === typeField.ngSelectMultiple\" [ngClass]=\"cssClass\"\r\n [placeholder]=\"placeholder ? placeholder : null\" [readonly]=\"isReadonly\"\r\n [notFoundText]=\"'_COMMON.NO_RESULT' | translate\" [attr.disabled]=\"isDisabled ? 'disabled' : null\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" [attr.id]=\"name\"\r\n (blur)=\"onBlur()\" (search)=\"textChanged.emit($event?.term)\">\r\n\r\n <!-- Template pour les options -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n @if (optionTemplate) {\r\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { item: item, index: index, searchTerm: search }\"></ng-container>\r\n }\r\n @else {\r\n <div>{{ item.label }}</div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Template pour le label -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n @if (labelTemplate) {\r\n <ng-container *ngTemplateOutlet=\"labelTemplate; context: { item: item }\"></ng-container>\r\n }\r\n @else {\r\n {{ item.label }}\r\n }\r\n </ng-template>\r\n </ng-select>\r\n }\r\n\r\n <!-- Radio -->\r\n @if (type === typeField.radioInline || type === typeField.radio) {\r\n <fieldset [ngClass]=\"{ 'flex-column': type === typeField.radio }\">\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <ul class=\" mb-none\" [ngClass]=\"type === typeField.radioInline ? 'list-inline' : 'list-unstyled'\">\r\n <li *ngFor=\"let opt of options\" class=\"form-check\"\r\n [ngClass]=\"{ 'form-check-inline': type === typeField.radioInline }\">\r\n <input type=\"radio\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" [formControl]=\"formControl\"\r\n class=\"form-check-input\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"form-check-label\">{{ opt.label }}</label>\r\n </li>\r\n </ul>\r\n </fieldset>\r\n }\r\n\r\n <!-- Radio button -->\r\n @if (type === typeField.radioButton) {\r\n <fieldset>\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <div class=\"btn-group btn-group-secondary\">\r\n <ng-container *ngFor=\"let opt of options\">\r\n <input type=\"radio\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" [formControl]=\"formControl\"\r\n class=\"visually-hidden\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"btn btn-form\">{{ opt.label }}</label>\r\n </ng-container>\r\n </div>\r\n </fieldset>\r\n }\r\n\r\n <!-- Checkbox Switch -->\r\n @if (\r\n (type === typeField.checkbox ||\r\n type === typeField.switch ||\r\n type === typeField.switchSmall)\r\n && options.length === 0\r\n ) {\r\n <div class=\"form-check form-switch\" [ngClass]=\"{'form-switch-small': type === typeField.switchSmall}\">\r\n <input type=\"checkbox\" [id]=\"name\" [formControl]=\"formControl\" class=\"form-check-input\" />\r\n <label [for]=\"name\" class=\"form-check-label\">{{ label }}</label>\r\n </div>\r\n }\r\n\r\n <!-- Checkbox -->\r\n @if ((type === typeField.checkboxInline || type === typeField.checkbox) && options.length > 0) {\r\n <fieldset [ngClass]=\"{ 'flex-column': type === typeField.checkbox }\">\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <ul class=\"mb-none\" [ngClass]=\"type === typeField.checkboxInline ? 'list-inline' : 'list-unstyled'\">\r\n <li *ngFor=\"let opt of options\" class=\"form-check\"\r\n [ngClass]=\"{ 'form-check-inline': type === typeField.checkboxInline }\">\r\n <input type=\"checkbox\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" (change)=\"onCheckboxChange($event)\"\r\n [checked]=\"control.value?.includes(opt.value)\" class=\"form-check-input\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"form-check-label\">{{ opt.label }}</label>\r\n </li>\r\n </ul>\r\n </fieldset>\r\n }\r\n\r\n <!-- Checkbox button -->\r\n @if (type === typeField.checkboxButton) {\r\n <fieldset>\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <div class=\"btn-group btn-group-secondary\">\r\n <ng-container *ngFor=\"let opt of options\">\r\n <input type=\"checkbox\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" (change)=\"onCheckboxChange($event)\"\r\n [checked]=\"control.value?.includes(opt.value)\" class=\"visually-hidden\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"btn btn-form\">{{ opt.label }}</label>\r\n </ng-container>\r\n </div>\r\n </fieldset>\r\n }\r\n\r\n <!-- Period - DateToDate / TimeToTime / DateTimeToDateTime -->\r\n @if ([typeField.dateToDate, typeField.timeToTime, typeField.dateTimeToDateTime].includes(type) && isRange) {\r\n\r\n <div class=\"input-group\">\r\n\r\n <input [type]=\"getInputType()\" class=\"form-control\" [id]=\"name + '_start'\" [formControl]=\"getControl('start')\"\r\n [attr.placeholder]=\"type === typeField.timeToTime ? ('_COMMON._DATES.FROM' | translate) : ('_COMMON._DATES.FROM_TO_1' | translate)\"\r\n [ngClass]=\"[(cssClass || ''), getControl('start')?.value ? 'has-value' : '']\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.readonly]=\"isReadonly ? 'readonly' : null\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"getControl('start')?.invalid && getControl('start')?.touched\"\r\n [attr.aria-describedby]=\"getControl('start')?.invalid && getControl('start')?.touched ? 'error-' + name : null\" />\r\n\r\n @if(getControl('start')?.value) {\r\n <button type=\"button\" class=\"btn btn-secondary btn-clear-field\"\r\n (click)=\"onClearFieldPeriod('start')\">\r\n &times;\r\n </button>\r\n }\r\n\r\n <input [type]=\"getInputType()\" class=\"form-control\" [id]=\"name + '_end'\" [formControl]=\"getControl('end')\"\r\n [attr.placeholder]=\"type === typeField.timeToTime ? ('_COMMON._DATES.TO' | translate) : ('_COMMON._DATES.FROM_TO_2' | translate)\"\r\n [ngClass]=\"[(cssClass || ''), getControl('end')?.value ? 'has-value' : '']\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.readonly]=\"isReadonly ? 'readonly' : null\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\"\r\n [attr.aria-invalid]=\"getControl('end')?.invalid && getControl('end')?.touched\"\r\n [attr.aria-describedby]=\"getControl('end')?.invalid && getControl('end')?.touched ? 'error-' + name : null\" />\r\n\r\n <button *ngIf=\"getControl('end')?.value\" type=\"button\" class=\"btn btn-secondary btn-clear-field\"\r\n (click)=\"onClearFieldPeriod('end')\">\r\n &times;\r\n </button>\r\n </div>\r\n }\r\n\r\n @if ([typeField.datePlusOne, typeField.datePlusTwo, typeField.datePlusSeven, typeField.dateComplexe].includes(type)) {\r\n <div class=\"input-group\">\r\n\r\n @if (type === typeField.dateComplexe) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onDateAddDay('prev')\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n <cw-icon font=\"optyweb\" [icon]=\"spriteIcon.nextLeft\" [label]=\"'Jour pr\u00E9c\u00E9dent'\"></cw-icon>\r\n </button>\r\n }\r\n\r\n <input type=\"date\" class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.readonly]=\"isReadonly ? 'readonly' : null\" [disabled]=\"isDisabled\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" />\r\n <button *ngIf=\"formControl?.value\" class=\"btn btn-secondary btn-clear-field\" type=\"button\"\r\n (click)=\"onClearField(formControl)\">&times;</button>\r\n\r\n @if (type === typeField.dateComplexe) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onDateAddDay('next')\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n <cw-icon font=\"optyweb\" [icon]=\"spriteIcon.nextRight\" [label]=\"'Jour suivant'\"></cw-icon>\r\n </button>\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onRefresh()\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n <cw-icon font=\"optyweb\" [icon]=\"spriteIcon.toolbarRefresh\" [label]=\"'Rafra\u00EEchir'\"></cw-icon>\r\n </button>\r\n }\r\n\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(0)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J\r\n <span class=\"visually-hidden\">Aujourd'hui</span>\r\n </button>\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(1)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J+1\r\n <span class=\"visually-hidden\">Demain</span>\r\n </button>\r\n\r\n @if (type !== typeField.datePlusOne && type !== typeField.dateComplexe) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(2)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J+2\r\n <span class=\"visually-hidden\">Dans 2 jours</span>\r\n </button>\r\n\r\n @if (type !== typeField.datePlusTwo) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(7)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J+7\r\n <span class=\"visually-hidden\">Dans 7 jours</span>\r\n </button>\r\n }\r\n }\r\n </div>\r\n }\r\n\r\n @if (type === typeField.slider) {\r\n <ngx-slider [(value)]=\"sliderValue\" [options]=\"sliderOptions\" [formControl]=\"formControl\"></ngx-slider>\r\n }\r\n\r\n @if (type === typeField.range) {\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <button type=\"button\" class=\"btn slider-btn slider-btn-less\" (click)=\"onRangeStep('decrease')\"\r\n [disabled]=\"formControl.value <= rangeOptions.floor\">\r\n <span class=\"slider-btn-less-icon\" aria-hidden=\"true\"></span>\r\n <span class=\"visually-hidden\">Diminuer</span>\r\n </button>\r\n\r\n <div class=\"slider-input flex-grow-1 position-relative\">\r\n <label [for]=\"name\" class=\"slider-tooltip\" [style.left]=\"getRangePercent() + '%'\" aria-live=\"polite\"\r\n aria-atomic=\"true\">\r\n {{ label }} {{ formControl.value }}\r\n @if (rangeOptions.unit) {\r\n <abbr [title]=\"rangeOptions.unit\">{{ rangeOptions.unit }}</abbr>\r\n }\r\n </label>\r\n\r\n <div class=\"slider-custom-bar\">\r\n <div class=\"slider-custom-bar-selection\" [style.width]=\"getRangePercent() + '%'\">\r\n </div>\r\n </div>\r\n\r\n <input type=\"range\" [id]=\"name\" [formControl]=\"formControl\" [min]=\"rangeOptions.floor\" [max]=\"rangeOptions.ceil\"\r\n [step]=\"rangeOptions.step || 1\" class=\"form-control-range\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\" [disabled]=\"isDisabled\">\r\n </div>\r\n\r\n <button type=\"button\" class=\"btn slider-btn slider-btn-more\" (click)=\"onRangeStep('increase')\"\r\n [disabled]=\"formControl.value >= rangeOptions.ceil\">\r\n <span class=\"slider-btn-more-icon optyweb cw-toolbar-add\" aria-hidden=\"true\"></span>\r\n <span class=\"visually-hidden\">Augmenter</span>\r\n </button>\r\n </div>\r\n }\r\n\r\n @if (isInInputGroup()) {\r\n @if(formControl?.value) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\"\r\n (click)=\"onClearField(formControl)\">&times;</button>\r\n }\r\n }\r\n\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2$1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "tabFocusOnClearButton", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i3.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "ngmodule", type: NgbDropdownModule }, { kind: "ngmodule", type: NgxSliderModule }, { kind: "component", type: i4.SliderComponent, selector: "ngx-slider", inputs: ["value", "highValue", "options", "manualRefresh", "triggerFocus", "cancelUserChange"], outputs: ["valueChange", "highValueChange", "userChangeStart", "userChange", "userChangeEnd"] }, { kind: "directive", type: NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "ngbPopover", "popoverTitle", "placement", "popperOptions", "triggers", "positionTarget", "container", "disablePopover", "popoverClass", "popoverContext", "openDelay", "closeDelay"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }, { kind: "directive", type: ShowHidePasswordDirective, selector: "[showHidePassword]" }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom", "spritePath"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
1399
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1400
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: FormFieldComponent, isStandalone: true, selector: "cw-form-field", inputs: { control: "control", formGroup: "formGroup", type: "type", label: "label", displayLabel: "displayLabel", name: "name", placeholder: "placeholder", options: "options", rangeOptions: "rangeOptions", isRequired: "isRequired", help: "help", tooltip: "tooltip", addonLeft: "addonLeft", addonRight: "addonRight", isInAddon: "isInAddon", isReadonly: "isReadonly", isDisabled: "isDisabled", sliderValue: "sliderValue", sliderOptions: "sliderOptions", cssClass: "cssClass" }, outputs: { refreshEvent: "refreshEvent", textChanged: "textChanged" }, host: { properties: { "class": "this.hostClasses" } }, queries: [{ propertyName: "optionTemplate", first: true, predicate: ["ngOptionTpl"], descendants: true, read: TemplateRef }, { propertyName: "labelTemplate", first: true, predicate: ["ngLabelTpl"], descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (!isInAddon) {\r\n @if (\r\n type !== typeField.checkbox &&\r\n type !== typeField.radio &&\r\n type !== typeField.checkboxButton &&\r\n type !== typeField.radioButton &&\r\n type !== typeField.checkboxInline &&\r\n type !== typeField.radioInline &&\r\n type !== typeField.switch &&\r\n type !== typeField.range &&\r\n type !== typeField.switchSmall\r\n\r\n ) {\r\n <label [for]=\"name\" class=\"form-label\" [class.visually-hidden]=\"!displayLabel\">\r\n {{ label }}\r\n\r\n @if (isRequired) {\r\n <span class=\"text-danger\">*</span>\r\n }\r\n\r\n @if (tooltip) {\r\n <button type=\"button\" class=\"btn btn-link btn-popover\" placement=\"bottom\" [ngbPopover]=\"popContent\" container=\"body\"\r\n triggers=\"mouseenter:mouseleave\">\r\n <span class=\"btn-popover-icon bo-icons bo-help\"></span>\r\n </button>\r\n <ng-template #popContent>\r\n <div [innerHTML]=\"tooltip\"></div>\r\n </ng-template>\r\n }\r\n </label>\r\n }\r\n\r\n @if (addonLeft || addonRight) {\r\n <div class=\"input-group\">\r\n @if(addonLeft) {\r\n <ng-container [ngTemplateOutlet]=\"addonLeft\"></ng-container>\r\n }\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n @if(addonRight) {\r\n <ng-container [ngTemplateOutlet]=\"addonRight\"></ng-container>\r\n }\r\n </div>\r\n }\r\n @else {\r\n @if ( isInInputGroup() ) {\r\n <div class=\"input-group\">\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n </div>\r\n }\r\n @else {\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n }\r\n }\r\n\r\n <!-- Error message -->\r\n @if (controlOrGroup?.invalid && controlOrGroup?.touched) {\r\n <div class=\"invalid-feedback d-block\" [id]=\"'error-' + name\">\r\n @if ((controlOrGroup?.errors?.['required']) || (getControl('start')?.errors?.['required'] || getControl('end')?.errors?.['required'])) {\r\n <span [innerHtml]=\"'_COMMON._FORM.ERROR_IS_MANDATORY' | translate: {label: label}\"></span>\r\n }\r\n @if(controlOrGroup?.errors?.['rangeInvalid']) {\r\n <span>{{'_COMMON._DATES.ERROR_START_END_PERIOD' | translate}}</span>\r\n }\r\n </div>\r\n }\r\n\r\n @if (help) {\r\n <small [id]=\"name + '-help'\" class=\"form-text text-muted\">{{help}}</small>\r\n }\r\n}\r\n@else {\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n}\r\n\r\n<ng-template #field>\r\n <!-- Text -->\r\n @if ([typeField.text, typeField.date, typeField.time, typeField.dateTime, typeField.number, typeField.file,\r\n typeField.email,\r\n typeField.color].includes(type)) {\r\n <input [type]=\"type\" class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.readonly]=\"isReadonly ? 'readonly' : null\" [disabled]=\"isDisabled\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" />\r\n }\r\n\r\n @if (type === typeField.password) {\r\n <input showHidePassword [type]=\"type\" class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.readonly]=\"isReadonly ? 'readonly' : null\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" />\r\n }\r\n\r\n <!-- Textarea -->\r\n @if (type === typeField.textarea) {\r\n <textarea class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.readonly]=\"isReadonly ? 'readonly' : null\" [attr.disabled]=\"isDisabled ? 'disabled' : null\"\r\n [attr.aria-required]=\"isRequired\" [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\"></textarea>\r\n }\r\n\r\n <!-- Select -->\r\n @if (type === typeField.select) {\r\n <ng-select [formControl]=\"formControl\" [items]=\"options\" bindLabel=\"label\" [labelForId]=\"name\" bindValue=\"value\"\r\n [ngClass]=\"cssClass\" [searchable]=\"false\" [placeholder]=\"placeholder ? placeholder : null\" [readonly]=\"isReadonly\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.aria-required]=\"isRequired\" [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" [attr.id]=\"name\"\r\n (blur)=\"onBlur()\">\r\n\r\n <!-- Template pour les options -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n @if (optionTemplate) {\r\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { item: item, index: index, searchTerm: search }\"></ng-container>\r\n }\r\n @else {\r\n <div>{{ item.label }}</div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Template pour le label -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n @if (labelTemplate) {\r\n <ng-container *ngTemplateOutlet=\"labelTemplate; context: { item: item }\"></ng-container>\r\n }\r\n @else {\r\n {{ item.label }}\r\n }\r\n </ng-template>\r\n </ng-select>\r\n }\r\n\r\n <!-- NgSelect -->\r\n @if (type === typeField.ngSelect || type === typeField.ngSelectMultiple) {\r\n <ng-select [formControl]=\"formControl\" [items]=\"options\" bindLabel=\"label\" [labelForId]=\"name\" bindValue=\"value\"\r\n [multiple]=\"type === typeField.ngSelectMultiple\" [ngClass]=\"cssClass\"\r\n [placeholder]=\"placeholder ? placeholder : null\" [readonly]=\"isReadonly\"\r\n [notFoundText]=\"'_COMMON.NO_RESULT' | translate\" [attr.disabled]=\"isDisabled ? 'disabled' : null\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" [attr.id]=\"name\"\r\n (blur)=\"onBlur()\" (search)=\"textChanged.emit($event?.term)\">\r\n\r\n <!-- Template pour les options -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n @if (optionTemplate) {\r\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { item: item, index: index, searchTerm: search }\"></ng-container>\r\n }\r\n @else {\r\n <div>{{ item.label }}</div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Template pour le label -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n @if (labelTemplate) {\r\n <ng-container *ngTemplateOutlet=\"labelTemplate; context: { item: item }\"></ng-container>\r\n }\r\n @else {\r\n {{ item.label }}\r\n }\r\n </ng-template>\r\n </ng-select>\r\n }\r\n\r\n <!-- Radio -->\r\n @if (type === typeField.radioInline || type === typeField.radio) {\r\n <fieldset [ngClass]=\"{ 'flex-column': type === typeField.radio }\">\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <ul class=\" mb-none\" [ngClass]=\"type === typeField.radioInline ? 'list-inline' : 'list-unstyled'\">\r\n <li *ngFor=\"let opt of options\" class=\"form-check\"\r\n [ngClass]=\"{ 'form-check-inline': type === typeField.radioInline }\">\r\n <input type=\"radio\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" [formControl]=\"formControl\"\r\n class=\"form-check-input\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"form-check-label\">{{ opt.label }}</label>\r\n </li>\r\n </ul>\r\n </fieldset>\r\n }\r\n\r\n <!-- Radio button -->\r\n @if (type === typeField.radioButton) {\r\n <fieldset>\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <div class=\"btn-group btn-group-secondary\">\r\n <ng-container *ngFor=\"let opt of options\">\r\n <input type=\"radio\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" [formControl]=\"formControl\"\r\n class=\"visually-hidden\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"btn btn-form\">{{ opt.label }}</label>\r\n </ng-container>\r\n </div>\r\n </fieldset>\r\n }\r\n\r\n <!-- Checkbox Switch -->\r\n @if (\r\n (type === typeField.checkbox ||\r\n type === typeField.switch ||\r\n type === typeField.switchSmall)\r\n && options.length === 0\r\n ) {\r\n <div class=\"form-check form-switch\" [ngClass]=\"{'form-switch-small': type === typeField.switchSmall}\">\r\n <input type=\"checkbox\" [id]=\"name\" [formControl]=\"formControl\" class=\"form-check-input\" />\r\n <label [for]=\"name\" class=\"form-check-label\">{{ label }}</label>\r\n </div>\r\n }\r\n\r\n <!-- Checkbox -->\r\n @if ((type === typeField.checkboxInline || type === typeField.checkbox) && options.length > 0) {\r\n <fieldset [ngClass]=\"{ 'flex-column': type === typeField.checkbox }\">\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <ul class=\"mb-none\" [ngClass]=\"type === typeField.checkboxInline ? 'list-inline' : 'list-unstyled'\">\r\n <li *ngFor=\"let opt of options\" class=\"form-check\"\r\n [ngClass]=\"{ 'form-check-inline': type === typeField.checkboxInline }\">\r\n <input type=\"checkbox\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" (change)=\"onCheckboxChange($event)\"\r\n [checked]=\"control.value?.includes(opt.value)\" class=\"form-check-input\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"form-check-label\">{{ opt.label }}</label>\r\n </li>\r\n </ul>\r\n </fieldset>\r\n }\r\n\r\n <!-- Checkbox button -->\r\n @if (type === typeField.checkboxButton) {\r\n <fieldset>\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <div class=\"btn-group btn-group-secondary\">\r\n <ng-container *ngFor=\"let opt of options\">\r\n <input type=\"checkbox\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" (change)=\"onCheckboxChange($event)\"\r\n [checked]=\"control.value?.includes(opt.value)\" class=\"visually-hidden\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"btn btn-form\">{{ opt.label }}</label>\r\n </ng-container>\r\n </div>\r\n </fieldset>\r\n }\r\n\r\n <!-- Period - DateToDate / TimeToTime / DateTimeToDateTime -->\r\n @if ([typeField.dateToDate, typeField.timeToTime, typeField.dateTimeToDateTime].includes(type) && isRange) {\r\n\r\n <div class=\"input-group\">\r\n\r\n <input [type]=\"getInputType()\" class=\"form-control\" [id]=\"name + '_start'\" [formControl]=\"getControl('start')\"\r\n [attr.placeholder]=\"type === typeField.timeToTime ? ('_COMMON._DATES.FROM' | translate) : ('_COMMON._DATES.FROM_TO_1' | translate)\"\r\n [ngClass]=\"[(cssClass || ''), getControl('start')?.value ? 'has-value' : '']\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.readonly]=\"isReadonly ? 'readonly' : null\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"getControl('start')?.invalid && getControl('start')?.touched\"\r\n [attr.aria-describedby]=\"getControl('start')?.invalid && getControl('start')?.touched ? 'error-' + name : null\" />\r\n\r\n @if(getControl('start')?.value) {\r\n <button type=\"button\" class=\"btn btn-secondary btn-clear-field\"\r\n (click)=\"onClearFieldPeriod('start')\">\r\n &times;\r\n </button>\r\n }\r\n\r\n <input [type]=\"getInputType()\" class=\"form-control\" [id]=\"name + '_end'\" [formControl]=\"getControl('end')\"\r\n [attr.placeholder]=\"type === typeField.timeToTime ? ('_COMMON._DATES.TO' | translate) : ('_COMMON._DATES.FROM_TO_2' | translate)\"\r\n [ngClass]=\"[(cssClass || ''), getControl('end')?.value ? 'has-value' : '']\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.readonly]=\"isReadonly ? 'readonly' : null\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\"\r\n [attr.aria-invalid]=\"getControl('end')?.invalid && getControl('end')?.touched\"\r\n [attr.aria-describedby]=\"getControl('end')?.invalid && getControl('end')?.touched ? 'error-' + name : null\" />\r\n\r\n <button *ngIf=\"getControl('end')?.value\" type=\"button\" class=\"btn btn-secondary btn-clear-field\"\r\n (click)=\"onClearFieldPeriod('end')\">\r\n &times;\r\n </button>\r\n </div>\r\n }\r\n\r\n @if ([typeField.datePlusOne, typeField.datePlusTwo, typeField.datePlusSeven, typeField.dateComplexe].includes(type)) {\r\n <div class=\"input-group\">\r\n\r\n @if (type === typeField.dateComplexe) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onDateAddDay('prev')\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n <cw-icon font=\"optyweb\" icon=\"cw-nav-next-left\" [label]=\"'Jour pr\u00E9c\u00E9dent'\"></cw-icon>\r\n </button>\r\n }\r\n\r\n <input type=\"date\" class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.readonly]=\"isReadonly ? 'readonly' : null\" [disabled]=\"isDisabled\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" />\r\n <button *ngIf=\"formControl?.value\" class=\"btn btn-secondary btn-clear-field\" type=\"button\"\r\n (click)=\"onClearField(formControl)\">&times;</button>\r\n\r\n @if (type === typeField.dateComplexe) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onDateAddDay('next')\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n <cw-icon font=\"optyweb\" icon=\"cw-nav-next-right\" [label]=\"'Jour suivant'\"></cw-icon>\r\n </button>\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onRefresh()\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n <cw-icon font=\"optyweb\" icon=\"cw-toolbar-reload\" [label]=\"'Rafra\u00EEchir'\"></cw-icon>\r\n </button>\r\n }\r\n\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(0)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J\r\n <span class=\"visually-hidden\">Aujourd'hui</span>\r\n </button>\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(1)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J+1\r\n <span class=\"visually-hidden\">Demain</span>\r\n </button>\r\n\r\n @if (type !== typeField.datePlusOne && type !== typeField.dateComplexe) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(2)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J+2\r\n <span class=\"visually-hidden\">Dans 2 jours</span>\r\n </button>\r\n\r\n @if (type !== typeField.datePlusTwo) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(7)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J+7\r\n <span class=\"visually-hidden\">Dans 7 jours</span>\r\n </button>\r\n }\r\n }\r\n </div>\r\n }\r\n\r\n @if (type === typeField.slider) {\r\n <ngx-slider [(value)]=\"sliderValue\" [options]=\"sliderOptions\" [formControl]=\"formControl\"></ngx-slider>\r\n }\r\n\r\n @if (type === typeField.range) {\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <button type=\"button\" class=\"btn slider-btn slider-btn-less\" (click)=\"onRangeStep('decrease')\"\r\n [disabled]=\"formControl.value <= rangeOptions.floor\">\r\n <span class=\"slider-btn-less-icon\" aria-hidden=\"true\"></span>\r\n <span class=\"visually-hidden\">Diminuer</span>\r\n </button>\r\n\r\n <div class=\"slider-input flex-grow-1 position-relative\">\r\n <label [for]=\"name\" class=\"slider-tooltip\" [style.left]=\"getRangePercent() + '%'\" aria-live=\"polite\"\r\n aria-atomic=\"true\">\r\n {{ label }} {{ formControl.value }}\r\n @if (rangeOptions.unit) {\r\n <abbr [title]=\"rangeOptions.unit\">{{ rangeOptions.unit }}</abbr>\r\n }\r\n </label>\r\n\r\n <div class=\"slider-custom-bar\">\r\n <div class=\"slider-custom-bar-selection\" [style.width]=\"getRangePercent() + '%'\">\r\n </div>\r\n </div>\r\n\r\n <input type=\"range\" [id]=\"name\" [formControl]=\"formControl\" [min]=\"rangeOptions.floor\" [max]=\"rangeOptions.ceil\"\r\n [step]=\"rangeOptions.step || 1\" class=\"form-control-range\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\" [disabled]=\"isDisabled\">\r\n </div>\r\n\r\n <button type=\"button\" class=\"btn slider-btn slider-btn-more\" (click)=\"onRangeStep('increase')\"\r\n [disabled]=\"formControl.value >= rangeOptions.ceil\">\r\n <span class=\"slider-btn-more-icon optyweb cw-toolbar-add\" aria-hidden=\"true\"></span>\r\n <span class=\"visually-hidden\">Augmenter</span>\r\n </button>\r\n </div>\r\n }\r\n\r\n @if (isInInputGroup()) {\r\n @if(formControl?.value) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\"\r\n (click)=\"onClearField(formControl)\">&times;</button>\r\n }\r\n }\r\n\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2$1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "tabFocusOnClearButton", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i3.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "ngmodule", type: NgbDropdownModule }, { kind: "ngmodule", type: NgxSliderModule }, { kind: "component", type: i4.SliderComponent, selector: "ngx-slider", inputs: ["value", "highValue", "options", "manualRefresh", "triggerFocus", "cancelUserChange"], outputs: ["valueChange", "highValueChange", "userChangeStart", "userChange", "userChangeEnd"] }, { kind: "directive", type: NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "ngbPopover", "popoverTitle", "placement", "popperOptions", "triggers", "positionTarget", "container", "disablePopover", "popoverClass", "popoverContext", "openDelay", "closeDelay"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }, { kind: "directive", type: ShowHidePasswordDirective, selector: "[showHidePassword]" }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "font", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
1894
1401
  }
1895
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FormFieldComponent, decorators: [{
1402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FormFieldComponent, decorators: [{
1896
1403
  type: Component,
1897
1404
  args: [{ selector: 'cw-form-field', standalone: true, imports: [
1898
1405
  CommonModule,
@@ -1905,7 +1412,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
1905
1412
  NgbPopover,
1906
1413
  ShowHidePasswordDirective,
1907
1414
  IconComponent
1908
- ], template: "@if (!isInAddon) {\r\n @if (\r\n type !== typeField.checkbox &&\r\n type !== typeField.radio &&\r\n type !== typeField.checkboxButton &&\r\n type !== typeField.radioButton &&\r\n type !== typeField.checkboxInline &&\r\n type !== typeField.radioInline &&\r\n type !== typeField.switch &&\r\n type !== typeField.range &&\r\n type !== typeField.switchSmall\r\n\r\n ) {\r\n <label [for]=\"name\" class=\"form-label\" [class.visually-hidden]=\"!displayLabel\">\r\n {{ label }}\r\n\r\n @if (isRequired) {\r\n <span class=\"text-danger\">*</span>\r\n }\r\n\r\n @if (tooltip) {\r\n <button type=\"button\" class=\"btn btn-link btn-popover\" placement=\"bottom\" [ngbPopover]=\"popContent\" container=\"body\"\r\n triggers=\"mouseenter:mouseleave\">\r\n <span class=\"btn-popover-icon bo-icons bo-help\"></span>\r\n </button>\r\n <ng-template #popContent>\r\n <div [innerHTML]=\"tooltip\"></div>\r\n </ng-template>\r\n }\r\n </label>\r\n }\r\n\r\n @if (addonLeft || addonRight) {\r\n <div class=\"input-group\">\r\n @if(addonLeft) {\r\n <ng-container [ngTemplateOutlet]=\"addonLeft\"></ng-container>\r\n }\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n @if(addonRight) {\r\n <ng-container [ngTemplateOutlet]=\"addonRight\"></ng-container>\r\n }\r\n </div>\r\n }\r\n @else {\r\n @if ( isInInputGroup() ) {\r\n <div class=\"input-group\">\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n </div>\r\n }\r\n @else {\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n }\r\n }\r\n\r\n <!-- Error message -->\r\n @if (controlOrGroup?.invalid && controlOrGroup?.touched) {\r\n <div class=\"invalid-feedback d-block\" [id]=\"'error-' + name\">\r\n @if ((controlOrGroup?.errors?.['required']) || (getControl('start')?.errors?.['required'] || getControl('end')?.errors?.['required'])) {\r\n <span [innerHtml]=\"'_COMMON._FORM.ERROR_IS_MANDATORY' | translate: {label: label}\"></span>\r\n }\r\n @if(controlOrGroup?.errors?.['rangeInvalid']) {\r\n <span>{{'_COMMON._DATES.ERROR_START_END_PERIOD' | translate}}</span>\r\n }\r\n </div>\r\n }\r\n\r\n @if (help) {\r\n <small [id]=\"name + '-help'\" class=\"form-text text-muted\">{{help}}</small>\r\n }\r\n}\r\n@else {\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n}\r\n\r\n<ng-template #field>\r\n <!-- Text -->\r\n @if ([typeField.text, typeField.date, typeField.time, typeField.dateTime, typeField.number, typeField.file,\r\n typeField.email,\r\n typeField.color].includes(type)) {\r\n <input [type]=\"type\" class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.readonly]=\"isReadonly ? 'readonly' : null\" [disabled]=\"isDisabled\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" />\r\n }\r\n\r\n @if (type === typeField.password) {\r\n <input showHidePassword [type]=\"type\" class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.readonly]=\"isReadonly ? 'readonly' : null\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" />\r\n }\r\n\r\n <!-- Textarea -->\r\n @if (type === typeField.textarea) {\r\n <textarea class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.readonly]=\"isReadonly ? 'readonly' : null\" [attr.disabled]=\"isDisabled ? 'disabled' : null\"\r\n [attr.aria-required]=\"isRequired\" [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\"></textarea>\r\n }\r\n\r\n <!-- Select -->\r\n @if (type === typeField.select) {\r\n <ng-select [formControl]=\"formControl\" [items]=\"options\" bindLabel=\"label\" [labelForId]=\"name\" bindValue=\"value\"\r\n [ngClass]=\"cssClass\" [searchable]=\"false\" [placeholder]=\"placeholder ? placeholder : null\" [readonly]=\"isReadonly\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.aria-required]=\"isRequired\" [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" [attr.id]=\"name\"\r\n (blur)=\"onBlur()\">\r\n\r\n <!-- Template pour les options -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n @if (optionTemplate) {\r\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { item: item, index: index, searchTerm: search }\"></ng-container>\r\n }\r\n @else {\r\n <div>{{ item.label }}</div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Template pour le label -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n @if (labelTemplate) {\r\n <ng-container *ngTemplateOutlet=\"labelTemplate; context: { item: item }\"></ng-container>\r\n }\r\n @else {\r\n {{ item.label }}\r\n }\r\n </ng-template>\r\n </ng-select>\r\n }\r\n\r\n <!-- NgSelect -->\r\n @if (type === typeField.ngSelect || type === typeField.ngSelectMultiple) {\r\n <ng-select [formControl]=\"formControl\" [items]=\"options\" bindLabel=\"label\" [labelForId]=\"name\" bindValue=\"value\"\r\n [multiple]=\"type === typeField.ngSelectMultiple\" [ngClass]=\"cssClass\"\r\n [placeholder]=\"placeholder ? placeholder : null\" [readonly]=\"isReadonly\"\r\n [notFoundText]=\"'_COMMON.NO_RESULT' | translate\" [attr.disabled]=\"isDisabled ? 'disabled' : null\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" [attr.id]=\"name\"\r\n (blur)=\"onBlur()\" (search)=\"textChanged.emit($event?.term)\">\r\n\r\n <!-- Template pour les options -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n @if (optionTemplate) {\r\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { item: item, index: index, searchTerm: search }\"></ng-container>\r\n }\r\n @else {\r\n <div>{{ item.label }}</div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Template pour le label -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n @if (labelTemplate) {\r\n <ng-container *ngTemplateOutlet=\"labelTemplate; context: { item: item }\"></ng-container>\r\n }\r\n @else {\r\n {{ item.label }}\r\n }\r\n </ng-template>\r\n </ng-select>\r\n }\r\n\r\n <!-- Radio -->\r\n @if (type === typeField.radioInline || type === typeField.radio) {\r\n <fieldset [ngClass]=\"{ 'flex-column': type === typeField.radio }\">\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <ul class=\" mb-none\" [ngClass]=\"type === typeField.radioInline ? 'list-inline' : 'list-unstyled'\">\r\n <li *ngFor=\"let opt of options\" class=\"form-check\"\r\n [ngClass]=\"{ 'form-check-inline': type === typeField.radioInline }\">\r\n <input type=\"radio\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" [formControl]=\"formControl\"\r\n class=\"form-check-input\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"form-check-label\">{{ opt.label }}</label>\r\n </li>\r\n </ul>\r\n </fieldset>\r\n }\r\n\r\n <!-- Radio button -->\r\n @if (type === typeField.radioButton) {\r\n <fieldset>\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <div class=\"btn-group btn-group-secondary\">\r\n <ng-container *ngFor=\"let opt of options\">\r\n <input type=\"radio\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" [formControl]=\"formControl\"\r\n class=\"visually-hidden\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"btn btn-form\">{{ opt.label }}</label>\r\n </ng-container>\r\n </div>\r\n </fieldset>\r\n }\r\n\r\n <!-- Checkbox Switch -->\r\n @if (\r\n (type === typeField.checkbox ||\r\n type === typeField.switch ||\r\n type === typeField.switchSmall)\r\n && options.length === 0\r\n ) {\r\n <div class=\"form-check form-switch\" [ngClass]=\"{'form-switch-small': type === typeField.switchSmall}\">\r\n <input type=\"checkbox\" [id]=\"name\" [formControl]=\"formControl\" class=\"form-check-input\" />\r\n <label [for]=\"name\" class=\"form-check-label\">{{ label }}</label>\r\n </div>\r\n }\r\n\r\n <!-- Checkbox -->\r\n @if ((type === typeField.checkboxInline || type === typeField.checkbox) && options.length > 0) {\r\n <fieldset [ngClass]=\"{ 'flex-column': type === typeField.checkbox }\">\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <ul class=\"mb-none\" [ngClass]=\"type === typeField.checkboxInline ? 'list-inline' : 'list-unstyled'\">\r\n <li *ngFor=\"let opt of options\" class=\"form-check\"\r\n [ngClass]=\"{ 'form-check-inline': type === typeField.checkboxInline }\">\r\n <input type=\"checkbox\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" (change)=\"onCheckboxChange($event)\"\r\n [checked]=\"control.value?.includes(opt.value)\" class=\"form-check-input\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"form-check-label\">{{ opt.label }}</label>\r\n </li>\r\n </ul>\r\n </fieldset>\r\n }\r\n\r\n <!-- Checkbox button -->\r\n @if (type === typeField.checkboxButton) {\r\n <fieldset>\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <div class=\"btn-group btn-group-secondary\">\r\n <ng-container *ngFor=\"let opt of options\">\r\n <input type=\"checkbox\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" (change)=\"onCheckboxChange($event)\"\r\n [checked]=\"control.value?.includes(opt.value)\" class=\"visually-hidden\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"btn btn-form\">{{ opt.label }}</label>\r\n </ng-container>\r\n </div>\r\n </fieldset>\r\n }\r\n\r\n <!-- Period - DateToDate / TimeToTime / DateTimeToDateTime -->\r\n @if ([typeField.dateToDate, typeField.timeToTime, typeField.dateTimeToDateTime].includes(type) && isRange) {\r\n\r\n <div class=\"input-group\">\r\n\r\n <input [type]=\"getInputType()\" class=\"form-control\" [id]=\"name + '_start'\" [formControl]=\"getControl('start')\"\r\n [attr.placeholder]=\"type === typeField.timeToTime ? ('_COMMON._DATES.FROM' | translate) : ('_COMMON._DATES.FROM_TO_1' | translate)\"\r\n [ngClass]=\"[(cssClass || ''), getControl('start')?.value ? 'has-value' : '']\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.readonly]=\"isReadonly ? 'readonly' : null\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"getControl('start')?.invalid && getControl('start')?.touched\"\r\n [attr.aria-describedby]=\"getControl('start')?.invalid && getControl('start')?.touched ? 'error-' + name : null\" />\r\n\r\n @if(getControl('start')?.value) {\r\n <button type=\"button\" class=\"btn btn-secondary btn-clear-field\"\r\n (click)=\"onClearFieldPeriod('start')\">\r\n &times;\r\n </button>\r\n }\r\n\r\n <input [type]=\"getInputType()\" class=\"form-control\" [id]=\"name + '_end'\" [formControl]=\"getControl('end')\"\r\n [attr.placeholder]=\"type === typeField.timeToTime ? ('_COMMON._DATES.TO' | translate) : ('_COMMON._DATES.FROM_TO_2' | translate)\"\r\n [ngClass]=\"[(cssClass || ''), getControl('end')?.value ? 'has-value' : '']\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.readonly]=\"isReadonly ? 'readonly' : null\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\"\r\n [attr.aria-invalid]=\"getControl('end')?.invalid && getControl('end')?.touched\"\r\n [attr.aria-describedby]=\"getControl('end')?.invalid && getControl('end')?.touched ? 'error-' + name : null\" />\r\n\r\n <button *ngIf=\"getControl('end')?.value\" type=\"button\" class=\"btn btn-secondary btn-clear-field\"\r\n (click)=\"onClearFieldPeriod('end')\">\r\n &times;\r\n </button>\r\n </div>\r\n }\r\n\r\n @if ([typeField.datePlusOne, typeField.datePlusTwo, typeField.datePlusSeven, typeField.dateComplexe].includes(type)) {\r\n <div class=\"input-group\">\r\n\r\n @if (type === typeField.dateComplexe) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onDateAddDay('prev')\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n <cw-icon font=\"optyweb\" [icon]=\"spriteIcon.nextLeft\" [label]=\"'Jour pr\u00E9c\u00E9dent'\"></cw-icon>\r\n </button>\r\n }\r\n\r\n <input type=\"date\" class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.readonly]=\"isReadonly ? 'readonly' : null\" [disabled]=\"isDisabled\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" />\r\n <button *ngIf=\"formControl?.value\" class=\"btn btn-secondary btn-clear-field\" type=\"button\"\r\n (click)=\"onClearField(formControl)\">&times;</button>\r\n\r\n @if (type === typeField.dateComplexe) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onDateAddDay('next')\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n <cw-icon font=\"optyweb\" [icon]=\"spriteIcon.nextRight\" [label]=\"'Jour suivant'\"></cw-icon>\r\n </button>\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onRefresh()\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n <cw-icon font=\"optyweb\" [icon]=\"spriteIcon.toolbarRefresh\" [label]=\"'Rafra\u00EEchir'\"></cw-icon>\r\n </button>\r\n }\r\n\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(0)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J\r\n <span class=\"visually-hidden\">Aujourd'hui</span>\r\n </button>\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(1)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J+1\r\n <span class=\"visually-hidden\">Demain</span>\r\n </button>\r\n\r\n @if (type !== typeField.datePlusOne && type !== typeField.dateComplexe) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(2)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J+2\r\n <span class=\"visually-hidden\">Dans 2 jours</span>\r\n </button>\r\n\r\n @if (type !== typeField.datePlusTwo) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(7)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J+7\r\n <span class=\"visually-hidden\">Dans 7 jours</span>\r\n </button>\r\n }\r\n }\r\n </div>\r\n }\r\n\r\n @if (type === typeField.slider) {\r\n <ngx-slider [(value)]=\"sliderValue\" [options]=\"sliderOptions\" [formControl]=\"formControl\"></ngx-slider>\r\n }\r\n\r\n @if (type === typeField.range) {\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <button type=\"button\" class=\"btn slider-btn slider-btn-less\" (click)=\"onRangeStep('decrease')\"\r\n [disabled]=\"formControl.value <= rangeOptions.floor\">\r\n <span class=\"slider-btn-less-icon\" aria-hidden=\"true\"></span>\r\n <span class=\"visually-hidden\">Diminuer</span>\r\n </button>\r\n\r\n <div class=\"slider-input flex-grow-1 position-relative\">\r\n <label [for]=\"name\" class=\"slider-tooltip\" [style.left]=\"getRangePercent() + '%'\" aria-live=\"polite\"\r\n aria-atomic=\"true\">\r\n {{ label }} {{ formControl.value }}\r\n @if (rangeOptions.unit) {\r\n <abbr [title]=\"rangeOptions.unit\">{{ rangeOptions.unit }}</abbr>\r\n }\r\n </label>\r\n\r\n <div class=\"slider-custom-bar\">\r\n <div class=\"slider-custom-bar-selection\" [style.width]=\"getRangePercent() + '%'\">\r\n </div>\r\n </div>\r\n\r\n <input type=\"range\" [id]=\"name\" [formControl]=\"formControl\" [min]=\"rangeOptions.floor\" [max]=\"rangeOptions.ceil\"\r\n [step]=\"rangeOptions.step || 1\" class=\"form-control-range\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\" [disabled]=\"isDisabled\">\r\n </div>\r\n\r\n <button type=\"button\" class=\"btn slider-btn slider-btn-more\" (click)=\"onRangeStep('increase')\"\r\n [disabled]=\"formControl.value >= rangeOptions.ceil\">\r\n <span class=\"slider-btn-more-icon optyweb cw-toolbar-add\" aria-hidden=\"true\"></span>\r\n <span class=\"visually-hidden\">Augmenter</span>\r\n </button>\r\n </div>\r\n }\r\n\r\n @if (isInInputGroup()) {\r\n @if(formControl?.value) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\"\r\n (click)=\"onClearField(formControl)\">&times;</button>\r\n }\r\n }\r\n\r\n</ng-template>\r\n" }]
1415
+ ], template: "@if (!isInAddon) {\r\n @if (\r\n type !== typeField.checkbox &&\r\n type !== typeField.radio &&\r\n type !== typeField.checkboxButton &&\r\n type !== typeField.radioButton &&\r\n type !== typeField.checkboxInline &&\r\n type !== typeField.radioInline &&\r\n type !== typeField.switch &&\r\n type !== typeField.range &&\r\n type !== typeField.switchSmall\r\n\r\n ) {\r\n <label [for]=\"name\" class=\"form-label\" [class.visually-hidden]=\"!displayLabel\">\r\n {{ label }}\r\n\r\n @if (isRequired) {\r\n <span class=\"text-danger\">*</span>\r\n }\r\n\r\n @if (tooltip) {\r\n <button type=\"button\" class=\"btn btn-link btn-popover\" placement=\"bottom\" [ngbPopover]=\"popContent\" container=\"body\"\r\n triggers=\"mouseenter:mouseleave\">\r\n <span class=\"btn-popover-icon bo-icons bo-help\"></span>\r\n </button>\r\n <ng-template #popContent>\r\n <div [innerHTML]=\"tooltip\"></div>\r\n </ng-template>\r\n }\r\n </label>\r\n }\r\n\r\n @if (addonLeft || addonRight) {\r\n <div class=\"input-group\">\r\n @if(addonLeft) {\r\n <ng-container [ngTemplateOutlet]=\"addonLeft\"></ng-container>\r\n }\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n @if(addonRight) {\r\n <ng-container [ngTemplateOutlet]=\"addonRight\"></ng-container>\r\n }\r\n </div>\r\n }\r\n @else {\r\n @if ( isInInputGroup() ) {\r\n <div class=\"input-group\">\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n </div>\r\n }\r\n @else {\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n }\r\n }\r\n\r\n <!-- Error message -->\r\n @if (controlOrGroup?.invalid && controlOrGroup?.touched) {\r\n <div class=\"invalid-feedback d-block\" [id]=\"'error-' + name\">\r\n @if ((controlOrGroup?.errors?.['required']) || (getControl('start')?.errors?.['required'] || getControl('end')?.errors?.['required'])) {\r\n <span [innerHtml]=\"'_COMMON._FORM.ERROR_IS_MANDATORY' | translate: {label: label}\"></span>\r\n }\r\n @if(controlOrGroup?.errors?.['rangeInvalid']) {\r\n <span>{{'_COMMON._DATES.ERROR_START_END_PERIOD' | translate}}</span>\r\n }\r\n </div>\r\n }\r\n\r\n @if (help) {\r\n <small [id]=\"name + '-help'\" class=\"form-text text-muted\">{{help}}</small>\r\n }\r\n}\r\n@else {\r\n <ng-container [ngTemplateOutlet]=\"field\"></ng-container>\r\n}\r\n\r\n<ng-template #field>\r\n <!-- Text -->\r\n @if ([typeField.text, typeField.date, typeField.time, typeField.dateTime, typeField.number, typeField.file,\r\n typeField.email,\r\n typeField.color].includes(type)) {\r\n <input [type]=\"type\" class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.readonly]=\"isReadonly ? 'readonly' : null\" [disabled]=\"isDisabled\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" />\r\n }\r\n\r\n @if (type === typeField.password) {\r\n <input showHidePassword [type]=\"type\" class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.readonly]=\"isReadonly ? 'readonly' : null\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" />\r\n }\r\n\r\n <!-- Textarea -->\r\n @if (type === typeField.textarea) {\r\n <textarea class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.readonly]=\"isReadonly ? 'readonly' : null\" [attr.disabled]=\"isDisabled ? 'disabled' : null\"\r\n [attr.aria-required]=\"isRequired\" [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\"></textarea>\r\n }\r\n\r\n <!-- Select -->\r\n @if (type === typeField.select) {\r\n <ng-select [formControl]=\"formControl\" [items]=\"options\" bindLabel=\"label\" [labelForId]=\"name\" bindValue=\"value\"\r\n [ngClass]=\"cssClass\" [searchable]=\"false\" [placeholder]=\"placeholder ? placeholder : null\" [readonly]=\"isReadonly\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.aria-required]=\"isRequired\" [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" [attr.id]=\"name\"\r\n (blur)=\"onBlur()\">\r\n\r\n <!-- Template pour les options -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n @if (optionTemplate) {\r\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { item: item, index: index, searchTerm: search }\"></ng-container>\r\n }\r\n @else {\r\n <div>{{ item.label }}</div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Template pour le label -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n @if (labelTemplate) {\r\n <ng-container *ngTemplateOutlet=\"labelTemplate; context: { item: item }\"></ng-container>\r\n }\r\n @else {\r\n {{ item.label }}\r\n }\r\n </ng-template>\r\n </ng-select>\r\n }\r\n\r\n <!-- NgSelect -->\r\n @if (type === typeField.ngSelect || type === typeField.ngSelectMultiple) {\r\n <ng-select [formControl]=\"formControl\" [items]=\"options\" bindLabel=\"label\" [labelForId]=\"name\" bindValue=\"value\"\r\n [multiple]=\"type === typeField.ngSelectMultiple\" [ngClass]=\"cssClass\"\r\n [placeholder]=\"placeholder ? placeholder : null\" [readonly]=\"isReadonly\"\r\n [notFoundText]=\"'_COMMON.NO_RESULT' | translate\" [attr.disabled]=\"isDisabled ? 'disabled' : null\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" [attr.id]=\"name\"\r\n (blur)=\"onBlur()\" (search)=\"textChanged.emit($event?.term)\">\r\n\r\n <!-- Template pour les options -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n @if (optionTemplate) {\r\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { item: item, index: index, searchTerm: search }\"></ng-container>\r\n }\r\n @else {\r\n <div>{{ item.label }}</div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Template pour le label -->\r\n <ng-template ng-label-tmp let-item=\"item\">\r\n @if (labelTemplate) {\r\n <ng-container *ngTemplateOutlet=\"labelTemplate; context: { item: item }\"></ng-container>\r\n }\r\n @else {\r\n {{ item.label }}\r\n }\r\n </ng-template>\r\n </ng-select>\r\n }\r\n\r\n <!-- Radio -->\r\n @if (type === typeField.radioInline || type === typeField.radio) {\r\n <fieldset [ngClass]=\"{ 'flex-column': type === typeField.radio }\">\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <ul class=\" mb-none\" [ngClass]=\"type === typeField.radioInline ? 'list-inline' : 'list-unstyled'\">\r\n <li *ngFor=\"let opt of options\" class=\"form-check\"\r\n [ngClass]=\"{ 'form-check-inline': type === typeField.radioInline }\">\r\n <input type=\"radio\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" [formControl]=\"formControl\"\r\n class=\"form-check-input\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"form-check-label\">{{ opt.label }}</label>\r\n </li>\r\n </ul>\r\n </fieldset>\r\n }\r\n\r\n <!-- Radio button -->\r\n @if (type === typeField.radioButton) {\r\n <fieldset>\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <div class=\"btn-group btn-group-secondary\">\r\n <ng-container *ngFor=\"let opt of options\">\r\n <input type=\"radio\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" [formControl]=\"formControl\"\r\n class=\"visually-hidden\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"btn btn-form\">{{ opt.label }}</label>\r\n </ng-container>\r\n </div>\r\n </fieldset>\r\n }\r\n\r\n <!-- Checkbox Switch -->\r\n @if (\r\n (type === typeField.checkbox ||\r\n type === typeField.switch ||\r\n type === typeField.switchSmall)\r\n && options.length === 0\r\n ) {\r\n <div class=\"form-check form-switch\" [ngClass]=\"{'form-switch-small': type === typeField.switchSmall}\">\r\n <input type=\"checkbox\" [id]=\"name\" [formControl]=\"formControl\" class=\"form-check-input\" />\r\n <label [for]=\"name\" class=\"form-check-label\">{{ label }}</label>\r\n </div>\r\n }\r\n\r\n <!-- Checkbox -->\r\n @if ((type === typeField.checkboxInline || type === typeField.checkbox) && options.length > 0) {\r\n <fieldset [ngClass]=\"{ 'flex-column': type === typeField.checkbox }\">\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <ul class=\"mb-none\" [ngClass]=\"type === typeField.checkboxInline ? 'list-inline' : 'list-unstyled'\">\r\n <li *ngFor=\"let opt of options\" class=\"form-check\"\r\n [ngClass]=\"{ 'form-check-inline': type === typeField.checkboxInline }\">\r\n <input type=\"checkbox\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" (change)=\"onCheckboxChange($event)\"\r\n [checked]=\"control.value?.includes(opt.value)\" class=\"form-check-input\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"form-check-label\">{{ opt.label }}</label>\r\n </li>\r\n </ul>\r\n </fieldset>\r\n }\r\n\r\n <!-- Checkbox button -->\r\n @if (type === typeField.checkboxButton) {\r\n <fieldset>\r\n <legend [class.visually-hidden]=\"!displayLabel\">{{label}}</legend>\r\n <div class=\"btn-group btn-group-secondary\">\r\n <ng-container *ngFor=\"let opt of options\">\r\n <input type=\"checkbox\" [id]=\"name + '_' + opt.value\" [value]=\"opt.value\" (change)=\"onCheckboxChange($event)\"\r\n [checked]=\"control.value?.includes(opt.value)\" class=\"visually-hidden\" />\r\n <label [for]=\"name + '_' + opt.value\" class=\"btn btn-form\">{{ opt.label }}</label>\r\n </ng-container>\r\n </div>\r\n </fieldset>\r\n }\r\n\r\n <!-- Period - DateToDate / TimeToTime / DateTimeToDateTime -->\r\n @if ([typeField.dateToDate, typeField.timeToTime, typeField.dateTimeToDateTime].includes(type) && isRange) {\r\n\r\n <div class=\"input-group\">\r\n\r\n <input [type]=\"getInputType()\" class=\"form-control\" [id]=\"name + '_start'\" [formControl]=\"getControl('start')\"\r\n [attr.placeholder]=\"type === typeField.timeToTime ? ('_COMMON._DATES.FROM' | translate) : ('_COMMON._DATES.FROM_TO_1' | translate)\"\r\n [ngClass]=\"[(cssClass || ''), getControl('start')?.value ? 'has-value' : '']\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.readonly]=\"isReadonly ? 'readonly' : null\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"getControl('start')?.invalid && getControl('start')?.touched\"\r\n [attr.aria-describedby]=\"getControl('start')?.invalid && getControl('start')?.touched ? 'error-' + name : null\" />\r\n\r\n @if(getControl('start')?.value) {\r\n <button type=\"button\" class=\"btn btn-secondary btn-clear-field\"\r\n (click)=\"onClearFieldPeriod('start')\">\r\n &times;\r\n </button>\r\n }\r\n\r\n <input [type]=\"getInputType()\" class=\"form-control\" [id]=\"name + '_end'\" [formControl]=\"getControl('end')\"\r\n [attr.placeholder]=\"type === typeField.timeToTime ? ('_COMMON._DATES.TO' | translate) : ('_COMMON._DATES.FROM_TO_2' | translate)\"\r\n [ngClass]=\"[(cssClass || ''), getControl('end')?.value ? 'has-value' : '']\"\r\n [attr.required]=\"isRequired ? 'required' : null\" [attr.readonly]=\"isReadonly ? 'readonly' : null\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\"\r\n [attr.aria-invalid]=\"getControl('end')?.invalid && getControl('end')?.touched\"\r\n [attr.aria-describedby]=\"getControl('end')?.invalid && getControl('end')?.touched ? 'error-' + name : null\" />\r\n\r\n <button *ngIf=\"getControl('end')?.value\" type=\"button\" class=\"btn btn-secondary btn-clear-field\"\r\n (click)=\"onClearFieldPeriod('end')\">\r\n &times;\r\n </button>\r\n </div>\r\n }\r\n\r\n @if ([typeField.datePlusOne, typeField.datePlusTwo, typeField.datePlusSeven, typeField.dateComplexe].includes(type)) {\r\n <div class=\"input-group\">\r\n\r\n @if (type === typeField.dateComplexe) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onDateAddDay('prev')\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n <cw-icon font=\"optyweb\" icon=\"cw-nav-next-left\" [label]=\"'Jour pr\u00E9c\u00E9dent'\"></cw-icon>\r\n </button>\r\n }\r\n\r\n <input type=\"date\" class=\"form-control\" [id]=\"name\" [formControl]=\"formControl\"\r\n [ngClass]=\"[(cssClass || ''), formControl?.value ? 'has-value' : '']\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\" [attr.required]=\"isRequired ? 'required' : null\"\r\n [attr.readonly]=\"isReadonly ? 'readonly' : null\" [disabled]=\"isDisabled\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\"\r\n [attr.aria-describedby]=\"control.invalid && control.touched ? 'error-' + name : null\" />\r\n <button *ngIf=\"formControl?.value\" class=\"btn btn-secondary btn-clear-field\" type=\"button\"\r\n (click)=\"onClearField(formControl)\">&times;</button>\r\n\r\n @if (type === typeField.dateComplexe) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onDateAddDay('next')\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n <cw-icon font=\"optyweb\" icon=\"cw-nav-next-right\" [label]=\"'Jour suivant'\"></cw-icon>\r\n </button>\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onRefresh()\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n <cw-icon font=\"optyweb\" icon=\"cw-toolbar-reload\" [label]=\"'Rafra\u00EEchir'\"></cw-icon>\r\n </button>\r\n }\r\n\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(0)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J\r\n <span class=\"visually-hidden\">Aujourd'hui</span>\r\n </button>\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(1)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J+1\r\n <span class=\"visually-hidden\">Demain</span>\r\n </button>\r\n\r\n @if (type !== typeField.datePlusOne && type !== typeField.dateComplexe) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(2)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J+2\r\n <span class=\"visually-hidden\">Dans 2 jours</span>\r\n </button>\r\n\r\n @if (type !== typeField.datePlusTwo) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\" (click)=\"onTodayAddDay(7)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\">\r\n J+7\r\n <span class=\"visually-hidden\">Dans 7 jours</span>\r\n </button>\r\n }\r\n }\r\n </div>\r\n }\r\n\r\n @if (type === typeField.slider) {\r\n <ngx-slider [(value)]=\"sliderValue\" [options]=\"sliderOptions\" [formControl]=\"formControl\"></ngx-slider>\r\n }\r\n\r\n @if (type === typeField.range) {\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <button type=\"button\" class=\"btn slider-btn slider-btn-less\" (click)=\"onRangeStep('decrease')\"\r\n [disabled]=\"formControl.value <= rangeOptions.floor\">\r\n <span class=\"slider-btn-less-icon\" aria-hidden=\"true\"></span>\r\n <span class=\"visually-hidden\">Diminuer</span>\r\n </button>\r\n\r\n <div class=\"slider-input flex-grow-1 position-relative\">\r\n <label [for]=\"name\" class=\"slider-tooltip\" [style.left]=\"getRangePercent() + '%'\" aria-live=\"polite\"\r\n aria-atomic=\"true\">\r\n {{ label }} {{ formControl.value }}\r\n @if (rangeOptions.unit) {\r\n <abbr [title]=\"rangeOptions.unit\">{{ rangeOptions.unit }}</abbr>\r\n }\r\n </label>\r\n\r\n <div class=\"slider-custom-bar\">\r\n <div class=\"slider-custom-bar-selection\" [style.width]=\"getRangePercent() + '%'\">\r\n </div>\r\n </div>\r\n\r\n <input type=\"range\" [id]=\"name\" [formControl]=\"formControl\" [min]=\"rangeOptions.floor\" [max]=\"rangeOptions.ceil\"\r\n [step]=\"rangeOptions.step || 1\" class=\"form-control-range\" [attr.aria-required]=\"isRequired\"\r\n [attr.aria-invalid]=\"control.invalid && control.touched\" [disabled]=\"isDisabled\">\r\n </div>\r\n\r\n <button type=\"button\" class=\"btn slider-btn slider-btn-more\" (click)=\"onRangeStep('increase')\"\r\n [disabled]=\"formControl.value >= rangeOptions.ceil\">\r\n <span class=\"slider-btn-more-icon optyweb cw-toolbar-add\" aria-hidden=\"true\"></span>\r\n <span class=\"visually-hidden\">Augmenter</span>\r\n </button>\r\n </div>\r\n }\r\n\r\n @if (isInInputGroup()) {\r\n @if(formControl?.value) {\r\n <button class=\"btn btn-secondary btn-clear-field\" type=\"button\"\r\n (click)=\"onClearField(formControl)\">&times;</button>\r\n }\r\n }\r\n\r\n</ng-template>\r\n" }]
1909
1416
  }], ctorParameters: () => [], propDecorators: { control: [{
1910
1417
  type: Input
1911
1418
  }], formGroup: [{
@@ -1946,8 +1453,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
1946
1453
  type: Input
1947
1454
  }], cssClass: [{
1948
1455
  type: Input
1949
- }], skeletonMode: [{
1950
- type: Input
1951
1456
  }], refreshEvent: [{
1952
1457
  type: Output
1953
1458
  }], textChanged: [{
@@ -1975,10 +1480,10 @@ class LegendComponent {
1975
1480
  this.displayInline = false;
1976
1481
  this.legendTypeEnum = LegendTypeEnum;
1977
1482
  }
1978
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: LegendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1979
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: LegendComponent, isStandalone: true, selector: "cw-legend", inputs: { legend: "legend", displayInline: "displayInline" }, ngImport: i0, template: "@if (legend.title) {\r\n <div class=\"legend-title\">\r\n {{ '_COMMON._TABLE.LEGEND' | translate }}\r\n </div>\r\n}\r\n\r\n<ul class=\"legend-items\" [class.list-inline]=\"displayInline\">\r\n @for (item of legend.data; track $index) {\r\n <li class=\"legend-item\" [class.list-inline-item]=\"displayInline\">\r\n @switch (item.type) {\r\n @case (legendTypeEnum.icon) {\r\n <cw-icon [icon]=\"item.icon\" [label]=\"item.label\" [iconCssClass]=\"'text-' + item.colorUi\" [iconColorCustom]=\"item.colorCustom\"></cw-icon>\r\n }\r\n @case (legendTypeEnum.badge) {\r\n <cw-badge [type]=\"item.colorBadge\" [label]=\"item.labelBadge\"></cw-badge>\r\n {{item.label}}\r\n }\r\n @case (legendTypeEnum.color) {\r\n <span class=\"legend-item-color\" [ngClass]=\"item.colorUi ?'legend-' + item.colorUi : ''\" [style.background-color]=\"item.colorCustom\"></span>\r\n {{item.label}}\r\n }\r\n }\r\n </li>\r\n }\r\n</ul>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom", "spritePath"] }, { kind: "component", type: BadgeComponent, selector: "cw-badge", inputs: ["type", "label", "withIcon", "iconPosition", "cssClass", "skeletonMode", "dataTest"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
1483
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LegendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1484
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: LegendComponent, isStandalone: true, selector: "cw-legend", inputs: { legend: "legend", displayInline: "displayInline" }, ngImport: i0, template: "@if (legend.title) {\r\n <div class=\"legend-title\">\r\n {{ '_COMMON._TABLE.LEGEND' | translate }}\r\n </div>\r\n}\r\n\r\n<ul class=\"legend-items\" [class.list-inline]=\"displayInline\">\r\n @for (item of legend.data; track $index) {\r\n <li class=\"legend-item\" [class.list-inline-item]=\"displayInline\">\r\n @switch (item.type) {\r\n @case (legendTypeEnum.icon) {\r\n <cw-icon [icon]=\"item.icon\" [label]=\"item.label\" [iconCssClass]=\"'text-' + item.colorUi\" [iconColorCustom]=\"item.colorCustom\"></cw-icon>\r\n }\r\n @case (legendTypeEnum.badge) {\r\n <cw-badge [type]=\"item.colorBadge\" [label]=\"item.labelBadge\"></cw-badge>\r\n {{item.label}}\r\n }\r\n @case (legendTypeEnum.color) {\r\n <span class=\"legend-item-color\" [ngClass]=\"item.colorUi ?'legend-' + item.colorUi : ''\" [style.background-color]=\"item.colorCustom\"></span>\r\n {{item.label}}\r\n }\r\n }\r\n </li>\r\n }\r\n</ul>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "font", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom"] }, { kind: "component", type: BadgeComponent, selector: "cw-badge", inputs: ["type", "label", "withIcon", "iconPosition", "cssClass", "dataTest"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
1980
1485
  }
1981
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: LegendComponent, decorators: [{
1486
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LegendComponent, decorators: [{
1982
1487
  type: Component,
1983
1488
  args: [{ selector: 'cw-legend', standalone: true, imports: [
1984
1489
  CommonModule,
@@ -1994,14 +1499,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
1994
1499
 
1995
1500
  class LoaderComponent {
1996
1501
  constructor() { }
1997
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1998
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: LoaderComponent, isStandalone: true, selector: "cw-loader", ngImport: i0, template: "<div class=\"d-flex-v gap-md loader text-center\">\r\n <span class=\"spinner-border spinner-border-sm\" aria-hidden=\"true\"></span>\r\n <span role=\"status\">{{ '_COMMON._HTTP.TXT_LOADING' | translate }}</span>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
1502
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1503
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: LoaderComponent, isStandalone: true, selector: "cw-loader", ngImport: i0, template: "<div class=\"loader text-center\">\r\n <span class=\"spinner-border spinner-border-sm\" aria-hidden=\"true\"></span>\r\n <span role=\"status\">{{ '_COMMON._HTTP.TXT_LOADING' | translate }}</span>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
1999
1504
  }
2000
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: LoaderComponent, decorators: [{
1505
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoaderComponent, decorators: [{
2001
1506
  type: Component,
2002
1507
  args: [{ selector: 'cw-loader', standalone: true, imports: [
2003
1508
  TranslateModule
2004
- ], template: "<div class=\"d-flex-v gap-md loader text-center\">\r\n <span class=\"spinner-border spinner-border-sm\" aria-hidden=\"true\"></span>\r\n <span role=\"status\">{{ '_COMMON._HTTP.TXT_LOADING' | translate }}</span>\r\n</div>\r\n" }]
1509
+ ], template: "<div class=\"loader text-center\">\r\n <span class=\"spinner-border spinner-border-sm\" aria-hidden=\"true\"></span>\r\n <span role=\"status\">{{ '_COMMON._HTTP.TXT_LOADING' | translate }}</span>\r\n</div>\r\n" }]
2005
1510
  }], ctorParameters: () => [] });
2006
1511
 
2007
1512
  var ModalsType;
@@ -2010,236 +1515,38 @@ var ModalsType;
2010
1515
  ModalsType["loader"] = "loader";
2011
1516
  ModalsType["quickSideView"] = "quicksideview";
2012
1517
  ModalsType["custom"] = "custom";
2013
- ModalsType["success"] = "success";
2014
- ModalsType["info"] = "info";
2015
- ModalsType["warning"] = "warning";
2016
- ModalsType["danger"] = "danger";
2017
- ModalsType["neutral"] = "neutral";
2018
1518
  })(ModalsType || (ModalsType = {}));
2019
- var ModalsSize;
2020
- (function (ModalsSize) {
2021
- ModalsSize["sm"] = "sm";
2022
- ModalsSize["md"] = "md";
2023
- ModalsSize["lg"] = "lg";
2024
- ModalsSize["xl"] = "xl";
2025
- })(ModalsSize || (ModalsSize = {}));
2026
-
2027
- class ModalsService {
2028
- constructor() {
2029
- this.appRef = inject(ApplicationRef);
2030
- this.injector = inject(Injector);
2031
- this.modalsStack = [];
2032
- this.focusedElementsStack = [];
2033
- this.dismissModal = new EventEmitter();
2034
- this.openedModal = new EventEmitter();
2035
- }
2036
- /**
2037
- * Ouvre une modale et retourne un objet compatible avec l'ancienne syntaxe .result
2038
- */
2039
- openModal(type, config, sizeOverride) {
2040
- // 1. Détermination des propriétés de base
2041
- const size = sizeOverride ?? this.getModalSizeByType(type);
2042
- const isQuickView = type === ModalsType.quickSideView;
2043
- // 2. Création dynamique du composant
2044
- const componentRef = createComponent(ModalsComponent, {
2045
- environmentInjector: this.appRef.injector,
2046
- elementInjector: this.injector
2047
- });
2048
- // 3. Injection des données
2049
- componentRef.instance.type = type;
2050
- componentRef.instance.size = size;
2051
- componentRef.instance.scrollable = isQuickView;
2052
- componentRef.instance.customClass = isQuickView ? 'quick-view-modal' : '';
2053
- if (config) {
2054
- Object.assign(componentRef.instance, config);
2055
- }
2056
- // 4. Gestion de la Promesse (le fameux .result)
2057
- const resultPromise = new Promise((resolve, reject) => {
2058
- // Succès : quand le bouton d'action est cliqué
2059
- const subAction = componentRef.instance.btnAction1.subscribe((data) => {
2060
- subAction.unsubscribe();
2061
- resolve(data || 'confirm');
2062
- });
2063
- const subAction2 = componentRef.instance.btnAction2.subscribe((data) => {
2064
- subAction.unsubscribe();
2065
- resolve(data || 'confirm');
2066
- });
2067
- // Échec/Fermeture : on intercepte la fermeture via dismissModal
2068
- const subDismiss = this.dismissModal.subscribe(() => {
2069
- subDismiss.unsubscribe();
2070
- reject('closed');
2071
- });
2072
- });
2073
- // 5. Intégration au DOM
2074
- const domElem = componentRef.hostView.rootNodes[0];
2075
- document.body.appendChild(domElem);
2076
- this.appRef.attachView(componentRef.hostView);
2077
- document.body.classList.add('modal-open');
2078
- // 6. Gestion de la pile et du focus
2079
- this.saveFocus();
2080
- this.modalsStack.push(componentRef);
2081
- // Retourne un objet ModalRef
2082
- return {
2083
- componentInstance: componentRef.instance,
2084
- result: resultPromise
2085
- };
2086
- }
2087
- /**
2088
- * Ferme la modale en haut de la pile
2089
- */
2090
- closeModal() {
2091
- const currentModal = this.modalsStack.pop();
2092
- if (currentModal) {
2093
- const modalClass = currentModal.instance.customClass ?? '';
2094
- // Retrait du DOM
2095
- this.appRef.detachView(currentModal.hostView);
2096
- currentModal.destroy();
2097
- // Gestion du body
2098
- if (this.modalsStack.length === 0) {
2099
- document.body.classList.remove('modal-open');
2100
- }
2101
- // Restauration focus
2102
- this.restoreFocus();
2103
- // On émet l'événement (ce qui déclenchera le reject de la promesse plus haut)
2104
- this.dismissModal.emit(modalClass);
2105
- }
2106
- }
2107
- getModalSizeByType(type) {
2108
- switch (type) {
2109
- case ModalsType.loader: return ModalsSize.sm;
2110
- case ModalsType.delete: return ModalsSize.md;
2111
- case ModalsType.quickSideView: return ModalsSize.lg;
2112
- default: return ModalsSize.md;
2113
- }
2114
- }
2115
- saveFocus() {
2116
- const activeEl = document.activeElement;
2117
- if (activeEl?.hasAttribute("cwDropdownItem")) {
2118
- const dropdownBtn = activeEl.closest(".dropdown")?.querySelector('button');
2119
- this.focusedElementsStack.push(dropdownBtn || activeEl);
2120
- }
2121
- else {
2122
- this.focusedElementsStack.push(activeEl);
2123
- }
2124
- }
2125
- restoreFocus() {
2126
- const previousEl = this.focusedElementsStack.pop();
2127
- if (previousEl) {
2128
- previousEl.focus();
2129
- }
2130
- }
2131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ModalsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2132
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ModalsService, providedIn: 'root' }); }
2133
- }
2134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ModalsService, decorators: [{
2135
- type: Injectable,
2136
- args: [{
2137
- providedIn: 'root',
2138
- }]
2139
- }] });
2140
1519
 
2141
1520
  class ModalsComponent {
2142
- constructor() {
2143
- this.modalService = inject(ModalsService);
2144
- this.translateService = inject(TranslateService);
2145
- this.size = ModalsSize.md;
2146
- this.customClass = '';
2147
- this.scrollable = false;
2148
- this.isAutcompModal = false;
1521
+ constructor(activeModal, translateService) {
1522
+ this.activeModal = activeModal;
1523
+ this.translateService = translateService;
2149
1524
  this.itemsToDelete = [];
2150
1525
  this.itemsToDeleteTitle = this.translateService.instant('_COMMON._MODAL_DELETE.DEFAULT_TYPE');
2151
- this.btnAction1 = new EventEmitter();
2152
- this.btnAction2 = new EventEmitter();
1526
+ this.btnAction = new EventEmitter();
2153
1527
  this.modalsType = ModalsType;
2154
- this.buttonTypeEnum = { ...FoButtonTypeEnum, ...BoButtonTypeEnum };
2155
- this.spriteIcon = SpriteIconEnum;
2156
- this.iconType = IconTypeEnum;
2157
- this.iconSize = IconSizeEnum;
2158
- this.iconUiType = IconUiTypeEnum;
1528
+ this.buttonTypeEnum = FoButtonTypeEnum && BoButtonTypeEnum;
2159
1529
  }
2160
1530
  ngOnInit() {
2161
- this.modalService.openedModal.emit(true);
2162
- }
2163
- ngAfterViewInit() {
2164
- setTimeout(() => this.trapFocus(this.modalContainer.nativeElement), 0);
2165
- }
2166
- onKeyDown(e) {
2167
- if (this.type === this.modalsType.loader) {
2168
- e.preventDefault();
2169
- return;
1531
+ if (this.type === this.modalsType.quickSideView && !this.labelBtnAction) {
1532
+ this.labelBtnAction = this.translateService.instant('_COMMON._ACTION.EDIT');
2170
1533
  }
2171
- if (e.key === 'Escape') {
2172
- const isAutocompleteOpen = document.activeElement?.getAttribute('aria-controls') === 'autocompletion-panel';
2173
- if (isAutocompleteOpen) {
2174
- e.preventDefault();
2175
- }
2176
- else {
2177
- this.closeModal();
2178
- }
2179
- }
2180
- }
2181
- action1Click() {
2182
- this.btnAction1.emit('confirm');
2183
- this.closeModal();
2184
- }
2185
- action2Click() {
2186
- this.btnAction1.emit('confirm');
2187
- this.closeModal();
2188
- }
2189
- closeModal() {
2190
- this.modalService.closeModal();
2191
1534
  }
2192
- trapFocus(element) {
2193
- const focusableSelector = 'a[href], button:not([disabled]), textarea, input:not([disabled]), select';
2194
- const focusableEls = Array.from(element.querySelectorAll(focusableSelector));
2195
- if (focusableEls.length === 0)
2196
- return;
2197
- const firstFocusableEl = focusableEls[0];
2198
- const lastFocusableEl = focusableEls[focusableEls.length - 1];
2199
- // Logique Autocomplete peut etre à externaliser ou élargir la notion
2200
- const autocompleteInput = focusableEls.find(x => x.getAttribute('aria-controls') === 'autocompletion-panel');
2201
- if (autocompleteInput && this.isAutcompModal) {
2202
- autocompleteInput.focus();
2203
- }
2204
- else {
2205
- firstFocusableEl.focus();
2206
- }
2207
- // Listener pour le Tab (on l'attache au container)
2208
- element.addEventListener('keydown', (e) => {
2209
- if (e.key !== 'Tab')
2210
- return;
2211
- if (e.shiftKey) { // Shift + Tab
2212
- if (document.activeElement === firstFocusableEl) {
2213
- lastFocusableEl.focus();
2214
- e.preventDefault();
2215
- }
2216
- }
2217
- else { // Tab
2218
- if (document.activeElement === lastFocusableEl) {
2219
- firstFocusableEl.focus();
2220
- e.preventDefault();
2221
- }
2222
- }
2223
- });
1535
+ actionClick() {
1536
+ this.activeModal.close();
2224
1537
  }
2225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ModalsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2226
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: ModalsComponent, isStandalone: true, selector: "cw-modals", inputs: { size: "size", customClass: "customClass", scrollable: "scrollable", isAutcompModal: "isAutcompModal", type: "type", modalTitle: "modalTitle", itemsToDelete: "itemsToDelete", itemsToDeleteTitle: "itemsToDeleteTitle", labelBtnAction1: "labelBtnAction1", labelBtnAction2: "labelBtnAction2", customBodyTemplate: "customBodyTemplate", customBodyContext: "customBodyContext" }, outputs: { btnAction1: "btnAction1", btnAction2: "btnAction2" }, viewQueries: [{ propertyName: "modalContainer", first: true, predicate: ["modalContainer"], descendants: true }], ngImport: i0, template: "<div class=\"cityway-v8 modal-backdrop fade show\" style=\"z-index: 1050;\" aria-hidden=\"true\"></div>\r\n\r\n<div role=\"dialog\" tabindex=\"-1\" aria-modal=\"true\" aria-labelledby=\"modal-basic-title\"\r\n class=\"cityway-v8 d-flex modal show\" [ngClass]=\"customClass\" data-test-ctw=\"modal\" (keydown)=\"onKeyDown($event)\">\r\n\r\n <div class=\"modal-inner-backdrop\" (click)=\"type !== modalsType.loader && closeModal()\"></div>\r\n\r\n <div #modalContainer role=\"document\" class=\"modal-dialog modal-dialog-centered\"\r\n [ngClass]=\"['modal-' + size, scrollable ? 'modal-dialog-scrollable' : '']\">\r\n\r\n <div class=\"modal-content\">\r\n\r\n @if (type !== modalsType.loader) {\r\n @if (type == modalsType.delete || type == modalsType.quickSideView || type == modalsType.custom) {\r\n <div class=\"modal-header\">\r\n @if (type === modalsType.delete) {\r\n <h1 class=\"modal-title\" id=\"modal-basic-title\">\r\n {{ '_COMMON._MODAL_DELETE.TITLE' | translate: { number: itemsToDelete.length, name: itemsToDeleteTitle } }}\r\n </h1>\r\n }\r\n @else {\r\n <h1 class=\"modal-title\" id=\"modal-basic-title\">\r\n {{ modalTitle | translate }}\r\n </h1>\r\n }\r\n\r\n <cw-button [label]=\"'_COMMON._ACTION.CLOSE' | translate\" [type]=\"buttonTypeEnum.light\" [withOnlyIcon]=\"true\"\r\n [withIcon]=\"spriteIcon.toolbarClose\" (btnAction)=\"closeModal()\" dataTest=\"btn-close-modal\"\r\n cssClass=\"btn-close\">\r\n </cw-button>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n @if (type === modalsType.delete) {\r\n @if (itemsToDelete.length === 1) {\r\n <div [innerHTML]=\"'_COMMON._MODAL_DELETE.SIMPLE_TEXT' | translate\"></div>\r\n }\r\n @if (itemsToDelete.length > 1) {\r\n <div [innerHTML]=\"'_COMMON._MODAL_DELETE.MULTIPLE_TEXT' | translate\"></div>\r\n }\r\n @if (itemsToDelete.length > 0) {\r\n <ul class=\"mb-none\">\r\n @for (item of itemsToDelete; track item) {\r\n <li>{{ item }}</li>\r\n }\r\n </ul>\r\n }\r\n }\r\n @else {\r\n @if (customBodyTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"customBodyTemplate\" [ngTemplateOutletContext]=\"customBodyContext\">\r\n </ng-container>\r\n }\r\n }\r\n </div>\r\n }\r\n @else {\r\n <div class=\"modal-header justify-content-end\">\r\n <cw-button [label]=\"'_COMMON._ACTION.CLOSE' | translate\" [type]=\"buttonTypeEnum.light\" [withOnlyIcon]=\"true\"\r\n [withIcon]=\"spriteIcon.toolbarClose\" (btnAction)=\"closeModal()\" dataTest=\"btn-close-modal\"\r\n cssClass=\"btn-close\">\r\n </cw-button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <cw-icon [label]=\"'Sucess'\" [iconSize]=\"iconSize['5xl']\" [icon]=\"spriteIcon.toolbarClose\" [type]=\"iconType.rounded\" [iconUiType]=\"iconUiType.success\"></cw-icon>\r\n\r\n <h1 class=\"modal-title\" id=\"modal-basic-title\">\r\n {{ modalTitle | translate }}\r\n </h1>\r\n\r\n @if (customBodyTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"customBodyTemplate\" [ngTemplateOutletContext]=\"customBodyContext\">\r\n </ng-container>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"modal-footer\">\r\n @if (type === modalsType.delete) {\r\n <cw-button label=\"_COMMON._ACTION.DELETE\" [type]=\"buttonTypeEnum.danger\" [isMinWidth]=\"true\"\r\n (btnAction)=\"action1Click()\" dataTest=\"btn-action-modal\">\r\n </cw-button>\r\n\r\n <cw-button label=\"_COMMON._ACTION.CLOSE\" [type]=\"buttonTypeEnum.secondary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"closeModal()\" dataTest=\"btn-close-modal\">\r\n </cw-button>\r\n }\r\n @else {\r\n @if (labelBtnAction1) {\r\n <cw-button [label]=\"labelBtnAction1 | translate\" [type]=\"buttonTypeEnum.primary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"action1Click()\" dataTest=\"btn-action-modal\">\r\n </cw-button>\r\n }\r\n @if (labelBtnAction2) {\r\n <cw-button [label]=\"labelBtnAction2 | translate\" [type]=\"buttonTypeEnum.secondary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"action2Click()\" dataTest=\"btn-action-modal\">\r\n </cw-button>\r\n }\r\n @else {\r\n <cw-button label=\"_COMMON._ACTION.CLOSE\" [type]=\"buttonTypeEnum.secondary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"closeModal()\" dataTest=\"btn-close-modal\">\r\n </cw-button>\r\n }\r\n }\r\n </div>\r\n }\r\n @else {\r\n <div class=\"modal-body\">\r\n <cw-loader></cw-loader>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: ButtonComponent, selector: "cw-button", inputs: ["type", "label", "id", "isDropdown", "withIcon", "withOnlyIcon", "iconSize", "iconPosition", "dropdownPosition", "isMinWidth", "isDisabled", "isLoading", "cssClass", "dataTest", "skeletonMode", "withTooltip", "tooltipText", "tooltipTitle", "tooltipTrigger", "tooltipPosition", "tooltipType"], outputs: ["btnAction", "dropDownClicked"] }, { kind: "component", type: LoaderComponent, selector: "cw-loader" }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom", "spritePath"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
1538
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModalsComponent, deps: [{ token: i1$1.NgbActiveModal }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
1539
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ModalsComponent, isStandalone: true, selector: "cw-modals", inputs: { type: "type", modalTitle: "modalTitle", itemsToDelete: "itemsToDelete", itemsToDeleteTitle: "itemsToDeleteTitle", labelBtnAction: "labelBtnAction", customBodyTemplate: "customBodyTemplate", customBodyContext: "customBodyContext" }, outputs: { btnAction: "btnAction" }, ngImport: i0, template: "@if (type !== modalsType.loader) {\r\n <div class=\"modal-header\">\r\n @if (type === modalsType.delete) {\r\n <h1 class=\"modal-title\" id=\"modal-basic-title\">\r\n {{ '_COMMON._MODAL_DELETE.TITLE' | translate: { number: itemsToDelete.length, name: itemsToDeleteTitle } }}\r\n </h1>\r\n }\r\n @else {\r\n <h1 class=\"modal-title\" id=\"modal-basic-title\">\r\n {{ modalTitle | translate }}\r\n </h1>\r\n }\r\n\r\n <button type=\"button\" class=\"btn-close\" [attr.aria-label]=\"'_COMMON._ACTION.CLOSE' | translate\"\r\n (click)=\"activeModal.dismiss()\" data-test-ctw=\"btn-close-modal\">\r\n </button>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n @if (type === modalsType.delete) {\r\n @if (itemsToDelete.length === 1) {\r\n <div [innerHTML]=\"'_COMMON._MODAL_DELETE.SIMPLE_TEXT' | translate\"></div>\r\n }\r\n @if (itemsToDelete.length > 1) {\r\n <div [innerHTML]=\"'_COMMON._MODAL_DELETE.MULTIPLE_TEXT' | translate\"></div>\r\n }\r\n @if (itemsToDelete.length > 0) {\r\n <ul class=\"mb-none\">\r\n @for (item of itemsToDelete; track item) {\r\n <li>{{ item }}</li>\r\n }\r\n </ul>\r\n }\r\n }\r\n @else if (type === modalsType.custom || type === modalsType.quickSideView) {\r\n @if (customBodyTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"customBodyTemplate\" [ngTemplateOutletContext]=\"customBodyContext\">\r\n </ng-container>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"modal-footer\">\r\n @if (type === modalsType.delete) {\r\n <cw-button label=\"_COMMON._ACTION.DELETE\" [type]=\"buttonTypeEnum.primary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"actionClick()\" dataTest=\"btn-action-modal\">\r\n </cw-button>\r\n\r\n <cw-button label=\"_COMMON._ACTION.CANCEL\" [type]=\"buttonTypeEnum.secondary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"activeModal.dismiss()\" dataTest=\"btn-close-modal\">\r\n </cw-button>\r\n }\r\n @else {\r\n @if(labelBtnAction) {\r\n <cw-button [label]=\"labelBtnAction | translate\" [type]=\"buttonTypeEnum.primary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"actionClick()\" dataTest=\"btn-close-modal\">\r\n </cw-button>\r\n }\r\n\r\n <cw-button label=\"_COMMON._ACTION.CLOSE\" [type]=\"buttonTypeEnum.secondary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"activeModal.dismiss()\" dataTest=\"btn-close-modal\">\r\n </cw-button>\r\n }\r\n </div>\r\n}\r\n\r\n@if (type === modalsType.loader) {\r\n <div class=\"modal-body\">\r\n <cw-loader></cw-loader>\r\n </div>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: ButtonComponent, selector: "cw-button", inputs: ["type", "label", "id", "isDropdown", "withIcon", "withOnlyIcon", "iconSize", "iconPosition", "dropdownPosition", "isMinWidth", "isDisabled", "withSpinner", "cssClass", "dataTest", "withTooltip", "tooltipText", "tooltipTitle", "tooltipTrigger", "tooltipPosition", "tooltipType"], outputs: ["btnAction", "dropDownClicked"] }, { kind: "component", type: LoaderComponent, selector: "cw-loader" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
2227
1540
  }
2228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ModalsComponent, decorators: [{
1541
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModalsComponent, decorators: [{
2229
1542
  type: Component,
2230
- args: [{ selector: 'cw-modals', standalone: true, imports: [CommonModule, TranslateModule, NgClass, NgTemplateOutlet, ButtonComponent, LoaderComponent, IconComponent], template: "<div class=\"cityway-v8 modal-backdrop fade show\" style=\"z-index: 1050;\" aria-hidden=\"true\"></div>\r\n\r\n<div role=\"dialog\" tabindex=\"-1\" aria-modal=\"true\" aria-labelledby=\"modal-basic-title\"\r\n class=\"cityway-v8 d-flex modal show\" [ngClass]=\"customClass\" data-test-ctw=\"modal\" (keydown)=\"onKeyDown($event)\">\r\n\r\n <div class=\"modal-inner-backdrop\" (click)=\"type !== modalsType.loader && closeModal()\"></div>\r\n\r\n <div #modalContainer role=\"document\" class=\"modal-dialog modal-dialog-centered\"\r\n [ngClass]=\"['modal-' + size, scrollable ? 'modal-dialog-scrollable' : '']\">\r\n\r\n <div class=\"modal-content\">\r\n\r\n @if (type !== modalsType.loader) {\r\n @if (type == modalsType.delete || type == modalsType.quickSideView || type == modalsType.custom) {\r\n <div class=\"modal-header\">\r\n @if (type === modalsType.delete) {\r\n <h1 class=\"modal-title\" id=\"modal-basic-title\">\r\n {{ '_COMMON._MODAL_DELETE.TITLE' | translate: { number: itemsToDelete.length, name: itemsToDeleteTitle } }}\r\n </h1>\r\n }\r\n @else {\r\n <h1 class=\"modal-title\" id=\"modal-basic-title\">\r\n {{ modalTitle | translate }}\r\n </h1>\r\n }\r\n\r\n <cw-button [label]=\"'_COMMON._ACTION.CLOSE' | translate\" [type]=\"buttonTypeEnum.light\" [withOnlyIcon]=\"true\"\r\n [withIcon]=\"spriteIcon.toolbarClose\" (btnAction)=\"closeModal()\" dataTest=\"btn-close-modal\"\r\n cssClass=\"btn-close\">\r\n </cw-button>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n @if (type === modalsType.delete) {\r\n @if (itemsToDelete.length === 1) {\r\n <div [innerHTML]=\"'_COMMON._MODAL_DELETE.SIMPLE_TEXT' | translate\"></div>\r\n }\r\n @if (itemsToDelete.length > 1) {\r\n <div [innerHTML]=\"'_COMMON._MODAL_DELETE.MULTIPLE_TEXT' | translate\"></div>\r\n }\r\n @if (itemsToDelete.length > 0) {\r\n <ul class=\"mb-none\">\r\n @for (item of itemsToDelete; track item) {\r\n <li>{{ item }}</li>\r\n }\r\n </ul>\r\n }\r\n }\r\n @else {\r\n @if (customBodyTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"customBodyTemplate\" [ngTemplateOutletContext]=\"customBodyContext\">\r\n </ng-container>\r\n }\r\n }\r\n </div>\r\n }\r\n @else {\r\n <div class=\"modal-header justify-content-end\">\r\n <cw-button [label]=\"'_COMMON._ACTION.CLOSE' | translate\" [type]=\"buttonTypeEnum.light\" [withOnlyIcon]=\"true\"\r\n [withIcon]=\"spriteIcon.toolbarClose\" (btnAction)=\"closeModal()\" dataTest=\"btn-close-modal\"\r\n cssClass=\"btn-close\">\r\n </cw-button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <cw-icon [label]=\"'Sucess'\" [iconSize]=\"iconSize['5xl']\" [icon]=\"spriteIcon.toolbarClose\" [type]=\"iconType.rounded\" [iconUiType]=\"iconUiType.success\"></cw-icon>\r\n\r\n <h1 class=\"modal-title\" id=\"modal-basic-title\">\r\n {{ modalTitle | translate }}\r\n </h1>\r\n\r\n @if (customBodyTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"customBodyTemplate\" [ngTemplateOutletContext]=\"customBodyContext\">\r\n </ng-container>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"modal-footer\">\r\n @if (type === modalsType.delete) {\r\n <cw-button label=\"_COMMON._ACTION.DELETE\" [type]=\"buttonTypeEnum.danger\" [isMinWidth]=\"true\"\r\n (btnAction)=\"action1Click()\" dataTest=\"btn-action-modal\">\r\n </cw-button>\r\n\r\n <cw-button label=\"_COMMON._ACTION.CLOSE\" [type]=\"buttonTypeEnum.secondary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"closeModal()\" dataTest=\"btn-close-modal\">\r\n </cw-button>\r\n }\r\n @else {\r\n @if (labelBtnAction1) {\r\n <cw-button [label]=\"labelBtnAction1 | translate\" [type]=\"buttonTypeEnum.primary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"action1Click()\" dataTest=\"btn-action-modal\">\r\n </cw-button>\r\n }\r\n @if (labelBtnAction2) {\r\n <cw-button [label]=\"labelBtnAction2 | translate\" [type]=\"buttonTypeEnum.secondary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"action2Click()\" dataTest=\"btn-action-modal\">\r\n </cw-button>\r\n }\r\n @else {\r\n <cw-button label=\"_COMMON._ACTION.CLOSE\" [type]=\"buttonTypeEnum.secondary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"closeModal()\" dataTest=\"btn-close-modal\">\r\n </cw-button>\r\n }\r\n }\r\n </div>\r\n }\r\n @else {\r\n <div class=\"modal-body\">\r\n <cw-loader></cw-loader>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n</div>\r\n" }]
2231
- }], propDecorators: { modalContainer: [{
2232
- type: ViewChild,
2233
- args: ['modalContainer']
2234
- }], size: [{
2235
- type: Input
2236
- }], customClass: [{
2237
- type: Input
2238
- }], scrollable: [{
2239
- type: Input
2240
- }], isAutcompModal: [{
2241
- type: Input
2242
- }], type: [{
1543
+ args: [{ selector: 'cw-modals', standalone: true, imports: [
1544
+ CommonModule,
1545
+ TranslateModule,
1546
+ ButtonComponent,
1547
+ LoaderComponent
1548
+ ], template: "@if (type !== modalsType.loader) {\r\n <div class=\"modal-header\">\r\n @if (type === modalsType.delete) {\r\n <h1 class=\"modal-title\" id=\"modal-basic-title\">\r\n {{ '_COMMON._MODAL_DELETE.TITLE' | translate: { number: itemsToDelete.length, name: itemsToDeleteTitle } }}\r\n </h1>\r\n }\r\n @else {\r\n <h1 class=\"modal-title\" id=\"modal-basic-title\">\r\n {{ modalTitle | translate }}\r\n </h1>\r\n }\r\n\r\n <button type=\"button\" class=\"btn-close\" [attr.aria-label]=\"'_COMMON._ACTION.CLOSE' | translate\"\r\n (click)=\"activeModal.dismiss()\" data-test-ctw=\"btn-close-modal\">\r\n </button>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n @if (type === modalsType.delete) {\r\n @if (itemsToDelete.length === 1) {\r\n <div [innerHTML]=\"'_COMMON._MODAL_DELETE.SIMPLE_TEXT' | translate\"></div>\r\n }\r\n @if (itemsToDelete.length > 1) {\r\n <div [innerHTML]=\"'_COMMON._MODAL_DELETE.MULTIPLE_TEXT' | translate\"></div>\r\n }\r\n @if (itemsToDelete.length > 0) {\r\n <ul class=\"mb-none\">\r\n @for (item of itemsToDelete; track item) {\r\n <li>{{ item }}</li>\r\n }\r\n </ul>\r\n }\r\n }\r\n @else if (type === modalsType.custom || type === modalsType.quickSideView) {\r\n @if (customBodyTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"customBodyTemplate\" [ngTemplateOutletContext]=\"customBodyContext\">\r\n </ng-container>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"modal-footer\">\r\n @if (type === modalsType.delete) {\r\n <cw-button label=\"_COMMON._ACTION.DELETE\" [type]=\"buttonTypeEnum.primary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"actionClick()\" dataTest=\"btn-action-modal\">\r\n </cw-button>\r\n\r\n <cw-button label=\"_COMMON._ACTION.CANCEL\" [type]=\"buttonTypeEnum.secondary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"activeModal.dismiss()\" dataTest=\"btn-close-modal\">\r\n </cw-button>\r\n }\r\n @else {\r\n @if(labelBtnAction) {\r\n <cw-button [label]=\"labelBtnAction | translate\" [type]=\"buttonTypeEnum.primary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"actionClick()\" dataTest=\"btn-close-modal\">\r\n </cw-button>\r\n }\r\n\r\n <cw-button label=\"_COMMON._ACTION.CLOSE\" [type]=\"buttonTypeEnum.secondary\" [isMinWidth]=\"true\"\r\n (btnAction)=\"activeModal.dismiss()\" dataTest=\"btn-close-modal\">\r\n </cw-button>\r\n }\r\n </div>\r\n}\r\n\r\n@if (type === modalsType.loader) {\r\n <div class=\"modal-body\">\r\n <cw-loader></cw-loader>\r\n </div>\r\n}\r\n" }]
1549
+ }], ctorParameters: () => [{ type: i1$1.NgbActiveModal }, { type: i2.TranslateService }], propDecorators: { type: [{
2243
1550
  type: Input
2244
1551
  }], modalTitle: [{
2245
1552
  type: Input
@@ -2247,17 +1554,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
2247
1554
  type: Input
2248
1555
  }], itemsToDeleteTitle: [{
2249
1556
  type: Input
2250
- }], labelBtnAction1: [{
2251
- type: Input
2252
- }], labelBtnAction2: [{
1557
+ }], labelBtnAction: [{
2253
1558
  type: Input
2254
1559
  }], customBodyTemplate: [{
2255
1560
  type: Input
2256
1561
  }], customBodyContext: [{
2257
1562
  type: Input
2258
- }], btnAction1: [{
2259
- type: Output
2260
- }], btnAction2: [{
1563
+ }], btnAction: [{
2261
1564
  type: Output
2262
1565
  }] } });
2263
1566
 
@@ -2270,8 +1573,8 @@ class TabContentComponent {
2270
1573
  get fragment() {
2271
1574
  return UtilsHelper.slugify(this.title);
2272
1575
  }
2273
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: TabContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2274
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: TabContentComponent, isStandalone: true, selector: "cw-tab-content", inputs: { title: "title", disabled: "disabled", withIcon: "withIcon" }, ngImport: i0, template: `
1576
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TabContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1577
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: TabContentComponent, isStandalone: true, selector: "cw-tab-content", inputs: { title: "title", disabled: "disabled", withIcon: "withIcon" }, ngImport: i0, template: `
2275
1578
  <div class="tab-pane"
2276
1579
  [class.fade]="!active"
2277
1580
  [class.active]="active"
@@ -2284,7 +1587,7 @@ class TabContentComponent {
2284
1587
  </div>
2285
1588
  `, isInline: true }); }
2286
1589
  }
2287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: TabContentComponent, decorators: [{
1590
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TabContentComponent, decorators: [{
2288
1591
  type: Component,
2289
1592
  args: [{
2290
1593
  selector: 'cw-tab-content',
@@ -2426,17 +1729,17 @@ class TabComponent {
2426
1729
  }
2427
1730
  }
2428
1731
  }
2429
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: TabComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2430
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: TabComponent, isStandalone: true, selector: "cw-tab", inputs: { type: "type", id: "id", useFragment: "useFragment", title: "title", tabContentCssClass: "tabContentCssClass", activeTabIndex: "activeTabIndex" }, outputs: { tabChanged: "tabChanged" }, queries: [{ propertyName: "tabs", predicate: TabContentComponent }], viewQueries: [{ propertyName: "tabLinks", predicate: ["tabLink"], descendants: true }], ngImport: i0, template: "<div class=\"tab\" [ngClass]=\"'tab-' + type\">\r\n @if (title) {\r\n <h2>{{ title | translate }}</h2>\r\n }\r\n <ul class=\"tab-items d-flex-h\" [ngClass]=\"'tab-items-' + type\" role=\"tablist\" appRwdTabs>\r\n @for (tab of tabs.toArray(); track tab; let i = $index) {\r\n <li class=\"tab-item\" role=\"presentation\">\r\n <button #tabLink type=\"button\" class=\"tab-link btn\" [class.active]=\"tab.active\" [class.disabled]=\"tab.disabled\"\r\n [disabled]=\"tab.disabled\" [attr.id]=\"'cw-nav-' + i\" [attr.data-test-ctw]=\"'link-tab-' + id + '-' + i\"\r\n [attr.aria-selected]=\"tab.active\" [attr.aria-controls]=\"'cw-nav-' + i + '-panel'\"\r\n [attr.tabindex]=\"tab.active ? '0' : '-1'\" (click)=\"selectTab(tab)\" (keydown)=\"onKeydown($event)\" role=\"tab\">\r\n @if (tab.withIcon) {\r\n <cw-icon [icon]=\"tab.withIcon\" [iconSize]=\"iconSize\"></cw-icon>\r\n }\r\n {{ tab.title | translate }}\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n</div>\r\n\r\n<div [class]=\"'tab-content ' + tabContentCssClass\" [ngClass]=\"'tab-content-' + type\">\r\n <ng-content></ng-content>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom", "spritePath"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
1732
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TabComponent, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
1733
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: TabComponent, isStandalone: true, selector: "cw-tab", inputs: { type: "type", id: "id", useFragment: "useFragment", title: "title", tabContentCssClass: "tabContentCssClass", activeTabIndex: "activeTabIndex" }, outputs: { tabChanged: "tabChanged" }, queries: [{ propertyName: "tabs", predicate: TabContentComponent }], viewQueries: [{ propertyName: "tabLinks", predicate: ["tabLink"], descendants: true }], ngImport: i0, template: "<div class=\"tab\" [ngClass]=\"'tab-' + type\">\r\n @if (title) {\r\n <h2>{{ title | translate }}</h2>\r\n }\r\n <ul class=\"tab-items d-flex-h\" [ngClass]=\"'tab-items-' + type\" role=\"tablist\" appRwdTabs>\r\n @for (tab of tabs.toArray(); track tab; let i = $index) {\r\n <li class=\"tab-item\" role=\"presentation\">\r\n <button #tabLink type=\"button\" class=\"tab-link btn\" [class.active]=\"tab.active\" [class.disabled]=\"tab.disabled\"\r\n [disabled]=\"tab.disabled\" [attr.id]=\"'cw-nav-' + i\" [attr.data-test-ctw]=\"'link-tab-' + id + '-' + i\"\r\n [attr.aria-selected]=\"tab.active\" [attr.aria-controls]=\"'cw-nav-' + i + '-panel'\"\r\n [attr.tabindex]=\"tab.active ? '0' : '-1'\" (click)=\"selectTab(tab)\" (keydown)=\"onKeydown($event)\" role=\"tab\">\r\n @if (tab.withIcon) {\r\n <cw-icon [icon]=\"tab.withIcon\" [iconSize]=\"iconSize\"></cw-icon>\r\n }\r\n {{ tab.title | translate }}\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n</div>\r\n\r\n<div [class]=\"'tab-content ' + tabContentCssClass\" [ngClass]=\"'tab-content-' + type\">\r\n <ng-content></ng-content>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "font", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
2431
1734
  }
2432
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: TabComponent, decorators: [{
1735
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TabComponent, decorators: [{
2433
1736
  type: Component,
2434
1737
  args: [{ selector: 'cw-tab', standalone: true, imports: [
2435
1738
  CommonModule,
2436
1739
  IconComponent,
2437
1740
  TranslateModule
2438
1741
  ], template: "<div class=\"tab\" [ngClass]=\"'tab-' + type\">\r\n @if (title) {\r\n <h2>{{ title | translate }}</h2>\r\n }\r\n <ul class=\"tab-items d-flex-h\" [ngClass]=\"'tab-items-' + type\" role=\"tablist\" appRwdTabs>\r\n @for (tab of tabs.toArray(); track tab; let i = $index) {\r\n <li class=\"tab-item\" role=\"presentation\">\r\n <button #tabLink type=\"button\" class=\"tab-link btn\" [class.active]=\"tab.active\" [class.disabled]=\"tab.disabled\"\r\n [disabled]=\"tab.disabled\" [attr.id]=\"'cw-nav-' + i\" [attr.data-test-ctw]=\"'link-tab-' + id + '-' + i\"\r\n [attr.aria-selected]=\"tab.active\" [attr.aria-controls]=\"'cw-nav-' + i + '-panel'\"\r\n [attr.tabindex]=\"tab.active ? '0' : '-1'\" (click)=\"selectTab(tab)\" (keydown)=\"onKeydown($event)\" role=\"tab\">\r\n @if (tab.withIcon) {\r\n <cw-icon [icon]=\"tab.withIcon\" [iconSize]=\"iconSize\"></cw-icon>\r\n }\r\n {{ tab.title | translate }}\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n</div>\r\n\r\n<div [class]=\"'tab-content ' + tabContentCssClass\" [ngClass]=\"'tab-content-' + type\">\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
2439
- }], ctorParameters: () => [{ type: i1$1.Router }, { type: i1$1.ActivatedRoute }], propDecorators: { type: [{
1742
+ }], ctorParameters: () => [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }], propDecorators: { type: [{
2440
1743
  type: Input
2441
1744
  }], id: [{
2442
1745
  type: Input
@@ -2462,10 +1765,10 @@ class WizardStepComponent {
2462
1765
  constructor() {
2463
1766
  this.completed = false;
2464
1767
  }
2465
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: WizardStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2466
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: WizardStepComponent, isStandalone: true, selector: "cw-wizard-step", inputs: { title: "title", completed: "completed" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["content"], descendants: true, static: true }], ngImport: i0, template: '<ng-template #content><ng-content></ng-content></ng-template>', isInline: true }); }
1768
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: WizardStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1769
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: WizardStepComponent, isStandalone: true, selector: "cw-wizard-step", inputs: { title: "title", completed: "completed" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["content"], descendants: true, static: true }], ngImport: i0, template: '<ng-template #content><ng-content></ng-content></ng-template>', isInline: true }); }
2467
1770
  }
2468
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: WizardStepComponent, decorators: [{
1771
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: WizardStepComponent, decorators: [{
2469
1772
  type: Component,
2470
1773
  args: [{
2471
1774
  selector: 'cw-wizard-step',
@@ -2529,10 +1832,10 @@ class WizardStepperComponent {
2529
1832
  this.stepChange.emit(this.selectedIndex);
2530
1833
  }
2531
1834
  }
2532
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: WizardStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2533
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: WizardStepperComponent, isStandalone: true, selector: "cw-wizard-stepper", outputs: { stepChange: "stepChange", stepNext: "stepNext", stepPrevious: "stepPrevious", stepEnd: "stepEnd" }, queries: [{ propertyName: "steps", predicate: WizardStepComponent }], ngImport: i0, template: "<nav>\r\n <ul class=\"list-inline step-list\">\r\n @for (step of steps.toArray(); track step; let i = $index) {\r\n <li class=\"list-inline-item step-item\">\r\n <button class=\"btn step-button\" [ngClass]=\"{\r\n 'step-active': selectedIndex === i,\r\n 'step-completed': step.completed,\r\n 'step-current': selectedIndex === i && step.completed === false\r\n }\" [disabled]=\"(i > 0 && !steps.toArray()[i - 1]?.completed)\" (click)=\"goToStep(i)\" type=\"button\">\r\n <span class=\"step-indicator bo-icons bo-alert-success\" aria-hidden=\"true\"></span>\r\n <span class=\"step-label\">\r\n {{ step.title || ('_COMMON._STEPPER.STEP' | translate) + (i + 1) }}\r\n </span>\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n</nav>\r\n\r\n@for (step of steps.toArray(); track step; let i = $index) {\r\n <section class=\"tab-pane\" [class.active]=\"selectedIndex === i\" [hidden]=\"selectedIndex !== i\" role=\"tabpanel\">\r\n <ng-container *ngTemplateOutlet=\"step.templateRef\"></ng-container>\r\n </section>\r\n}\r\n\r\n<div class=\"text-center mt-5\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn btn-secondary btn-min-width\" (click)=\"previousStep()\" [disabled]=\"selectedIndex === 0\"\r\n type=\"button\">\r\n {{ '_COMMON._STEPPER.PREVIOUS_STEP' | translate }}\r\n </button>\r\n\r\n @if (selectedIndex !== steps.length - 1) {\r\n <button class=\"btn btn-primary btn-min-width\" (click)=\"nextStep()\"\r\n [disabled]=\"!steps.toArray()[selectedIndex]?.completed\" type=\"button\">\r\n {{ '_COMMON._STEPPER.NEXT_STEP' | translate }}\r\n </button>\r\n }\r\n @else {\r\n <button class=\"btn btn-primary btn-min-width\" (click)=\"endWizard()\" type=\"button\">\r\n {{ '_COMMON._ACTION.END' | translate }}\r\n </button>\r\n }\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
1835
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: WizardStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1836
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: WizardStepperComponent, isStandalone: true, selector: "cw-wizard-stepper", outputs: { stepChange: "stepChange", stepNext: "stepNext", stepPrevious: "stepPrevious", stepEnd: "stepEnd" }, queries: [{ propertyName: "steps", predicate: WizardStepComponent }], ngImport: i0, template: "<nav>\r\n <ul class=\"list-inline step-list\">\r\n @for (step of steps.toArray(); track step; let i = $index) {\r\n <li class=\"list-inline-item step-item\">\r\n <button class=\"btn step-button\" [ngClass]=\"{\r\n 'step-active': selectedIndex === i,\r\n 'step-completed': step.completed,\r\n 'step-current': selectedIndex === i && step.completed === false\r\n }\" [disabled]=\"(i > 0 && !steps.toArray()[i - 1]?.completed)\" (click)=\"goToStep(i)\" type=\"button\">\r\n <span class=\"step-indicator bo-icons bo-alert-success\" aria-hidden=\"true\"></span>\r\n <span class=\"step-label\">\r\n {{ step.title || ('_COMMON._STEPPER.STEP' | translate) + (i + 1) }}\r\n </span>\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n</nav>\r\n\r\n@for (step of steps.toArray(); track step; let i = $index) {\r\n <section class=\"tab-pane\" [class.active]=\"selectedIndex === i\" [hidden]=\"selectedIndex !== i\" role=\"tabpanel\">\r\n <ng-container *ngTemplateOutlet=\"step.templateRef\"></ng-container>\r\n </section>\r\n}\r\n\r\n<div class=\"text-center mt-5\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn btn-secondary btn-min-width\" (click)=\"previousStep()\" [disabled]=\"selectedIndex === 0\"\r\n type=\"button\">\r\n {{ '_COMMON._STEPPER.PREVIOUS_STEP' | translate }}\r\n </button>\r\n\r\n @if (selectedIndex !== steps.length - 1) {\r\n <button class=\"btn btn-primary btn-min-width\" (click)=\"nextStep()\"\r\n [disabled]=\"!steps.toArray()[selectedIndex]?.completed\" type=\"button\">\r\n {{ '_COMMON._STEPPER.NEXT_STEP' | translate }}\r\n </button>\r\n }\r\n @else {\r\n <button class=\"btn btn-primary btn-min-width\" (click)=\"endWizard()\" type=\"button\">\r\n {{ '_COMMON._ACTION.END' | translate }}\r\n </button>\r\n }\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
2534
1837
  }
2535
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: WizardStepperComponent, decorators: [{
1838
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: WizardStepperComponent, decorators: [{
2536
1839
  type: Component,
2537
1840
  args: [{ selector: 'cw-wizard-stepper', standalone: true, imports: [
2538
1841
  CommonModule,
@@ -2557,10 +1860,10 @@ class StepperComponent {
2557
1860
  this.steps = [];
2558
1861
  this.label = 'Étapes de progression'; // todo trad
2559
1862
  }
2560
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2561
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: StepperComponent, isStandalone: true, selector: "cw-stepper", inputs: { activeStep: "activeStep", steps: "steps", label: "label" }, ngImport: i0, template: "<ul class=\"stepper\" role=\"list\" [attr.aria-label]=\"label\">\r\n @for (step of steps; track step; let i = $index) {\r\n <li id=\"step-{{i}}\" class=\"stepper-item\" [ngClass]=\"{\r\n 'stepper-item-current': i === activeStep,\r\n 'stepper-item-completed': i < activeStep}\"\r\n [attr.aria-current]=\"i === activeStep ? 'step' : null\">\r\n <span class=\"stepper-label\">\r\n <span class=\"visually-hidden\">{{i + 1}}</span>\r\n {{step | translate}}\r\n </span>\r\n </li>\r\n }\r\n</ul>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
1863
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1864
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: StepperComponent, isStandalone: true, selector: "cw-stepper", inputs: { activeStep: "activeStep", steps: "steps", label: "label" }, ngImport: i0, template: "<ul class=\"stepper\" role=\"list\" [attr.aria-label]=\"label\">\r\n @for (step of steps; track step; let i = $index) {\r\n <li id=\"step-{{i}}\" class=\"stepper-item\" [ngClass]=\"{\r\n 'stepper-item-current': i === activeStep,\r\n 'stepper-item-completed': i < activeStep}\"\r\n [attr.aria-current]=\"i === activeStep ? 'step' : null\">\r\n <span class=\"stepper-label\">\r\n <span class=\"visually-hidden\">{{i + 1}}</span>\r\n {{step | translate}}\r\n </span>\r\n </li>\r\n }\r\n</ul>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
2562
1865
  }
2563
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperComponent, decorators: [{
1866
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperComponent, decorators: [{
2564
1867
  type: Component,
2565
1868
  args: [{ selector: 'cw-stepper', standalone: true, imports: [
2566
1869
  CommonModule,
@@ -2589,10 +1892,10 @@ class FormatFileSizePipe {
2589
1892
  const unit = units[power];
2590
1893
  return `${formattedSize} ${unit}`;
2591
1894
  }
2592
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FormatFileSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2593
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: FormatFileSizePipe, isStandalone: true, name: "formatFileSize" }); }
1895
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FormatFileSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1896
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: FormatFileSizePipe, isStandalone: true, name: "formatFileSize" }); }
2594
1897
  }
2595
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FormatFileSizePipe, decorators: [{
1898
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FormatFileSizePipe, decorators: [{
2596
1899
  type: Pipe,
2597
1900
  args: [{ name: 'formatFileSize' }]
2598
1901
  }] });
@@ -2602,14 +1905,13 @@ class FileToDownloadComponent {
2602
1905
  this.translate = inject(TranslateService);
2603
1906
  this.iconType = IconTypeEnum;
2604
1907
  this.iconSize = IconSizeEnum;
2605
- this.spriteIcon = SpriteIconEnum.toolbarDownload;
2606
1908
  }
2607
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FileToDownloadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2608
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: FileToDownloadComponent, isStandalone: true, selector: "cw-file-to-download", inputs: { attachments: "attachments" }, ngImport: i0, template: "<!-- If one file -->\r\n@if (attachments.length === 1 ) {\r\n<ng-container *ngTemplateOutlet=\"file;context:{attachment:attachments[0]}\"></ng-container>\r\n}\r\n\r\n<!-- If two files or more, li loop -->\r\n@if (attachments.length > 1) {\r\n<ul class=\"list-unstyled file-to-download-items\">\r\n @for (attachment of attachments; track attachment) {\r\n <li class=\"file-to-download-list-item\">\r\n <ng-container *ngTemplateOutlet=\"file;context:{attachment:attachment}\"></ng-container>\r\n </li>\r\n }\r\n</ul>\r\n}\r\n\r\n<ng-template #file let-attachment=\"attachment\">\r\n <a [href]=\"attachment.url\" class=\"file-to-download-link\" target=\"_blank\">\r\n <span class=\"file-to-download-name\">\r\n {{ attachment.label ? attachment.label : ('_SHARED.ATTACHMENT_DEFAULT_LABEL' | translate ) }}\r\n </span>\r\n <span class=\"file-to-download-info\">\r\n @if (attachment.extension && attachment.size) {\r\n {{attachment.extension.toUpperCase()}} {{attachment.size * 1024 | formatFileSize}}\r\n }\r\n <cw-icon [icon]=\"spriteIcon\" font=\"optyweb\" [label]=\"'_COMMON.NEW_WINDOW' |translate\" [type]=\"iconType.default\"\r\n [iconSize]=\"iconSize['md']\" iconCssClass=\"file-to-download-download\"></cw-icon>\r\n </span>\r\n </a>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom", "spritePath"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormatFileSizePipe, name: "formatFileSize" }] }); }
1909
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FileToDownloadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1910
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: FileToDownloadComponent, isStandalone: true, selector: "cw-file-to-download", inputs: { attachments: "attachments" }, ngImport: i0, template: "<!-- If one file -->\r\n@if (attachments.length === 1 ) {\r\n<ng-container *ngTemplateOutlet=\"file;context:{attachment:attachments[0]}\"></ng-container>\r\n}\r\n\r\n<!-- If two files or more, li loop -->\r\n@if (attachments.length > 1) {\r\n<ul class=\"list-unstyled file-to-download-items\">\r\n @for (attachment of attachments; track attachment) {\r\n <li class=\"file-to-download-list-item\">\r\n <ng-container *ngTemplateOutlet=\"file;context:{attachment:attachment}\"></ng-container>\r\n </li>\r\n }\r\n</ul>\r\n}\r\n\r\n<ng-template #file let-attachment=\"attachment\">\r\n <a [href]=\"attachment.url\" class=\"file-to-download-link\" target=\"_blank\">\r\n <span class=\"file-to-download-name\">\r\n {{ attachment.label ? attachment.label : ('_SHARED.ATTACHMENT_DEFAULT_LABEL' | translate ) }}\r\n </span>\r\n <span class=\"file-to-download-info\">\r\n @if (attachment.extension && attachment.size) {\r\n {{attachment.extension.toUpperCase()}} {{attachment.size * 1024 | formatFileSize}}\r\n }\r\n <cw-icon icon=\"cw-toolbar-download\" font=\"optyweb\" [label]=\"'_COMMON.NEW_WINDOW' |translate\" [type]=\"iconType.default\"\r\n [iconSize]=\"iconSize['md']\" iconCssClass=\"file-to-download-download\"></cw-icon>\r\n </span>\r\n </a>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "font", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FormatFileSizePipe, name: "formatFileSize" }] }); }
2609
1911
  }
2610
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FileToDownloadComponent, decorators: [{
1912
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FileToDownloadComponent, decorators: [{
2611
1913
  type: Component,
2612
- args: [{ selector: 'cw-file-to-download', imports: [NgTemplateOutlet, TranslatePipe, FormatFileSizePipe, IconComponent], template: "<!-- If one file -->\r\n@if (attachments.length === 1 ) {\r\n<ng-container *ngTemplateOutlet=\"file;context:{attachment:attachments[0]}\"></ng-container>\r\n}\r\n\r\n<!-- If two files or more, li loop -->\r\n@if (attachments.length > 1) {\r\n<ul class=\"list-unstyled file-to-download-items\">\r\n @for (attachment of attachments; track attachment) {\r\n <li class=\"file-to-download-list-item\">\r\n <ng-container *ngTemplateOutlet=\"file;context:{attachment:attachment}\"></ng-container>\r\n </li>\r\n }\r\n</ul>\r\n}\r\n\r\n<ng-template #file let-attachment=\"attachment\">\r\n <a [href]=\"attachment.url\" class=\"file-to-download-link\" target=\"_blank\">\r\n <span class=\"file-to-download-name\">\r\n {{ attachment.label ? attachment.label : ('_SHARED.ATTACHMENT_DEFAULT_LABEL' | translate ) }}\r\n </span>\r\n <span class=\"file-to-download-info\">\r\n @if (attachment.extension && attachment.size) {\r\n {{attachment.extension.toUpperCase()}} {{attachment.size * 1024 | formatFileSize}}\r\n }\r\n <cw-icon [icon]=\"spriteIcon\" font=\"optyweb\" [label]=\"'_COMMON.NEW_WINDOW' |translate\" [type]=\"iconType.default\"\r\n [iconSize]=\"iconSize['md']\" iconCssClass=\"file-to-download-download\"></cw-icon>\r\n </span>\r\n </a>\r\n</ng-template>\r\n" }]
1914
+ args: [{ selector: 'cw-file-to-download', imports: [NgTemplateOutlet, TranslatePipe, FormatFileSizePipe, IconComponent], template: "<!-- If one file -->\r\n@if (attachments.length === 1 ) {\r\n<ng-container *ngTemplateOutlet=\"file;context:{attachment:attachments[0]}\"></ng-container>\r\n}\r\n\r\n<!-- If two files or more, li loop -->\r\n@if (attachments.length > 1) {\r\n<ul class=\"list-unstyled file-to-download-items\">\r\n @for (attachment of attachments; track attachment) {\r\n <li class=\"file-to-download-list-item\">\r\n <ng-container *ngTemplateOutlet=\"file;context:{attachment:attachment}\"></ng-container>\r\n </li>\r\n }\r\n</ul>\r\n}\r\n\r\n<ng-template #file let-attachment=\"attachment\">\r\n <a [href]=\"attachment.url\" class=\"file-to-download-link\" target=\"_blank\">\r\n <span class=\"file-to-download-name\">\r\n {{ attachment.label ? attachment.label : ('_SHARED.ATTACHMENT_DEFAULT_LABEL' | translate ) }}\r\n </span>\r\n <span class=\"file-to-download-info\">\r\n @if (attachment.extension && attachment.size) {\r\n {{attachment.extension.toUpperCase()}} {{attachment.size * 1024 | formatFileSize}}\r\n }\r\n <cw-icon icon=\"cw-toolbar-download\" font=\"optyweb\" [label]=\"'_COMMON.NEW_WINDOW' |translate\" [type]=\"iconType.default\"\r\n [iconSize]=\"iconSize['md']\" iconCssClass=\"file-to-download-download\"></cw-icon>\r\n </span>\r\n </a>\r\n</ng-template>\r\n" }]
2613
1915
  }], propDecorators: { attachments: [{
2614
1916
  type: Input
2615
1917
  }] } });
@@ -2644,11 +1946,13 @@ class NumericalRangeComponent {
2644
1946
  this.numericalRangeType = NumericalRangeTypeEnum;
2645
1947
  this.iconTypeEnum = IconTypeEnum;
2646
1948
  this.iconSize = IconSizeEnum;
2647
- this.spriteIcon = SpriteIconEnum;
2648
1949
  this.labelPositionValue = NumericalRangeLabelPositionEnum;
2649
1950
  this.buttonType = FoButtonTypeEnum && BoButtonTypeEnum;
2650
1951
  this.buttonIconSize = ButtonIconSizeEnum;
2651
- this.uniqueId = `numerical-range-${Math.random().toString(36).slice(2)}`;
1952
+ }
1953
+ ngOnInit() {
1954
+ // this.elementRef.nativeElement.classList.add('dropdown-item');
1955
+ // this.elementRef.nativeElement.setAttribute('tabindex', '0');
2652
1956
  }
2653
1957
  increaseAmount() {
2654
1958
  const amount = this.amount + 1;
@@ -2667,12 +1971,12 @@ class NumericalRangeComponent {
2667
1971
  }
2668
1972
  this.newAmount.emit(amount);
2669
1973
  }
2670
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: NumericalRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2671
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: NumericalRangeComponent, isStandalone: true, selector: "cw-numerical-range", inputs: { type: "type", label: "label", amount: "amount", withIcon: "withIcon", withLabelVisible: "withLabelVisible", labelPosition: "labelPosition", ceil: "ceil", floor: "floor", isDisabled: "isDisabled", autoChangeAmount: "autoChangeAmount" }, outputs: { newAmount: "newAmount" }, ngImport: i0, template: "<div class=\"numerical-range text-center\" [ngClass]=\"'numerical-range-' + type\">\r\n\r\n @if (labelPosition == labelPositionValue.outside && withLabelVisible) {\r\n <div class=\"numerical-range-label\" aria-hidden=\"true\">\r\n @if (withIcon && (type == numericalRangeType.largeWhite || type == numericalRangeType.largeGrey)) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSize['lg']\"></cw-icon>\r\n }\r\n <span>{{ label }}</span>\r\n </div>\r\n }\r\n\r\n <div class=\"numerical-range-container\">\r\n <cw-button [isDisabled]=\"isDisabled || amount <= floor\" [label]=\"'Diminuer ' + amount + ' ' + label\"\r\n [withIcon]=\"spriteIcon.toolbarMinus\" [withOnlyIcon]=\"true\" [type]=\"buttonType.primary\"\r\n [iconSize]=\"buttonIconSize.small\" (btnAction)=\"decreaseAmount()\">\r\n </cw-button>\r\n\r\n <div class=\"numerical-range-wrapper\">\r\n <div class=\"numerical-range-amount\" aria-live=\"polite\" aria-atomic=\"true\">\r\n {{ amount }}\r\n @if (!withLabelVisible && !withIcon) {\r\n <span class=\"sr-only\">{{ label }}</span>\r\n }\r\n </div>\r\n\r\n @if ((type !== numericalRangeType.largeGrey && type !== numericalRangeType.largeWhite) && (withIcon ||\r\n withLabelVisible)) {\r\n <div class=\"numerical-range-label\">\r\n @if (withLabelVisible && labelPosition == labelPositionValue.inside) {\r\n @if (withIcon) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSize['lg']\" aria-hidden=\"true\"></cw-icon>\r\n }\r\n <span>{{ label }}</span>\r\n }\r\n @else {\r\n @if (withIcon) {\r\n <cw-icon [icon]=\"withIcon\" [label]=\"label\" [iconSize]=\"iconSize['lg']\"></cw-icon>\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n <cw-button [isDisabled]=\"isDisabled || amount >= ceil\" [label]=\"'Augmenter ' + amount + ' ' + label\"\r\n [withIcon]=\"spriteIcon.toolbarPlus\" [withOnlyIcon]=\"true\" [type]=\"buttonType.primary\"\r\n [iconSize]=\"buttonIconSize.small\" (btnAction)=\"increaseAmount()\">\r\n </cw-button>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom", "spritePath"] }, { kind: "component", type: ButtonComponent, selector: "cw-button", inputs: ["type", "label", "id", "isDropdown", "withIcon", "withOnlyIcon", "iconSize", "iconPosition", "dropdownPosition", "isMinWidth", "isDisabled", "isLoading", "cssClass", "dataTest", "skeletonMode", "withTooltip", "tooltipText", "tooltipTitle", "tooltipTrigger", "tooltipPosition", "tooltipType"], outputs: ["btnAction", "dropDownClicked"] }] }); }
1974
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NumericalRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1975
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: NumericalRangeComponent, isStandalone: true, selector: "cw-numerical-range", inputs: { type: "type", label: "label", amount: "amount", withIcon: "withIcon", withLabelVisible: "withLabelVisible", labelPosition: "labelPosition", ceil: "ceil", floor: "floor", isDisabled: "isDisabled", autoChangeAmount: "autoChangeAmount" }, outputs: { newAmount: "newAmount" }, ngImport: i0, template: "<div class=\"numerical-range text-center\" [ngClass]=\"'numerical-range-' + type\">\r\n @if (labelPosition == labelPositionValue.outside) {\r\n @if (withLabelVisible) {\r\n <div class=\"numerical-range-label\">\r\n @if (withIcon && (type == numericalRangeType.largeWhite || type == numericalRangeType.largeGrey)) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSize['lg']\"></cw-icon>\r\n }\r\n <span>{{ label }}</span>\r\n </div>\r\n }\r\n }\r\n <div class=\"numerical-range-container\">\r\n\r\n <cw-button [isDisabled]=\"isDisabled || amount <= floor\" label=\"Augmenter la valeur de 1\"\r\n withIcon=\"optyweb cw-toolbar-add\" [withOnlyIcon]=\"true\" [type]=\"buttonType.primary\" [iconSize]=\"buttonIconSize.small\"\r\n (btnAction)=\"decreaseAmount()\"></cw-button>\r\n\r\n <div class=\"numerical-range-wrapper\">\r\n <div class=\"numerical-range-amount\">\r\n {{ amount }}\r\n </div>\r\n\r\n @if ((type !== numericalRangeType.largeGrey && type !== numericalRangeType.largeWhite) && (withIcon || withLabelVisible)) {\r\n <div class=\"numerical-range-label\">\r\n @if (withLabelVisible && labelPosition == labelPositionValue.inside) {\r\n @if (withIcon) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSize['lg']\"></cw-icon>\r\n }\r\n <span>{{ label }}</span>\r\n }\r\n @else {\r\n @if (withIcon) {\r\n <cw-icon [icon]=\"withIcon\" [label]=\"label\" [iconSize]=\"iconSize['lg']\"></cw-icon>\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n <cw-button [isDisabled]=\"isDisabled || amount >= ceil\" label=\"Dimiuer la valeur de 1\"\r\n withIcon=\"optyweb cw-toolbar-add\" [withOnlyIcon]=\"true\" [type]=\"buttonType.primary\" [iconSize]=\"buttonIconSize.small\"\r\n (btnAction)=\"increaseAmount()\"></cw-button>\r\n </div>\r\n\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "cw-icon", inputs: ["icon", "font", "label", "type", "iconSize", "iconCssClass", "iconUiType", "iconColorCustom"] }, { kind: "component", type: ButtonComponent, selector: "cw-button", inputs: ["type", "label", "id", "isDropdown", "withIcon", "withOnlyIcon", "iconSize", "iconPosition", "dropdownPosition", "isMinWidth", "isDisabled", "withSpinner", "cssClass", "dataTest", "withTooltip", "tooltipText", "tooltipTitle", "tooltipTrigger", "tooltipPosition", "tooltipType"], outputs: ["btnAction", "dropDownClicked"] }] }); }
2672
1976
  }
2673
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: NumericalRangeComponent, decorators: [{
1977
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NumericalRangeComponent, decorators: [{
2674
1978
  type: Component,
2675
- args: [{ selector: 'cw-numerical-range', imports: [NgClass, IconComponent, ButtonComponent], standalone: true, template: "<div class=\"numerical-range text-center\" [ngClass]=\"'numerical-range-' + type\">\r\n\r\n @if (labelPosition == labelPositionValue.outside && withLabelVisible) {\r\n <div class=\"numerical-range-label\" aria-hidden=\"true\">\r\n @if (withIcon && (type == numericalRangeType.largeWhite || type == numericalRangeType.largeGrey)) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSize['lg']\"></cw-icon>\r\n }\r\n <span>{{ label }}</span>\r\n </div>\r\n }\r\n\r\n <div class=\"numerical-range-container\">\r\n <cw-button [isDisabled]=\"isDisabled || amount <= floor\" [label]=\"'Diminuer ' + amount + ' ' + label\"\r\n [withIcon]=\"spriteIcon.toolbarMinus\" [withOnlyIcon]=\"true\" [type]=\"buttonType.primary\"\r\n [iconSize]=\"buttonIconSize.small\" (btnAction)=\"decreaseAmount()\">\r\n </cw-button>\r\n\r\n <div class=\"numerical-range-wrapper\">\r\n <div class=\"numerical-range-amount\" aria-live=\"polite\" aria-atomic=\"true\">\r\n {{ amount }}\r\n @if (!withLabelVisible && !withIcon) {\r\n <span class=\"sr-only\">{{ label }}</span>\r\n }\r\n </div>\r\n\r\n @if ((type !== numericalRangeType.largeGrey && type !== numericalRangeType.largeWhite) && (withIcon ||\r\n withLabelVisible)) {\r\n <div class=\"numerical-range-label\">\r\n @if (withLabelVisible && labelPosition == labelPositionValue.inside) {\r\n @if (withIcon) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSize['lg']\" aria-hidden=\"true\"></cw-icon>\r\n }\r\n <span>{{ label }}</span>\r\n }\r\n @else {\r\n @if (withIcon) {\r\n <cw-icon [icon]=\"withIcon\" [label]=\"label\" [iconSize]=\"iconSize['lg']\"></cw-icon>\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n <cw-button [isDisabled]=\"isDisabled || amount >= ceil\" [label]=\"'Augmenter ' + amount + ' ' + label\"\r\n [withIcon]=\"spriteIcon.toolbarPlus\" [withOnlyIcon]=\"true\" [type]=\"buttonType.primary\"\r\n [iconSize]=\"buttonIconSize.small\" (btnAction)=\"increaseAmount()\">\r\n </cw-button>\r\n </div>\r\n</div>\r\n" }]
1979
+ args: [{ selector: 'cw-numerical-range', imports: [NgClass, IconComponent, ButtonComponent], standalone: true, template: "<div class=\"numerical-range text-center\" [ngClass]=\"'numerical-range-' + type\">\r\n @if (labelPosition == labelPositionValue.outside) {\r\n @if (withLabelVisible) {\r\n <div class=\"numerical-range-label\">\r\n @if (withIcon && (type == numericalRangeType.largeWhite || type == numericalRangeType.largeGrey)) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSize['lg']\"></cw-icon>\r\n }\r\n <span>{{ label }}</span>\r\n </div>\r\n }\r\n }\r\n <div class=\"numerical-range-container\">\r\n\r\n <cw-button [isDisabled]=\"isDisabled || amount <= floor\" label=\"Augmenter la valeur de 1\"\r\n withIcon=\"optyweb cw-toolbar-add\" [withOnlyIcon]=\"true\" [type]=\"buttonType.primary\" [iconSize]=\"buttonIconSize.small\"\r\n (btnAction)=\"decreaseAmount()\"></cw-button>\r\n\r\n <div class=\"numerical-range-wrapper\">\r\n <div class=\"numerical-range-amount\">\r\n {{ amount }}\r\n </div>\r\n\r\n @if ((type !== numericalRangeType.largeGrey && type !== numericalRangeType.largeWhite) && (withIcon || withLabelVisible)) {\r\n <div class=\"numerical-range-label\">\r\n @if (withLabelVisible && labelPosition == labelPositionValue.inside) {\r\n @if (withIcon) {\r\n <cw-icon [icon]=\"withIcon\" [iconSize]=\"iconSize['lg']\"></cw-icon>\r\n }\r\n <span>{{ label }}</span>\r\n }\r\n @else {\r\n @if (withIcon) {\r\n <cw-icon [icon]=\"withIcon\" [label]=\"label\" [iconSize]=\"iconSize['lg']\"></cw-icon>\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n <cw-button [isDisabled]=\"isDisabled || amount >= ceil\" label=\"Dimiuer la valeur de 1\"\r\n withIcon=\"optyweb cw-toolbar-add\" [withOnlyIcon]=\"true\" [type]=\"buttonType.primary\" [iconSize]=\"buttonIconSize.small\"\r\n (btnAction)=\"increaseAmount()\"></cw-button>\r\n </div>\r\n\r\n</div>\r\n" }]
2676
1980
  }], propDecorators: { type: [{
2677
1981
  type: Input
2678
1982
  }], label: [{
@@ -2706,10 +2010,10 @@ class ImageComponent {
2706
2010
  this.width = '';
2707
2011
  this.height = '';
2708
2012
  }
2709
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2710
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: ImageComponent, isStandalone: true, selector: "cw-image", inputs: { source: "source", alt: "alt", isAriaHidden: "isAriaHidden", cssClass: "cssClass", width: "width", height: "height" }, ngImport: i0, template: "<img [src]=\"source\" [attr.aria-hidden]=\"isAriaHidden ? 'true' : null\" [class]=\"cssClass\" [alt]=\"alt\"\r\n [attr.width]=\"width ? width : null\" [attr.height]=\"height ? height : null\">\r\n" }); }
2013
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2014
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: ImageComponent, isStandalone: true, selector: "cw-image", inputs: { source: "source", alt: "alt", isAriaHidden: "isAriaHidden", cssClass: "cssClass", width: "width", height: "height" }, ngImport: i0, template: "<img [src]=\"source\" [attr.aria-hidden]=\"isAriaHidden ? 'true' : null\" [class]=\"cssClass\" [alt]=\"alt\"\r\n [attr.width]=\"width ? width : null\" [attr.height]=\"height ? height : null\">\r\n" }); }
2711
2015
  }
2712
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ImageComponent, decorators: [{
2016
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ImageComponent, decorators: [{
2713
2017
  type: Component,
2714
2018
  args: [{ selector: 'cw-image', standalone: true, template: "<img [src]=\"source\" [attr.aria-hidden]=\"isAriaHidden ? 'true' : null\" [class]=\"cssClass\" [alt]=\"alt\"\r\n [attr.width]=\"width ? width : null\" [attr.height]=\"height ? height : null\">\r\n" }]
2715
2019
  }], propDecorators: { source: [{
@@ -2732,6 +2036,47 @@ var PlacementEnum;
2732
2036
  PlacementEnum["Right"] = "right";
2733
2037
  })(PlacementEnum || (PlacementEnum = {}));
2734
2038
 
2039
+ class ModalsService {
2040
+ constructor(modalService) {
2041
+ this.modalService = modalService;
2042
+ }
2043
+ openModal(type, config, sizeOverride) {
2044
+ const size = sizeOverride ?? this.getModalSizeByType(type);
2045
+ const modalRef = this.modalService.open(ModalsComponent, {
2046
+ centered: true,
2047
+ size,
2048
+ backdrop: type === ModalsType.loader ? 'static' : true,
2049
+ ariaLabelledBy: 'modal-basic-title',
2050
+ keyboard: type !== ModalsType.loader,
2051
+ windowClass: type === ModalsType.quickSideView ? 'quick-view-modal' : null,
2052
+ scrollable: type === ModalsType.quickSideView
2053
+ });
2054
+ modalRef.componentInstance.type = type;
2055
+ if (config) {
2056
+ Object.assign(modalRef.componentInstance, config);
2057
+ }
2058
+ return modalRef;
2059
+ }
2060
+ getModalSizeByType(type) {
2061
+ switch (type) {
2062
+ case ModalsType.loader:
2063
+ return 'sm';
2064
+ case ModalsType.delete:
2065
+ return 'md';
2066
+ case ModalsType.quickSideView:
2067
+ return 'lg';
2068
+ default:
2069
+ return 'md';
2070
+ }
2071
+ }
2072
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModalsService, deps: [{ token: i1$1.NgbModal }], target: i0.ɵɵFactoryTarget.Injectable }); }
2073
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModalsService, providedIn: 'root' }); }
2074
+ }
2075
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModalsService, decorators: [{
2076
+ type: Injectable,
2077
+ args: [{ providedIn: 'root' }]
2078
+ }], ctorParameters: () => [{ type: i1$1.NgbModal }] });
2079
+
2735
2080
  /*
2736
2081
  * Public API Surface of basic-ui
2737
2082
  */
@@ -2743,5 +2088,5 @@ var PlacementEnum;
2743
2088
  * Generated bundle index. Do not edit.
2744
2089
  */
2745
2090
 
2746
- export { AccordionComponent, AlertComponent, AlertTypeEnum, BadgeComponent, BadgePositionEnum, BadgeTypeEnum, BoButtonTypeEnum, BoTabTypeEnum, ButtonComponent, ButtonIconSizeEnum, ButtonPositionEnum, CardComponent, CardTitleRankEnum, CardTypeEnum, ClickOutsideDirective, CollapseDirective, DropdownComponent, DropdownItemDirective, FileToDownloadComponent, FoButtonTypeEnum, FoTabTypeEnum, FocusTrackerService, FormFieldComponent, FormFieldTypeEnum, IconComponent, IconNotifSizeEnum, IconNotifTypeEnum, IconNotificationComponent, IconSizeEnum, IconTypeEnum, IconUiTypeEnum, ImageComponent, LegendComponent, LegendTypeEnum, LoaderComponent, ModalsComponent, ModalsService, ModalsSize, ModalsType, NumericalRangeComponent, NumericalRangeLabelPositionEnum, NumericalRangeTypeEnum, PlacementEnum, ResponsiveService, StepperComponent, TabComponent, TabContentComponent, ToastComponent, ToastService, TriggerTooltipEnum, TypeTooltipEnum, WizardStepComponent, WizardStepperComponent, rangeValidator };
2091
+ export { AccordionComponent, AlertComponent, AlertTypeEnum, BadgeComponent, BadgePositionEnum, BadgeTypeEnum, BoButtonTypeEnum, BoTabTypeEnum, ButtonComponent, ButtonIconSizeEnum, ButtonPositionEnum, CardComponent, CardTitleRankEnum, CardTypeEnum, ClickOutsideDirective, CollapseDirective, DropdownComponent, DropdownItemDirective, FileToDownloadComponent, FoButtonTypeEnum, FoTabTypeEnum, FocusTrackerService, FormFieldComponent, FormFieldTypeEnum, IconComponent, IconNotifSizeEnum, IconNotifTypeEnum, IconNotificationComponent, IconSizeEnum, IconTypeEnum, IconUiTypeEnum, ImageComponent, LegendComponent, LegendTypeEnum, LoaderComponent, ModalsComponent, ModalsService, ModalsType, NumericalRangeComponent, NumericalRangeLabelPositionEnum, NumericalRangeTypeEnum, PlacementEnum, ResponsiveService, StepperComponent, TabComponent, TabContentComponent, ToastComponent, ToastService, TriggerTooltipEnum, TypeTooltipEnum, WizardStepComponent, WizardStepperComponent, rangeValidator };
2747
2092
  //# sourceMappingURL=cityway-basic-ui.mjs.map