@dflat-core/web 1.7.2074 → 1.7.2075

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 (688) hide show
  1. package/README.md +211 -211
  2. package/assets/components/modals.scss +216 -216
  3. package/assets/images/icons/fa/500px.svg +6 -6
  4. package/assets/images/icons/fa/address-book-o.svg +4 -4
  5. package/assets/images/icons/fa/address-book.svg +3 -3
  6. package/assets/images/icons/fa/adjust.svg +1 -1
  7. package/assets/images/icons/fa/adn.svg +1 -1
  8. package/assets/images/icons/fa/align-center.svg +2 -2
  9. package/assets/images/icons/fa/align-justify.svg +2 -2
  10. package/assets/images/icons/fa/align-left.svg +2 -2
  11. package/assets/images/icons/fa/align-right.svg +2 -2
  12. package/assets/images/icons/fa/amazon.svg +5 -5
  13. package/assets/images/icons/fa/ambulance.svg +3 -3
  14. package/assets/images/icons/fa/anchor.svg +3 -3
  15. package/assets/images/icons/fa/android.svg +3 -3
  16. package/assets/images/icons/fa/angellist.svg +6 -6
  17. package/assets/images/icons/fa/angle-double-down.svg +2 -2
  18. package/assets/images/icons/fa/angle-double-left.svg +2 -2
  19. package/assets/images/icons/fa/angle-double-right.svg +2 -2
  20. package/assets/images/icons/fa/angle-double-up.svg +2 -2
  21. package/assets/images/icons/fa/angle-down.svg +1 -1
  22. package/assets/images/icons/fa/angle-left.svg +1 -1
  23. package/assets/images/icons/fa/angle-right.svg +1 -1
  24. package/assets/images/icons/fa/angle-up.svg +1 -1
  25. package/assets/images/icons/fa/apple.svg +2 -2
  26. package/assets/images/icons/fa/archive.svg +2 -2
  27. package/assets/images/icons/fa/area-chart.svg +1 -1
  28. package/assets/images/icons/fa/arrow-circle-down.svg +2 -2
  29. package/assets/images/icons/fa/arrow-circle-left.svg +2 -2
  30. package/assets/images/icons/fa/arrow-circle-o-down.svg +2 -2
  31. package/assets/images/icons/fa/arrow-circle-o-left.svg +2 -2
  32. package/assets/images/icons/fa/arrow-circle-o-right.svg +2 -2
  33. package/assets/images/icons/fa/arrow-circle-o-up.svg +2 -2
  34. package/assets/images/icons/fa/arrow-circle-right.svg +2 -2
  35. package/assets/images/icons/fa/arrow-circle-up.svg +2 -2
  36. package/assets/images/icons/fa/arrow-down.svg +1 -1
  37. package/assets/images/icons/fa/arrow-left.svg +2 -2
  38. package/assets/images/icons/fa/arrow-right.svg +1 -1
  39. package/assets/images/icons/fa/arrow-up.svg +2 -2
  40. package/assets/images/icons/fa/arrows-alt.svg +3 -3
  41. package/assets/images/icons/fa/arrows-h.svg +1 -1
  42. package/assets/images/icons/fa/arrows-v.svg +1 -1
  43. package/assets/images/icons/fa/arrows.svg +2 -2
  44. package/assets/images/icons/fa/asl-interpreting.svg +6 -6
  45. package/assets/images/icons/fa/assistive-listening-systems.svg +5 -5
  46. package/assets/images/icons/fa/asterisk.svg +2 -2
  47. package/assets/images/icons/fa/at.svg +4 -4
  48. package/assets/images/icons/fa/audio-description.svg +5 -5
  49. package/assets/images/icons/fa/automobile.svg +3 -3
  50. package/assets/images/icons/fa/backward.svg +1 -1
  51. package/assets/images/icons/fa/balance-scale.svg +4 -4
  52. package/assets/images/icons/fa/ban.svg +2 -2
  53. package/assets/images/icons/fa/bandcamp.svg +1 -1
  54. package/assets/images/icons/fa/bar-chart-o.svg +1 -1
  55. package/assets/images/icons/fa/barcode.svg +2 -2
  56. package/assets/images/icons/fa/bathtub.svg +6 -6
  57. package/assets/images/icons/fa/battery-0.svg +2 -2
  58. package/assets/images/icons/fa/battery-1.svg +2 -2
  59. package/assets/images/icons/fa/battery-2.svg +2 -2
  60. package/assets/images/icons/fa/battery-3.svg +2 -2
  61. package/assets/images/icons/fa/battery-4.svg +2 -2
  62. package/assets/images/icons/fa/beer.svg +1 -1
  63. package/assets/images/icons/fa/behance-square.svg +3 -3
  64. package/assets/images/icons/fa/behance.svg +3 -3
  65. package/assets/images/icons/fa/bell-o.svg +3 -3
  66. package/assets/images/icons/fa/bell-slash-o.svg +3 -3
  67. package/assets/images/icons/fa/bell-slash.svg +3 -3
  68. package/assets/images/icons/fa/bell.svg +2 -2
  69. package/assets/images/icons/fa/bicycle.svg +4 -4
  70. package/assets/images/icons/fa/binoculars.svg +2 -2
  71. package/assets/images/icons/fa/birthday-cake.svg +5 -5
  72. package/assets/images/icons/fa/bitbucket-square.svg +4 -4
  73. package/assets/images/icons/fa/bitbucket.svg +4 -4
  74. package/assets/images/icons/fa/bitcoin.svg +3 -3
  75. package/assets/images/icons/fa/black-tie.svg +1 -1
  76. package/assets/images/icons/fa/blind.svg +4 -4
  77. package/assets/images/icons/fa/bluetooth-b.svg +1 -1
  78. package/assets/images/icons/fa/bluetooth.svg +2 -2
  79. package/assets/images/icons/fa/bold.svg +4 -4
  80. package/assets/images/icons/fa/bomb.svg +4 -4
  81. package/assets/images/icons/fa/book.svg +4 -4
  82. package/assets/images/icons/fa/bookmark-o.svg +2 -2
  83. package/assets/images/icons/fa/bookmark.svg +1 -1
  84. package/assets/images/icons/fa/braille.svg +7 -7
  85. package/assets/images/icons/fa/briefcase.svg +2 -2
  86. package/assets/images/icons/fa/bug.svg +3 -3
  87. package/assets/images/icons/fa/building-o.svg +10 -10
  88. package/assets/images/icons/fa/building.svg +8 -8
  89. package/assets/images/icons/fa/bullhorn.svg +2 -2
  90. package/assets/images/icons/fa/bullseye.svg +3 -3
  91. package/assets/images/icons/fa/bus.svg +3 -3
  92. package/assets/images/icons/fa/buysellads.svg +1 -1
  93. package/assets/images/icons/fa/cab.svg +3 -3
  94. package/assets/images/icons/fa/calculator.svg +6 -6
  95. package/assets/images/icons/fa/calendar-check-o.svg +3 -3
  96. package/assets/images/icons/fa/calendar-minus-o.svg +3 -3
  97. package/assets/images/icons/fa/calendar-o.svg +2 -2
  98. package/assets/images/icons/fa/calendar-plus-o.svg +3 -3
  99. package/assets/images/icons/fa/calendar-times-o.svg +3 -3
  100. package/assets/images/icons/fa/calendar.svg +4 -4
  101. package/assets/images/icons/fa/camera-retro.svg +3 -3
  102. package/assets/images/icons/fa/camera.svg +2 -2
  103. package/assets/images/icons/fa/caret-down.svg +1 -1
  104. package/assets/images/icons/fa/caret-left.svg +1 -1
  105. package/assets/images/icons/fa/caret-right.svg +1 -1
  106. package/assets/images/icons/fa/caret-up.svg +1 -1
  107. package/assets/images/icons/fa/cart-arrow-down.svg +3 -3
  108. package/assets/images/icons/fa/cart-plus.svg +3 -3
  109. package/assets/images/icons/fa/cc-amex.svg +9 -9
  110. package/assets/images/icons/fa/cc-diners-club.svg +3 -3
  111. package/assets/images/icons/fa/cc-discover.svg +5 -5
  112. package/assets/images/icons/fa/cc-jcb.svg +4 -4
  113. package/assets/images/icons/fa/cc-mastercard.svg +11 -11
  114. package/assets/images/icons/fa/cc-paypal.svg +6 -6
  115. package/assets/images/icons/fa/cc-stripe.svg +5 -5
  116. package/assets/images/icons/fa/cc-visa.svg +3 -3
  117. package/assets/images/icons/fa/cc.svg +4 -4
  118. package/assets/images/icons/fa/certificate.svg +3 -3
  119. package/assets/images/icons/fa/chain.svg +4 -4
  120. package/assets/images/icons/fa/check-circle-o.svg +2 -2
  121. package/assets/images/icons/fa/check-circle.svg +2 -2
  122. package/assets/images/icons/fa/check-square-o.svg +3 -3
  123. package/assets/images/icons/fa/check-square.svg +2 -2
  124. package/assets/images/icons/fa/check.svg +1 -1
  125. package/assets/images/icons/fa/chevron-circle-down.svg +2 -2
  126. package/assets/images/icons/fa/chevron-circle-left.svg +2 -2
  127. package/assets/images/icons/fa/chevron-circle-right.svg +2 -2
  128. package/assets/images/icons/fa/chevron-circle-up.svg +2 -2
  129. package/assets/images/icons/fa/chevron-down.svg +1 -1
  130. package/assets/images/icons/fa/chevron-left.svg +1 -1
  131. package/assets/images/icons/fa/chevron-right.svg +1 -1
  132. package/assets/images/icons/fa/chevron-up.svg +1 -1
  133. package/assets/images/icons/fa/child.svg +2 -2
  134. package/assets/images/icons/fa/chrome.svg +2 -2
  135. package/assets/images/icons/fa/circle-o-notch.svg +2 -2
  136. package/assets/images/icons/fa/circle-o.svg +2 -2
  137. package/assets/images/icons/fa/circle-thin.svg +2 -2
  138. package/assets/images/icons/fa/circle.svg +1 -1
  139. package/assets/images/icons/fa/clock-o.svg +2 -2
  140. package/assets/images/icons/fa/clone.svg +2 -2
  141. package/assets/images/icons/fa/cloud-download.svg +2 -2
  142. package/assets/images/icons/fa/cloud-upload.svg +2 -2
  143. package/assets/images/icons/fa/cloud.svg +2 -2
  144. package/assets/images/icons/fa/cny.svg +2 -2
  145. package/assets/images/icons/fa/code-fork.svg +3 -3
  146. package/assets/images/icons/fa/code.svg +2 -2
  147. package/assets/images/icons/fa/codepen.svg +2 -2
  148. package/assets/images/icons/fa/codiepie.svg +3 -3
  149. package/assets/images/icons/fa/coffee.svg +2 -2
  150. package/assets/images/icons/fa/columns.svg +1 -1
  151. package/assets/images/icons/fa/comment-o.svg +3 -3
  152. package/assets/images/icons/fa/comment.svg +2 -2
  153. package/assets/images/icons/fa/commenting-o.svg +4 -4
  154. package/assets/images/icons/fa/commenting.svg +3 -3
  155. package/assets/images/icons/fa/comments-o.svg +4 -4
  156. package/assets/images/icons/fa/comments.svg +3 -3
  157. package/assets/images/icons/fa/compass.svg +2 -2
  158. package/assets/images/icons/fa/compress.svg +2 -2
  159. package/assets/images/icons/fa/connectdevelop.svg +7 -7
  160. package/assets/images/icons/fa/contao.svg +3 -3
  161. package/assets/images/icons/fa/copy.svg +2 -2
  162. package/assets/images/icons/fa/copyright.svg +3 -3
  163. package/assets/images/icons/fa/creative-commons.svg +5 -5
  164. package/assets/images/icons/fa/credit-card-alt.svg +1 -1
  165. package/assets/images/icons/fa/credit-card.svg +2 -2
  166. package/assets/images/icons/fa/crop.svg +2 -2
  167. package/assets/images/icons/fa/crosshairs.svg +3 -3
  168. package/assets/images/icons/fa/css3.svg +1 -1
  169. package/assets/images/icons/fa/cube.svg +2 -2
  170. package/assets/images/icons/fa/cubes.svg +3 -3
  171. package/assets/images/icons/fa/cut.svg +5 -5
  172. package/assets/images/icons/fa/cutlery.svg +2 -2
  173. package/assets/images/icons/fa/dashboard.svg +4 -4
  174. package/assets/images/icons/fa/dashcube.svg +1 -1
  175. package/assets/images/icons/fa/database.svg +3 -3
  176. package/assets/images/icons/fa/deafness.svg +4 -4
  177. package/assets/images/icons/fa/dedent.svg +3 -3
  178. package/assets/images/icons/fa/delicious.svg +2 -2
  179. package/assets/images/icons/fa/desktop.svg +2 -2
  180. package/assets/images/icons/fa/deviantart.svg +1 -1
  181. package/assets/images/icons/fa/diamond.svg +2 -2
  182. package/assets/images/icons/fa/digg.svg +2 -2
  183. package/assets/images/icons/fa/dollar.svg +4 -4
  184. package/assets/images/icons/fa/dot-circle-o.svg +2 -2
  185. package/assets/images/icons/fa/download.svg +2 -2
  186. package/assets/images/icons/fa/dribbble.svg +4 -4
  187. package/assets/images/icons/fa/drivers-license-o.svg +4 -4
  188. package/assets/images/icons/fa/drivers-license.svg +4 -4
  189. package/assets/images/icons/fa/dropbox.svg +1 -1
  190. package/assets/images/icons/fa/drupal.svg +5 -5
  191. package/assets/images/icons/fa/edge.svg +2 -2
  192. package/assets/images/icons/fa/edit.svg +3 -3
  193. package/assets/images/icons/fa/eercast.svg +5 -5
  194. package/assets/images/icons/fa/eject.svg +1 -1
  195. package/assets/images/icons/fa/ellipsis-h.svg +2 -2
  196. package/assets/images/icons/fa/ellipsis-v.svg +2 -2
  197. package/assets/images/icons/fa/envelope-o.svg +3 -3
  198. package/assets/images/icons/fa/envelope-open-o.svg +4 -4
  199. package/assets/images/icons/fa/envelope-open.svg +3 -3
  200. package/assets/images/icons/fa/envelope-square.svg +3 -3
  201. package/assets/images/icons/fa/envelope.svg +2 -2
  202. package/assets/images/icons/fa/envira.svg +3 -3
  203. package/assets/images/icons/fa/eraser.svg +1 -1
  204. package/assets/images/icons/fa/etsy.svg +3 -3
  205. package/assets/images/icons/fa/euro.svg +3 -3
  206. package/assets/images/icons/fa/exchange.svg +2 -2
  207. package/assets/images/icons/fa/exclamation-circle.svg +2 -2
  208. package/assets/images/icons/fa/exclamation.svg +1 -1
  209. package/assets/images/icons/fa/expand.svg +2 -2
  210. package/assets/images/icons/fa/expeditedssl.svg +5 -5
  211. package/assets/images/icons/fa/external-link-square.svg +2 -2
  212. package/assets/images/icons/fa/external-link.svg +2 -2
  213. package/assets/images/icons/fa/eye-slash.svg +4 -4
  214. package/assets/images/icons/fa/eye.svg +2 -2
  215. package/assets/images/icons/fa/eyedropper.svg +2 -2
  216. package/assets/images/icons/fa/fa.svg +2 -2
  217. package/assets/images/icons/fa/facebook-f.svg +1 -1
  218. package/assets/images/icons/fa/facebook-official.svg +1 -1
  219. package/assets/images/icons/fa/facebook-square.svg +2 -2
  220. package/assets/images/icons/fa/fast-backward.svg +2 -2
  221. package/assets/images/icons/fa/fast-forward.svg +2 -2
  222. package/assets/images/icons/fa/fax.svg +5 -5
  223. package/assets/images/icons/fa/feed.svg +3 -3
  224. package/assets/images/icons/fa/female.svg +2 -2
  225. package/assets/images/icons/fa/fighter-jet.svg +2 -2
  226. package/assets/images/icons/fa/file-code-o.svg +3 -3
  227. package/assets/images/icons/fa/file-excel-o.svg +3 -3
  228. package/assets/images/icons/fa/file-movie-o.svg +2 -2
  229. package/assets/images/icons/fa/file-o.svg +2 -2
  230. package/assets/images/icons/fa/file-pdf-o.svg +4 -4
  231. package/assets/images/icons/fa/file-photo-o.svg +2 -2
  232. package/assets/images/icons/fa/file-powerpoint-o.svg +2 -2
  233. package/assets/images/icons/fa/file-sound-o.svg +3 -3
  234. package/assets/images/icons/fa/file-text-o.svg +3 -3
  235. package/assets/images/icons/fa/file-text.svg +2 -2
  236. package/assets/images/icons/fa/file-word-o.svg +3 -3
  237. package/assets/images/icons/fa/file-zip-o.svg +3 -3
  238. package/assets/images/icons/fa/file.svg +1 -1
  239. package/assets/images/icons/fa/film.svg +5 -5
  240. package/assets/images/icons/fa/filter.svg +1 -1
  241. package/assets/images/icons/fa/fire-extinguisher.svg +3 -3
  242. package/assets/images/icons/fa/fire.svg +2 -2
  243. package/assets/images/icons/fa/firefox.svg +3 -3
  244. package/assets/images/icons/fa/first-order.svg +4 -4
  245. package/assets/images/icons/fa/flag-checkered.svg +4 -4
  246. package/assets/images/icons/fa/flag-o.svg +3 -3
  247. package/assets/images/icons/fa/flag.svg +2 -2
  248. package/assets/images/icons/fa/flash.svg +1 -1
  249. package/assets/images/icons/fa/flask.svg +1 -1
  250. package/assets/images/icons/fa/flickr.svg +2 -2
  251. package/assets/images/icons/fa/folder-o.svg +2 -2
  252. package/assets/images/icons/fa/folder-open-o.svg +3 -3
  253. package/assets/images/icons/fa/folder-open.svg +2 -2
  254. package/assets/images/icons/fa/folder.svg +1 -1
  255. package/assets/images/icons/fa/font.svg +3 -3
  256. package/assets/images/icons/fa/fonticons.svg +3 -3
  257. package/assets/images/icons/fa/fort-awesome.svg +4 -4
  258. package/assets/images/icons/fa/forumbee.svg +2 -2
  259. package/assets/images/icons/fa/forward.svg +1 -1
  260. package/assets/images/icons/fa/foursquare.svg +3 -3
  261. package/assets/images/icons/fa/free-code-camp.svg +7 -7
  262. package/assets/images/icons/fa/frown-o.svg +3 -3
  263. package/assets/images/icons/fa/gamepad.svg +3 -3
  264. package/assets/images/icons/fa/gbp.svg +2 -2
  265. package/assets/images/icons/fa/ge.svg +6 -6
  266. package/assets/images/icons/fa/gear.svg +4 -4
  267. package/assets/images/icons/fa/gears.svg +8 -8
  268. package/assets/images/icons/fa/genderless.svg +2 -2
  269. package/assets/images/icons/fa/get-pocket.svg +2 -2
  270. package/assets/images/icons/fa/gg-circle.svg +2 -2
  271. package/assets/images/icons/fa/gg.svg +1 -1
  272. package/assets/images/icons/fa/gift.svg +3 -3
  273. package/assets/images/icons/fa/git-square.svg +4 -4
  274. package/assets/images/icons/fa/git.svg +4 -4
  275. package/assets/images/icons/fa/github-alt.svg +4 -4
  276. package/assets/images/icons/fa/github-square.svg +5 -5
  277. package/assets/images/icons/fa/github.svg +5 -5
  278. package/assets/images/icons/fa/gitlab.svg +1 -1
  279. package/assets/images/icons/fa/gittip.svg +2 -2
  280. package/assets/images/icons/fa/glass.svg +1 -1
  281. package/assets/images/icons/fa/glide-g.svg +4 -4
  282. package/assets/images/icons/fa/glide.svg +4 -4
  283. package/assets/images/icons/fa/globe.svg +15 -15
  284. package/assets/images/icons/fa/google-plus-circle.svg +2 -2
  285. package/assets/images/icons/fa/google-plus-square.svg +2 -2
  286. package/assets/images/icons/fa/google-plus.svg +2 -2
  287. package/assets/images/icons/fa/google-wallet.svg +2 -2
  288. package/assets/images/icons/fa/google.svg +2 -2
  289. package/assets/images/icons/fa/grav.svg +7 -7
  290. package/assets/images/icons/fa/group.svg +4 -4
  291. package/assets/images/icons/fa/h-square.svg +2 -2
  292. package/assets/images/icons/fa/hand-grab-o.svg +4 -4
  293. package/assets/images/icons/fa/hand-lizard-o.svg +3 -3
  294. package/assets/images/icons/fa/hand-o-down.svg +4 -4
  295. package/assets/images/icons/fa/hand-o-left.svg +4 -4
  296. package/assets/images/icons/fa/hand-o-right.svg +4 -4
  297. package/assets/images/icons/fa/hand-o-up.svg +4 -4
  298. package/assets/images/icons/fa/hand-peace-o.svg +5 -5
  299. package/assets/images/icons/fa/hand-pointer-o.svg +4 -4
  300. package/assets/images/icons/fa/hand-scissors-o.svg +5 -5
  301. package/assets/images/icons/fa/hand-spock-o.svg +4 -4
  302. package/assets/images/icons/fa/hand-stop-o.svg +3 -3
  303. package/assets/images/icons/fa/handshake-o.svg +5 -5
  304. package/assets/images/icons/fa/hashtag.svg +3 -3
  305. package/assets/images/icons/fa/hdd-o.svg +3 -3
  306. package/assets/images/icons/fa/header.svg +5 -5
  307. package/assets/images/icons/fa/headphones.svg +3 -3
  308. package/assets/images/icons/fa/heart-o.svg +3 -3
  309. package/assets/images/icons/fa/heart.svg +2 -2
  310. package/assets/images/icons/fa/heartbeat.svg +3 -3
  311. package/assets/images/icons/fa/history.svg +3 -3
  312. package/assets/images/icons/fa/home.svg +2 -2
  313. package/assets/images/icons/fa/hospital-o.svg +8 -8
  314. package/assets/images/icons/fa/hotel.svg +2 -2
  315. package/assets/images/icons/fa/hourglass-1.svg +2 -2
  316. package/assets/images/icons/fa/hourglass-2.svg +2 -2
  317. package/assets/images/icons/fa/hourglass-3.svg +3 -3
  318. package/assets/images/icons/fa/hourglass-o.svg +3 -3
  319. package/assets/images/icons/fa/hourglass.svg +3 -3
  320. package/assets/images/icons/fa/houzz.svg +1 -1
  321. package/assets/images/icons/fa/html5.svg +1 -1
  322. package/assets/images/icons/fa/i-cursor.svg +1 -1
  323. package/assets/images/icons/fa/id-badge.svg +3 -3
  324. package/assets/images/icons/fa/imdb.svg +4 -4
  325. package/assets/images/icons/fa/inbox.svg +2 -2
  326. package/assets/images/icons/fa/indent.svg +3 -3
  327. package/assets/images/icons/fa/industry.svg +1 -1
  328. package/assets/images/icons/fa/info-circle.svg +2 -2
  329. package/assets/images/icons/fa/info.svg +2 -2
  330. package/assets/images/icons/fa/instagram.svg +4 -4
  331. package/assets/images/icons/fa/institution.svg +2 -2
  332. package/assets/images/icons/fa/internet-explorer.svg +3 -3
  333. package/assets/images/icons/fa/intersex.svg +3 -3
  334. package/assets/images/icons/fa/ioxhost.svg +3 -3
  335. package/assets/images/icons/fa/italic.svg +2 -2
  336. package/assets/images/icons/fa/joomla.svg +5 -5
  337. package/assets/images/icons/fa/jsfiddle.svg +3 -3
  338. package/assets/images/icons/fa/key.svg +3 -3
  339. package/assets/images/icons/fa/keyboard-o.svg +5 -5
  340. package/assets/images/icons/fa/language.svg +6 -6
  341. package/assets/images/icons/fa/laptop.svg +2 -2
  342. package/assets/images/icons/fa/lastfm-square.svg +4 -4
  343. package/assets/images/icons/fa/lastfm.svg +4 -4
  344. package/assets/images/icons/fa/leaf.svg +3 -3
  345. package/assets/images/icons/fa/leanpub.svg +3 -3
  346. package/assets/images/icons/fa/legal.svg +4 -4
  347. package/assets/images/icons/fa/lemon-o.svg +4 -4
  348. package/assets/images/icons/fa/level-down.svg +1 -1
  349. package/assets/images/icons/fa/level-up.svg +1 -1
  350. package/assets/images/icons/fa/life-bouy.svg +3 -3
  351. package/assets/images/icons/fa/lightbulb-o.svg +4 -4
  352. package/assets/images/icons/fa/line-chart.svg +2 -2
  353. package/assets/images/icons/fa/linkedin-square.svg +2 -2
  354. package/assets/images/icons/fa/linkedin.svg +2 -2
  355. package/assets/images/icons/fa/linode.svg +4 -4
  356. package/assets/images/icons/fa/linux.svg +16 -16
  357. package/assets/images/icons/fa/list-alt.svg +5 -5
  358. package/assets/images/icons/fa/list-ol.svg +4 -4
  359. package/assets/images/icons/fa/list-ul.svg +3 -3
  360. package/assets/images/icons/fa/list.svg +5 -5
  361. package/assets/images/icons/fa/location-arrow.svg +1 -1
  362. package/assets/images/icons/fa/lock.svg +1 -1
  363. package/assets/images/icons/fa/long-arrow-down.svg +1 -1
  364. package/assets/images/icons/fa/long-arrow-left.svg +1 -1
  365. package/assets/images/icons/fa/long-arrow-right.svg +1 -1
  366. package/assets/images/icons/fa/long-arrow-up.svg +1 -1
  367. package/assets/images/icons/fa/low-vision.svg +4 -4
  368. package/assets/images/icons/fa/magic.svg +2 -2
  369. package/assets/images/icons/fa/magnet.svg +2 -2
  370. package/assets/images/icons/fa/mail-forward.svg +2 -2
  371. package/assets/images/icons/fa/mail-reply-all.svg +2 -2
  372. package/assets/images/icons/fa/mail-reply.svg +2 -2
  373. package/assets/images/icons/fa/male.svg +2 -2
  374. package/assets/images/icons/fa/map-marker.svg +1 -1
  375. package/assets/images/icons/fa/map-o.svg +2 -2
  376. package/assets/images/icons/fa/map-pin.svg +2 -2
  377. package/assets/images/icons/fa/map-signs.svg +2 -2
  378. package/assets/images/icons/fa/map.svg +2 -2
  379. package/assets/images/icons/fa/mars-double.svg +4 -4
  380. package/assets/images/icons/fa/mars-stroke-h.svg +3 -3
  381. package/assets/images/icons/fa/mars-stroke-v.svg +3 -3
  382. package/assets/images/icons/fa/mars-stroke.svg +3 -3
  383. package/assets/images/icons/fa/mars.svg +2 -2
  384. package/assets/images/icons/fa/maxcdn.svg +1 -1
  385. package/assets/images/icons/fa/meanpath.svg +3 -3
  386. package/assets/images/icons/fa/medium.svg +2 -2
  387. package/assets/images/icons/fa/medkit.svg +2 -2
  388. package/assets/images/icons/fa/meetup.svg +9 -9
  389. package/assets/images/icons/fa/meh-o.svg +3 -3
  390. package/assets/images/icons/fa/mercury.svg +3 -3
  391. package/assets/images/icons/fa/microchip.svg +5 -5
  392. package/assets/images/icons/fa/microphone-slash.svg +3 -3
  393. package/assets/images/icons/fa/microphone.svg +2 -2
  394. package/assets/images/icons/fa/minus-circle.svg +2 -2
  395. package/assets/images/icons/fa/minus-square-o.svg +2 -2
  396. package/assets/images/icons/fa/minus-square.svg +2 -2
  397. package/assets/images/icons/fa/minus.svg +1 -1
  398. package/assets/images/icons/fa/mixcloud.svg +4 -4
  399. package/assets/images/icons/fa/mobile-phone.svg +2 -2
  400. package/assets/images/icons/fa/modx.svg +1 -1
  401. package/assets/images/icons/fa/money.svg +2 -2
  402. package/assets/images/icons/fa/moon-o.svg +2 -2
  403. package/assets/images/icons/fa/mortar-board.svg +2 -2
  404. package/assets/images/icons/fa/motorcycle.svg +4 -4
  405. package/assets/images/icons/fa/mouse-pointer.svg +1 -1
  406. package/assets/images/icons/fa/music.svg +2 -2
  407. package/assets/images/icons/fa/navicon.svg +2 -2
  408. package/assets/images/icons/fa/neuter.svg +2 -2
  409. package/assets/images/icons/fa/newspaper-o.svg +2 -2
  410. package/assets/images/icons/fa/object-group.svg +2 -2
  411. package/assets/images/icons/fa/object-ungroup.svg +2 -2
  412. package/assets/images/icons/fa/odnoklassniki-square.svg +3 -3
  413. package/assets/images/icons/fa/odnoklassniki.svg +3 -3
  414. package/assets/images/icons/fa/opencart.svg +3 -3
  415. package/assets/images/icons/fa/openid.svg +1 -1
  416. package/assets/images/icons/fa/opera.svg +3 -3
  417. package/assets/images/icons/fa/optin-monster.svg +17 -17
  418. package/assets/images/icons/fa/pagelines.svg +4 -4
  419. package/assets/images/icons/fa/paint-brush.svg +2 -2
  420. package/assets/images/icons/fa/paperclip.svg +3 -3
  421. package/assets/images/icons/fa/paragraph.svg +2 -2
  422. package/assets/images/icons/fa/paste.svg +2 -2
  423. package/assets/images/icons/fa/pause-circle-o.svg +2 -2
  424. package/assets/images/icons/fa/pause-circle.svg +2 -2
  425. package/assets/images/icons/fa/pause.svg +1 -1
  426. package/assets/images/icons/fa/paw.svg +4 -4
  427. package/assets/images/icons/fa/paypal.svg +3 -3
  428. package/assets/images/icons/fa/pencil-square.svg +2 -2
  429. package/assets/images/icons/fa/pencil.svg +2 -2
  430. package/assets/images/icons/fa/percent.svg +3 -3
  431. package/assets/images/icons/fa/phone-square.svg +4 -4
  432. package/assets/images/icons/fa/phone.svg +3 -3
  433. package/assets/images/icons/fa/photo.svg +2 -2
  434. package/assets/images/icons/fa/pie-chart.svg +1 -1
  435. package/assets/images/icons/fa/pied-piper-alt.svg +8 -8
  436. package/assets/images/icons/fa/pied-piper-pp.svg +3 -3
  437. package/assets/images/icons/fa/pied-piper.svg +3 -3
  438. package/assets/images/icons/fa/pinterest-p.svg +3 -3
  439. package/assets/images/icons/fa/pinterest-square.svg +3 -3
  440. package/assets/images/icons/fa/pinterest.svg +3 -3
  441. package/assets/images/icons/fa/plane.svg +2 -2
  442. package/assets/images/icons/fa/play-circle-o.svg +2 -2
  443. package/assets/images/icons/fa/play-circle.svg +2 -2
  444. package/assets/images/icons/fa/play.svg +1 -1
  445. package/assets/images/icons/fa/plug.svg +2 -2
  446. package/assets/images/icons/fa/plus-circle.svg +2 -2
  447. package/assets/images/icons/fa/plus-square-o.svg +2 -2
  448. package/assets/images/icons/fa/plus-square.svg +2 -2
  449. package/assets/images/icons/fa/plus.svg +1 -1
  450. package/assets/images/icons/fa/podcast.svg +5 -5
  451. package/assets/images/icons/fa/power-off.svg +2 -2
  452. package/assets/images/icons/fa/print.svg +2 -2
  453. package/assets/images/icons/fa/product-hunt.svg +2 -2
  454. package/assets/images/icons/fa/puzzle-piece.svg +4 -4
  455. package/assets/images/icons/fa/qq.svg +4 -4
  456. package/assets/images/icons/fa/qrcode.svg +2 -2
  457. package/assets/images/icons/fa/question-circle-o.svg +4 -4
  458. package/assets/images/icons/fa/question-circle.svg +3 -3
  459. package/assets/images/icons/fa/question.svg +2 -2
  460. package/assets/images/icons/fa/quora.svg +3 -3
  461. package/assets/images/icons/fa/quote-left.svg +2 -2
  462. package/assets/images/icons/fa/quote-right.svg +2 -2
  463. package/assets/images/icons/fa/ra.svg +4 -4
  464. package/assets/images/icons/fa/random.svg +4 -4
  465. package/assets/images/icons/fa/ravelry.svg +6 -6
  466. package/assets/images/icons/fa/recycle.svg +4 -4
  467. package/assets/images/icons/fa/reddit-alien.svg +4 -4
  468. package/assets/images/icons/fa/reddit-square.svg +4 -4
  469. package/assets/images/icons/fa/reddit.svg +4 -4
  470. package/assets/images/icons/fa/refresh.svg +3 -3
  471. package/assets/images/icons/fa/registered.svg +3 -3
  472. package/assets/images/icons/fa/remove.svg +2 -2
  473. package/assets/images/icons/fa/renren.svg +2 -2
  474. package/assets/images/icons/fa/retweet.svg +3 -3
  475. package/assets/images/icons/fa/road.svg +2 -2
  476. package/assets/images/icons/fa/rocket.svg +2 -2
  477. package/assets/images/icons/fa/rotate-left.svg +2 -2
  478. package/assets/images/icons/fa/rotate-right.svg +2 -2
  479. package/assets/images/icons/fa/rss-square.svg +3 -3
  480. package/assets/images/icons/fa/ruble.svg +2 -2
  481. package/assets/images/icons/fa/rupee.svg +2 -2
  482. package/assets/images/icons/fa/safari.svg +6 -6
  483. package/assets/images/icons/fa/save.svg +2 -2
  484. package/assets/images/icons/fa/scribd.svg +4 -4
  485. package/assets/images/icons/fa/search-minus.svg +3 -3
  486. package/assets/images/icons/fa/search-plus.svg +3 -3
  487. package/assets/images/icons/fa/search.svg +2 -2
  488. package/assets/images/icons/fa/sellsy.svg +3 -3
  489. package/assets/images/icons/fa/send-o.svg +2 -2
  490. package/assets/images/icons/fa/send.svg +1 -1
  491. package/assets/images/icons/fa/server.svg +2 -2
  492. package/assets/images/icons/fa/share-alt-square.svg +2 -2
  493. package/assets/images/icons/fa/share-alt.svg +2 -2
  494. package/assets/images/icons/fa/share-square-o.svg +3 -3
  495. package/assets/images/icons/fa/share-square.svg +2 -2
  496. package/assets/images/icons/fa/shekel.svg +2 -2
  497. package/assets/images/icons/fa/shield.svg +2 -2
  498. package/assets/images/icons/fa/ship.svg +5 -5
  499. package/assets/images/icons/fa/shirtsinbulk.svg +7 -7
  500. package/assets/images/icons/fa/shopping-bag.svg +2 -2
  501. package/assets/images/icons/fa/shopping-basket.svg +4 -4
  502. package/assets/images/icons/fa/shopping-cart.svg +2 -2
  503. package/assets/images/icons/fa/shower.svg +6 -6
  504. package/assets/images/icons/fa/sign-in.svg +2 -2
  505. package/assets/images/icons/fa/sign-out.svg +2 -2
  506. package/assets/images/icons/fa/signal.svg +2 -2
  507. package/assets/images/icons/fa/signing.svg +5 -5
  508. package/assets/images/icons/fa/simplybuilt.svg +2 -2
  509. package/assets/images/icons/fa/sitemap.svg +3 -3
  510. package/assets/images/icons/fa/skyatlas.svg +4 -4
  511. package/assets/images/icons/fa/skype.svg +4 -4
  512. package/assets/images/icons/fa/slack.svg +3 -3
  513. package/assets/images/icons/fa/sliders.svg +2 -2
  514. package/assets/images/icons/fa/slideshare.svg +4 -4
  515. package/assets/images/icons/fa/smile-o.svg +3 -3
  516. package/assets/images/icons/fa/snapchat-ghost.svg +3 -3
  517. package/assets/images/icons/fa/snapchat-square.svg +4 -4
  518. package/assets/images/icons/fa/snapchat.svg +4 -4
  519. package/assets/images/icons/fa/snowflake-o.svg +5 -5
  520. package/assets/images/icons/fa/soccer-ball-o.svg +2 -2
  521. package/assets/images/icons/fa/sort-alpha-asc.svg +3 -3
  522. package/assets/images/icons/fa/sort-alpha-desc.svg +3 -3
  523. package/assets/images/icons/fa/sort-amount-asc.svg +3 -3
  524. package/assets/images/icons/fa/sort-amount-desc.svg +3 -3
  525. package/assets/images/icons/fa/sort-down.svg +1 -1
  526. package/assets/images/icons/fa/sort-numeric-asc.svg +3 -3
  527. package/assets/images/icons/fa/sort-numeric-desc.svg +3 -3
  528. package/assets/images/icons/fa/sort-up.svg +1 -1
  529. package/assets/images/icons/fa/soundcloud.svg +7 -7
  530. package/assets/images/icons/fa/space-shuttle.svg +3 -3
  531. package/assets/images/icons/fa/spinner.svg +4 -4
  532. package/assets/images/icons/fa/spoon.svg +1 -1
  533. package/assets/images/icons/fa/spotify.svg +3 -3
  534. package/assets/images/icons/fa/square-o.svg +2 -2
  535. package/assets/images/icons/fa/square.svg +1 -1
  536. package/assets/images/icons/fa/stack-exchange.svg +2 -2
  537. package/assets/images/icons/fa/stack-overflow.svg +1 -1
  538. package/assets/images/icons/fa/star-half-empty.svg +2 -2
  539. package/assets/images/icons/fa/star-half.svg +1 -1
  540. package/assets/images/icons/fa/star-o.svg +2 -2
  541. package/assets/images/icons/fa/star.svg +2 -2
  542. package/assets/images/icons/fa/steam-square.svg +4 -4
  543. package/assets/images/icons/fa/steam.svg +3 -3
  544. package/assets/images/icons/fa/step-backward.svg +1 -1
  545. package/assets/images/icons/fa/step-forward.svg +1 -1
  546. package/assets/images/icons/fa/stethoscope.svg +3 -3
  547. package/assets/images/icons/fa/sticky-note-o.svg +2 -2
  548. package/assets/images/icons/fa/sticky-note.svg +1 -1
  549. package/assets/images/icons/fa/stop-circle-o.svg +2 -2
  550. package/assets/images/icons/fa/stop-circle.svg +2 -2
  551. package/assets/images/icons/fa/stop.svg +1 -1
  552. package/assets/images/icons/fa/street-view.svg +4 -4
  553. package/assets/images/icons/fa/strikethrough.svg +3 -3
  554. package/assets/images/icons/fa/stumbleupon-circle.svg +3 -3
  555. package/assets/images/icons/fa/stumbleupon.svg +2 -2
  556. package/assets/images/icons/fa/subscript.svg +3 -3
  557. package/assets/images/icons/fa/subway.svg +2 -2
  558. package/assets/images/icons/fa/suitcase.svg +2 -2
  559. package/assets/images/icons/fa/sun-o.svg +3 -3
  560. package/assets/images/icons/fa/superpowers.svg +2 -2
  561. package/assets/images/icons/fa/superscript.svg +3 -3
  562. package/assets/images/icons/fa/table.svg +5 -5
  563. package/assets/images/icons/fa/tablet.svg +2 -2
  564. package/assets/images/icons/fa/tag.svg +2 -2
  565. package/assets/images/icons/fa/tags.svg +2 -2
  566. package/assets/images/icons/fa/tasks.svg +2 -2
  567. package/assets/images/icons/fa/telegram.svg +2 -2
  568. package/assets/images/icons/fa/tencent-weibo.svg +3 -3
  569. package/assets/images/icons/fa/terminal.svg +2 -2
  570. package/assets/images/icons/fa/text-height.svg +4 -4
  571. package/assets/images/icons/fa/text-width.svg +5 -5
  572. package/assets/images/icons/fa/th-large.svg +2 -2
  573. package/assets/images/icons/fa/th-list.svg +3 -3
  574. package/assets/images/icons/fa/th.svg +4 -4
  575. package/assets/images/icons/fa/themeisle.svg +8 -8
  576. package/assets/images/icons/fa/thermometer-0.svg +2 -2
  577. package/assets/images/icons/fa/thermometer-1.svg +3 -3
  578. package/assets/images/icons/fa/thermometer-2.svg +3 -3
  579. package/assets/images/icons/fa/thermometer-3.svg +3 -3
  580. package/assets/images/icons/fa/thermometer-4.svg +3 -3
  581. package/assets/images/icons/fa/thumb-tack.svg +2 -2
  582. package/assets/images/icons/fa/thumbs-down.svg +3 -3
  583. package/assets/images/icons/fa/thumbs-o-down.svg +4 -4
  584. package/assets/images/icons/fa/thumbs-o-up.svg +4 -4
  585. package/assets/images/icons/fa/thumbs-up.svg +3 -3
  586. package/assets/images/icons/fa/ticket.svg +2 -2
  587. package/assets/images/icons/fa/times-circle-o.svg +3 -3
  588. package/assets/images/icons/fa/times-circle.svg +2 -2
  589. package/assets/images/icons/fa/times-rectangle-o.svg +2 -2
  590. package/assets/images/icons/fa/times-rectangle.svg +2 -2
  591. package/assets/images/icons/fa/tint.svg +2 -2
  592. package/assets/images/icons/fa/toggle-down.svg +2 -2
  593. package/assets/images/icons/fa/toggle-left.svg +2 -2
  594. package/assets/images/icons/fa/toggle-off.svg +3 -3
  595. package/assets/images/icons/fa/toggle-on.svg +2 -2
  596. package/assets/images/icons/fa/toggle-right.svg +2 -2
  597. package/assets/images/icons/fa/toggle-up.svg +2 -2
  598. package/assets/images/icons/fa/trademark.svg +3 -3
  599. package/assets/images/icons/fa/train.svg +2 -2
  600. package/assets/images/icons/fa/transgender-alt.svg +4 -4
  601. package/assets/images/icons/fa/trash-o.svg +3 -3
  602. package/assets/images/icons/fa/trash.svg +3 -3
  603. package/assets/images/icons/fa/tree.svg +2 -2
  604. package/assets/images/icons/fa/trello.svg +2 -2
  605. package/assets/images/icons/fa/tripadvisor.svg +6 -6
  606. package/assets/images/icons/fa/trophy.svg +3 -3
  607. package/assets/images/icons/fa/truck.svg +3 -3
  608. package/assets/images/icons/fa/tty.svg +5 -5
  609. package/assets/images/icons/fa/tumblr-square.svg +2 -2
  610. package/assets/images/icons/fa/tumblr.svg +2 -2
  611. package/assets/images/icons/fa/turkish-lira.svg +2 -2
  612. package/assets/images/icons/fa/tv.svg +2 -2
  613. package/assets/images/icons/fa/twitch.svg +1 -1
  614. package/assets/images/icons/fa/twitter-square.svg +3 -3
  615. package/assets/images/icons/fa/twitter.svg +2 -2
  616. package/assets/images/icons/fa/umbrella.svg +3 -3
  617. package/assets/images/icons/fa/underline.svg +4 -4
  618. package/assets/images/icons/fa/universal-access.svg +4 -4
  619. package/assets/images/icons/fa/unlink.svg +4 -4
  620. package/assets/images/icons/fa/unlock-alt.svg +2 -2
  621. package/assets/images/icons/fa/unlock.svg +2 -2
  622. package/assets/images/icons/fa/unsorted.svg +1 -1
  623. package/assets/images/icons/fa/upload.svg +2 -2
  624. package/assets/images/icons/fa/usb.svg +3 -3
  625. package/assets/images/icons/fa/user-circle-o.svg +2 -2
  626. package/assets/images/icons/fa/user-circle.svg +2 -2
  627. package/assets/images/icons/fa/user-md.svg +4 -4
  628. package/assets/images/icons/fa/user-o.svg +3 -3
  629. package/assets/images/icons/fa/user-plus.svg +3 -3
  630. package/assets/images/icons/fa/user-secret.svg +4 -4
  631. package/assets/images/icons/fa/user-times.svg +3 -3
  632. package/assets/images/icons/fa/user.svg +2 -2
  633. package/assets/images/icons/fa/vcard-o.svg +5 -5
  634. package/assets/images/icons/fa/vcard.svg +4 -4
  635. package/assets/images/icons/fa/venus-double.svg +4 -4
  636. package/assets/images/icons/fa/venus-mars.svg +4 -4
  637. package/assets/images/icons/fa/venus.svg +2 -2
  638. package/assets/images/icons/fa/viacoin.svg +1 -1
  639. package/assets/images/icons/fa/viadeo-square.svg +4 -4
  640. package/assets/images/icons/fa/viadeo.svg +3 -3
  641. package/assets/images/icons/fa/video-camera.svg +2 -2
  642. package/assets/images/icons/fa/vimeo-square.svg +2 -2
  643. package/assets/images/icons/fa/vimeo.svg +2 -2
  644. package/assets/images/icons/fa/vine.svg +2 -2
  645. package/assets/images/icons/fa/vk.svg +5 -5
  646. package/assets/images/icons/fa/volume-control-phone.svg +5 -5
  647. package/assets/images/icons/fa/volume-down.svg +2 -2
  648. package/assets/images/icons/fa/volume-off.svg +1 -1
  649. package/assets/images/icons/fa/volume-up.svg +4 -4
  650. package/assets/images/icons/fa/warning.svg +2 -2
  651. package/assets/images/icons/fa/wechat.svg +4 -4
  652. package/assets/images/icons/fa/weibo.svg +5 -5
  653. package/assets/images/icons/fa/whatsapp.svg +3 -3
  654. package/assets/images/icons/fa/wheelchair-alt.svg +3 -3
  655. package/assets/images/icons/fa/wheelchair.svg +2 -2
  656. package/assets/images/icons/fa/wifi.svg +3 -3
  657. package/assets/images/icons/fa/wikipedia-w.svg +3 -3
  658. package/assets/images/icons/fa/window-maximize.svg +1 -1
  659. package/assets/images/icons/fa/window-minimize.svg +1 -1
  660. package/assets/images/icons/fa/window-restore.svg +2 -2
  661. package/assets/images/icons/fa/windows.svg +1 -1
  662. package/assets/images/icons/fa/won.svg +3 -3
  663. package/assets/images/icons/fa/wordpress.svg +5 -5
  664. package/assets/images/icons/fa/wpbeginner.svg +2 -2
  665. package/assets/images/icons/fa/wpexplorer.svg +3 -3
  666. package/assets/images/icons/fa/wpforms.svg +2 -2
  667. package/assets/images/icons/fa/wrench.svg +2 -2
  668. package/assets/images/icons/fa/xing-square.svg +2 -2
  669. package/assets/images/icons/fa/xing.svg +2 -2
  670. package/assets/images/icons/fa/y-combinator-square.svg +1 -1
  671. package/assets/images/icons/fa/yahoo.svg +2 -2
  672. package/assets/images/icons/fa/yc.svg +1 -1
  673. package/assets/images/icons/fa/yelp.svg +4 -4
  674. package/assets/images/icons/fa/yoast.svg +2 -2
  675. package/assets/images/icons/fa/youtube-play.svg +3 -3
  676. package/assets/images/icons/fa/youtube-square.svg +6 -6
  677. package/assets/images/icons/fa/youtube.svg +5 -5
  678. package/assets/site.scss +375 -375
  679. package/assets/theme-variables.scss +98 -98
  680. package/assets/variables.scss +93 -93
  681. package/fesm2022/dflat-core-web-core-ux.mjs +24 -15
  682. package/fesm2022/dflat-core-web-core-ux.mjs.map +1 -1
  683. package/fesm2022/dflat-core-web-system-data.mjs.map +1 -1
  684. package/fesm2022/dflat-core-web-system-ux.mjs +8 -6
  685. package/fesm2022/dflat-core-web-system-ux.mjs.map +1 -1
  686. package/package.json +1 -1
  687. package/types/dflat-core-web-core-ux.d.ts +13 -0
  688. package/types/dflat-core-web-system-ux.d.ts +2 -2
@@ -628,8 +628,8 @@ var PresentationProfileComponent = class PresentationProfileComponent {
628
628
  },
629
629
  providers: [PresentationProfileService],
630
630
  ngImport: i0,
631
- template: "<!-- ── Header ─────────────────────────────────────────────────────────────── -->\n<div class=\"csl-header\">\n <div class=\"csl-header__left\">\n <h4 class=\"csl-title\">{{ svc.config?.title || 'Sélection des colonnes' }}</h4>\n </div>\n @if (!svc.isEmbedded) {\n <button class=\"csl-icon-btn\" type=\"button\" (click)=\"svc.cancel()\" aria-label=\"Fermer\">&#x2715;</button>\n }\n</div>\n\n<!-- ── Body : vues à gauche, colonnes disponibles au milieu, colonnes de la vue à droite ── -->\n<div class=\"csl-body\">\n <div class=\"csl-panels\">\n\n <!-- ── GAUCHE : vues personnalisées ─────────────────────────────────── -->\n <div class=\"csl-panel csl-panel--groups\">\n <div class=\"csl-panel__header\">\n <span class=\"csl-panel__label\">Vues personnalisées</span>\n <span class=\"csl-badge\">{{ svc.views.length }}</span>\n </div>\n <ul class=\"csl-group-list csl-scroll\">\n @for (view of svc.views; track view.id) {\n <li class=\"csl-group-item csl-view-item\"\n [class.csl-group-item--active]=\"svc.selectedView?.id === view.id\"\n [class.csl-group-item--standard]=\"view.isDefault\"\n [class.csl-group-item--profile]=\"!view.isDefault\"\n (click)=\"svc.selectView(view)\">\n @if (svc.renamingId === view.id) {\n <input class=\"gps-rename-input\" type=\"text\" maxlength=\"100\"\n [(ngModel)]=\"svc.renameLabel\"\n (click)=\"$event.stopPropagation()\"\n (keydown.enter)=\"svc.confirmRename(view)\"\n (keydown.escape)=\"svc.cancelRename()\">\n <div class=\"gps-rename-actions\" (click)=\"$event.stopPropagation()\">\n <button class=\"gps-rename-btn gps-rename-btn--ok\" type=\"button\" title=\"Renommer\" (click)=\"svc.confirmRename(view)\">\n <i class=\"fa fa-check\"></i>\n </button>\n <button class=\"gps-rename-btn gps-rename-btn--cancel\" type=\"button\" title=\"Annuler\" (click)=\"svc.cancelRename()\">\n <i class=\"fa fa-times\"></i>\n </button>\n </div>\n } @else {\n <span class=\"csl-group-item__name\" [title]=\"view.label\">\n @if (view.isDefault) { <i class=\"fa fa-lock csl-view-icon\" title=\"Vue par défaut\"></i> }\n {{ view.label }}\n </span>\n <div class=\"csl-group-item__meta\">\n @if (view.isCurrent) {\n <span class=\"csl-badge csl-badge--primary csl-badge--sm\" title=\"Vue affichée par la grille\">\n <i class=\"fa fa-eye\"></i>\n </span>\n }\n <div class=\"gps-profile-actions\" (click)=\"$event.stopPropagation()\">\n @if (svc.canEdit(view)) {\n <button class=\"gps-profile-btn\" type=\"button\" title=\"Renommer\" (click)=\"svc.startRename(view)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n }\n <button class=\"gps-profile-btn\" type=\"button\" title=\"Dupliquer\" (click)=\"svc.duplicateView(view)\">\n <i class=\"fa fa-files-o\"></i>\n </button>\n @if (!view.isDefault) {\n <button class=\"gps-profile-btn gps-profile-btn--danger\" type=\"button\" title=\"Supprimer\" (click)=\"svc.deleteView(view)\">\n <i class=\"fa fa-trash-o\"></i>\n </button>\n }\n </div>\n </div>\n }\n </li>\n }\n @empty {\n <li class=\"csl-group-section-label\">Aucune vue enregistrée</li>\n }\n </ul>\n @if (svc.isReadOnly) {\n <div class=\"csl-view-note\">\n <i class=\"fa fa-info-circle\"></i>\n Vue par défaut en lecture seule : « Appliquer » crée une nouvelle vue personnelle.\n </div>\n }\n </div>\n\n <div class=\"csl-tabbed\">\n <!-- Onglets de la vue choisie : colonnes, ou filtres et tri. -->\n <div class=\"csl-tabs\">\n <button type=\"button\" class=\"csl-tab\" [class.csl-tab--active]=\"svc.tab === 'columns'\" (click)=\"svc.tab = 'columns'\">Colonnes</button>\n <button type=\"button\" class=\"csl-tab\" [class.csl-tab--active]=\"svc.tab === 'filters'\" (click)=\"svc.tab = 'filters'\">\n Filtres et tri\n @if (svc.viewFilter.Conditions.length || svc.viewFilter.Groups?.length || svc.viewSort.length) { <span class=\"csl-tab-dot\"></span> }\n </button>\n </div>\n @if (svc.tab === 'filters') {\n <div class=\"csl-panel csl-panel--filters\">\n <alg-filter-editor [embedded]=\"true\" [columns]=\"svc.filterColumns\" [filter]=\"svc.viewFilter\" [sort]=\"svc.viewSort\"></alg-filter-editor>\n </div>\n } @else {\n <div class=\"csl-panels csl-panels--inner\">\n <!-- ── MILIEU : toutes les colonnes disponibles, attributs compris ────── -->\n <div class=\"csl-panel csl-panel--browse\">\n <div class=\"csl-panel__header\">\n <span class=\"csl-panel__label\">Colonnes disponibles</span>\n <input class=\"csl-search\" type=\"text\" placeholder=\"Rechercher…\"\n [(ngModel)]=\"svc.searchText\" (ngModelChange)=\"svc.onSearch()\">\n </div>\n\n <div class=\"csl-table-wrap csl-scroll\">\n <table class=\"csl-table\">\n <thead>\n <tr>\n <th class=\"csl-col-check\">\n <input type=\"checkbox\"\n [checked]=\"svc.allVisibleSelected\"\n [indeterminate]=\"svc.someVisibleSelected\"\n (change)=\"svc.toggleAll()\"\n title=\"Tout sélectionner / désélectionner\">\n </th>\n <th class=\"csl-col-key\">Clé</th>\n <th class=\"csl-col-name\">Colonne</th>\n </tr>\n </thead>\n <tbody>\n @for (col of svc.filteredColumns; track col.ColumnKey) {\n <tr class=\"csl-row\"\n [class.csl-row--selected]=\"svc.isSelected(col)\"\n [class.csl-row--custom-field]=\"svc.isAttribute(col)\"\n (click)=\"svc.toggleItem(col)\">\n <td class=\"csl-col-check\" (click)=\"$event.stopPropagation()\">\n <input type=\"checkbox\" [checked]=\"svc.isSelected(col)\" (change)=\"svc.toggleItem(col)\">\n </td>\n <td class=\"csl-col-key\">{{ col.ColumnKey }}</td>\n <td class=\"csl-col-name\">\n {{ col.Label ?? col.ColumnKey }}\n @if (svc.isAttribute(col)) { <span class=\"csl-attribute-tag\">Attribut</span> }\n </td>\n </tr>\n }\n @empty {\n <tr><td colspan=\"3\" class=\"csl-empty\">Aucune colonne trouvée</td></tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n\n <!-- ── DROITE : colonnes affichées par la vue choisie, dans l'ordre ──── -->\n <div class=\"csl-panel csl-panel--selected\">\n <div class=\"csl-panel__header\">\n <span class=\"csl-panel__label\">Colonnes affichées</span>\n @if (svc.selectedCount > 0) {\n <span class=\"csl-badge csl-badge--primary\">{{ svc.selectedCount }}</span>\n }\n </div>\n\n @if (svc.isLoading) {\n <div class=\"csl-loading\">\n <span class=\"csl-spinner\"></span>\n Chargement des colonnes…\n </div>\n } @else if (svc.orderedSelection.length === 0) {\n <div class=\"csl-ordered-empty\">\n <span class=\"csl-ordered-empty__icon fa fa-columns\"></span>\n <p>Cochez des colonnes au milieu</p>\n </div>\n } @else {\n <div class=\"csl-ordered-list csl-scroll\"\n cdkDropList\n [cdkDropListData]=\"svc.orderedSelection\"\n (cdkDropListDropped)=\"svc.onDrop($event)\">\n @for (col of svc.orderedSelection; track col.ColumnKey) {\n <div class=\"csl-ordered-item\" cdkDrag [cdkDragData]=\"col\">\n <div class=\"csl-ordered-item__placeholder\" *cdkDragPlaceholder></div>\n <span class=\"csl-ordered-item__drag\" cdkDragHandle><i class=\"fa fa-bars\"></i></span>\n <span class=\"csl-ordered-item__position\">{{ $index + 1 }}</span>\n <span class=\"csl-ordered-item__code\" [class.csl-ordered-item__code--cf]=\"svc.isAttribute(col)\">\n {{ col.ColumnKey }}\n </span>\n <input class=\"csl-ordered-item__desc\" type=\"text\"\n [placeholder]=\"svc.getCatalogLabel(col)\"\n [(ngModel)]=\"col.Label\"\n (click)=\"$event.stopPropagation()\"\n title=\"Étiquette personnalisée\">\n <button class=\"csl-ordered-item__remove\" type=\"button\"\n (click)=\"svc.removeFromSelection(col)\" title=\"Retirer\">&#x2715;</button>\n </div>\n }\n </div>\n }\n </div>\n\n </div>\n }\n </div>\n </div>\n</div>\n\n<!-- ── Footer ─────────────────────────────────────────────────────────────── -->\n<div class=\"csl-footer\">\n <span class=\"csl-footer__count\">\n @if (svc.message) {\n <span class=\"csl-footer__error\">{{ svc.message }}</span>\n } @else if (svc.selectedView && svc.tab === 'filters') {\n Vue « {{ svc.selectedView.label }} » — filtre et tri enregistrés avec la vue\n } @else if (svc.selectedView) {\n Vue « {{ svc.selectedView.label }} » — {{ svc.selectedCount }} colonne(s), glissez pour réordonner\n }\n </span>\n <div class=\"csl-footer__actions\">\n @if (!svc.isEmbedded) {\n <button class=\"csl-btn csl-btn--secondary\" type=\"button\" (click)=\"svc.cancel()\">Annuler</button>\n }\n <button class=\"csl-btn csl-btn--primary\" type=\"button\"\n (click)=\"svc.confirm()\" [disabled]=\"svc.selectedCount === 0 || svc.isSaving || svc.isLoading\">\n @if (svc.isSaving) {\n <span class=\"csl-spinner csl-spinner--sm csl-spinner--light\"></span>&nbsp;\n }\n Appliquer\n </button>\n </div>\n</div>\n",
632
- styles: [".home-page{font-family:Open sans,sans-serif;background:#fff;-webkit-font-smoothing:antialiased;height:100%;width:100%;padding:16px}.main-container{margin:0 50px}.main-container-modal{width:calc(100% - 50px);margin:10px 25px 0}.moyen-titre{font-weight:700;font-size:24px;color:#4d5a81;margin:8px 0;border-bottom:solid 1px #DBE4FF}.grand-titre{font-weight:700;font-size:28px;color:#4d5a81;margin:0 0 8px}.petit-titre{font-weight:700;font-size:16px;color:#4d5a81;margin:0 0 8px}.petit-titre.underlined{border-bottom:solid 1px #4D5A81}.paragraph{padding:0 15px}.paragraph-highlight{padding:5px 15px 0 12px;border-left:5px solid #8EA7F8;border-bottom:1px solid #DBE4FF;border-top:1px solid #DBE4FF;border-right:1px solid #DBE4FF;background-color:#f7faff}.highlight{background-color:#f7faff;border:1px solid #DBE4FF;border-radius:5px;padding:15px;color:#3c5dc4;margin:0 0 16px}.highlight p{margin-bottom:0}.highlight:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"53.294\" height=\"50.629\" viewBox=\"0 0 53.294 50.629\">%0D%0A <path id=\"allerg\\e8ne\" d=\"M830.494,25.793l-5.814,6.783.727,8.963-8.721,1.938-4.6,7.752L803.847,47.6l-8.236,3.634-4.6-7.51-8.721-1.938.727-8.963L777.2,26.035l5.814-6.783-.727-8.963,8.721-1.938L795.61.6l8.236,3.634L812.083.6l4.6,7.752,8.721,1.938-.727,8.963Zm-24.467,2.422V13.681h-4.845V28.216Zm0,9.69V33.06h-4.845v4.845Z\" transform=\"translate(-777.2 -0.6)\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;margin:0 8px 24px 0;filter:invert(31%) sepia(51%) saturate(1323%) hue-rotate(199deg) brightness(99%) contrast(94%)}.notification{background-color:#dbe4ff;border:1px solid #C4D0F9;border-radius:5px;color:#4d5a81;margin:16px;padding:5px 15px;text-align:justify}.notification:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"info-circle\" class=\"svg-inline--fa fa-info-circle fa-w-16\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"currentColor\" d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"></path></svg>');background-repeat:no-repeat;margin:0 8px 0 0;filter:invert(31%) sepia(8%) saturate(2329%) hue-rotate(188deg) brightness(103%) contrast(85%)}.notification-text{padding:0 15px 0 30px;font-size:16px}:host{display:flex;flex-direction:column;height:100%}.csl-header{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 16px;background:#5272d3;border-bottom:1px solid #3C5DC4;flex-shrink:0}.csl-header__left{display:flex;flex-direction:column}.csl-title{font-size:15px;font-weight:600;color:#fff;letter-spacing:-.2px;line-height:1.4;margin:0}.csl-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:#fffc;font-size:14px;cursor:pointer;flex-shrink:0;margin-left:16px;transition:background .1s ease}.csl-icon-btn:hover{background:#ffffff26;color:#fff}.gps-tabs{display:flex;gap:2px}.gps-tab{display:inline-flex;align-items:center;gap:5px;padding:7px 18px;border:none;background:#ffffff1f;color:#ffffffb8;font-size:13px;font-weight:500;cursor:pointer;border-radius:6px 6px 0 0;transition:background .1s ease,color .1s ease}.gps-tab:hover:not(.gps-tab--active){background:#fff3;color:#fff}.gps-tab--active{background:#fff;color:#4465c9;font-weight:600}.csl-body{flex:1;overflow:hidden;padding:16px 20px}.csl-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:200px;color:#535353;font-size:13px}.csl-panels{display:grid;grid-template-columns:240px 1fr 320px;grid-template-rows:minmax(0,1fr);gap:12px;height:calc(70vh - 160px);min-height:380px;overflow:hidden}.csl-panel{min-height:0}.csl-scroll{flex:1 1 auto;min-height:0;overflow-y:auto}.csl-view-icon{margin-right:4px;font-size:11px;color:#888}.csl-view-note{flex-shrink:0;padding:8px 12px;border-top:1px solid #C4D0F9;font-size:11.5px;color:#535353;background:#f5f5f5}.csl-view-note .fa{color:#4465c9;margin-right:4px}.csl-attribute-tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:8px;font-size:10px;font-weight:600;color:#fff;background:#6b7fd4;vertical-align:middle}.csl-group-item--active .gps-profile-actions{opacity:1}.csl-footer__error{color:#dc3545}.csl-panel{display:flex;flex-direction:column;border:1px solid #C4D0F9;border-radius:10px;overflow:hidden;background:#fff}.csl-panel__header{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border-bottom:1px solid #C4D0F9;background:#f5f5f5;flex-shrink:0;gap:8px}.csl-panel__label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.9px;color:#535353;flex-shrink:0}.csl-group-list{list-style:none;margin:0;padding:6px;overflow-y:auto;flex:1}.csl-group-item{display:flex;align-items:center;justify-content:space-between;padding:7px 8px;border-radius:6px;cursor:pointer;transition:background .1s ease;min-height:34px}.csl-group-item:hover{background:#f7faff}.csl-group-item:hover .gps-profile-actions{opacity:1}.csl-group-item--active{background:#ebf0ff}.csl-group-item--active .csl-group-item__name{color:#4465c9;font-weight:600}.csl-group-item--standard{border-left:3px solid #4465C9;padding-left:5px}.csl-group-item--model{border-left:3px solid #6B7FD4;padding-left:5px}.csl-group-item--profile{border-left:3px solid #4465C9;padding-left:5px}.csl-group-item__name{font-size:12.5px;color:#272c5d;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:4px}.csl-group-item__meta{display:flex;align-items:center;gap:4px;flex-shrink:0}.gps-profile-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;opacity:0;transition:opacity .1s ease}.gps-profile-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:none;border-radius:4px;font-size:11px;color:#888;cursor:pointer;padding:0;transition:background .1s,color .1s}.gps-profile-btn:hover{background:#00000014;color:#4465c9}.gps-profile-btn--danger:hover{background:#dc35451a;color:#dc3545}.gps-rename-input{flex:1;height:24px;border:1px solid #4465C9;border-radius:4px;padding:0 6px;font-size:12px;color:#272c5d;background:#fff;outline:none;min-width:0;margin-right:4px}.gps-rename-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.gps-rename-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:4px;font-size:11px;cursor:pointer;padding:0}.gps-rename-btn--ok{background:#4465c9;color:#fff}.gps-rename-btn--ok:hover{background:#3c5dc4}.gps-rename-btn--cancel{background:#00000014;color:#535353}.gps-rename-btn--cancel:hover{background:#00000026}.gps-new-profile{color:#4465c9;font-size:12px;font-weight:500;opacity:.75;justify-content:flex-start;gap:4px}.gps-new-profile:hover{opacity:1;background:#ebf0ff}.csl-group-section-label{padding:8px 8px 4px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#888;list-style:none}.csl-group-divider{height:1px;background:#c4d0f9;margin:6px 8px;list-style:none}.csl-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 5px;border-radius:9px;background:#00000012;color:#535353;font-size:10px;font-weight:600}.csl-badge--primary{background:#4465c9;color:#fff}.csl-badge--sm{height:16px;min-width:16px;font-size:9px;padding:0 4px}.csl-search{flex:1;height:28px;border:1px solid #C4D0F9;border-radius:6px;padding:0 8px;font-size:12px;color:#272c5d;background:#fff;outline:none;transition:border-color .1s ease}.csl-search:focus{border-color:#6684e0}.csl-table-wrap{overflow-y:auto;flex:1}.csl-table{width:100%;border-collapse:collapse;font-size:12.5px}.csl-table thead tr{position:sticky;top:0;z-index:1;background:#f5f5f5}.csl-table thead tr th{padding:8px 10px;text-align:left;font-size:10px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid #C4D0F9;white-space:nowrap}.csl-table tbody tr{border-bottom:1px solid rgba(0,0,0,.04);cursor:pointer;transition:background .1s ease}.csl-table tbody tr:hover{background:#f7faff}.csl-table tbody tr:last-child{border-bottom:none}.csl-table tbody tr td{padding:9px 10px;color:#272c5d}.csl-col-check{width:36px;text-align:center;padding:0 8px!important}.csl-col-check input[type=checkbox]{cursor:pointer;accent-color:#4465C9;width:14px;height:14px}.csl-col-key{font-family:monospace;font-size:11.5px;color:#535353;width:130px}.csl-col-name{font-weight:500}.csl-row--selected{background:#ebf0ff!important}.csl-row--custom-field .csl-col-key{color:#6b7fd4}.csl-empty{text-align:center;padding:32px 16px!important;color:#888;font-size:12.5px}.csl-panel--selected{overflow:hidden}.csl-ordered-list{flex:1;overflow-y:auto;padding:7px}.csl-ordered-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:8px;padding:20px;text-align:center}.csl-ordered-empty__icon{font-size:28px;color:#888;opacity:.35}.csl-ordered-empty p{font-size:12px;color:#535353;margin:0;line-height:1.5}.csl-ordered-item{display:flex;align-items:center;gap:5px;padding:6px 8px 6px 4px;margin-bottom:4px;border:1px solid #C4D0F9;border-radius:6px;background:#fff;transition:border-color .14s ease,background .14s ease}.csl-ordered-item:last-child{margin-bottom:0}.csl-ordered-item:hover{border-color:#8ea7f8;background:#f7faff}.csl-ordered-item__drag{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:20px;color:#888;font-size:11px;cursor:grab;padding:0 2px;-webkit-user-select:none;user-select:none}.csl-ordered-item__drag:active{cursor:grabbing}.csl-ordered-item__position{flex-shrink:0;width:19px;height:19px;border-radius:50%;background:#ebf0ff;color:#4465c9;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.csl-ordered-item__code{flex-shrink:0;width:90px;font-family:monospace;font-size:11px;font-weight:600;color:#535353;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.csl-ordered-item__code--cf{color:#6b7fd4}.csl-ordered-item__desc{flex:1;height:24px;min-width:0;padding:0 6px;border:1px solid transparent;border-radius:4px;font-size:12px;color:#272c5d;background:transparent;transition:border-color .1s,background .1s}.csl-ordered-item__desc::placeholder{color:#888;font-style:italic}.csl-ordered-item__desc:hover{border-color:#c4d0f9;background:#fff}.csl-ordered-item__desc:focus{border-color:#4465c9;background:#fff;outline:none}.csl-ordered-item__remove{flex-shrink:0;background:none;border:none;padding:0 3px;font-size:12px;color:#888;cursor:pointer;line-height:1}.csl-ordered-item__remove:hover{color:#f78383}.csl-ordered-item.cdk-drag-animating{transition:transform .2s cubic-bezier(.25,.8,.25,1)}.csl-ordered-item__placeholder{width:100%;height:38px;border:2px dashed #C4D0F9;border-radius:6px;background:#f7faff}.cdk-drop-list-dragging .csl-ordered-item:not(.cdk-drag-placeholder){transition:transform .2s cubic-bezier(.25,.8,.25,1)}.cdk-drag-preview{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 4px;border-radius:6px;background:#fff;box-shadow:0 4px 16px #4465c92e,0 1px 4px #0000001a;font-size:12px;font-weight:500;color:#272c5d;min-width:180px}.csl-footer{display:flex;align-items:center;justify-content:space-between;padding:13px 22px 16px;border-top:1px solid #C4D0F9;flex-shrink:0}.csl-footer__count{font-size:12px;color:#888;min-width:180px}.csl-footer__actions{display:flex;gap:10px}.csl-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 18px;font-size:13px;font-weight:500;border-radius:6px;cursor:pointer;transition:background .12s ease,opacity .12s ease}.csl-btn--secondary{background:transparent;border:1px solid rgba(0,0,0,.16);color:#535353}.csl-btn--secondary:hover{background:#0000000a}.csl-btn--primary{background:#4465c9;border:1px solid transparent;color:#fff;min-width:130px;justify-content:center}.csl-btn--primary:hover:not([disabled]){background:#3c5dc4}.csl-btn--primary[disabled]{opacity:.42;cursor:not-allowed}.csl-save-prompt{display:flex;align-items:center;gap:10px;width:100%;flex-wrap:wrap}.csl-save-prompt__label{font-size:12.5px;font-weight:500;color:#272c5d;white-space:nowrap}.csl-save-prompt__input{flex:1;min-width:160px;height:32px;padding:0 10px;border:1px solid #C4D0F9;border-radius:6px;font-size:12px;color:#272c5d;background:#fff;outline:none;transition:border-color .1s}.csl-save-prompt__input:focus{border-color:#4465c9}.csl-save-prompt__input[disabled]{opacity:.5}.csl-save-prompt__actions{display:flex;gap:8px;flex-shrink:0}.csl-spinner{display:inline-block;width:14px;height:14px;border:2px solid #DBE4FF;border-top-color:#4465c9;border-radius:50%;animation:gps-spin .65s linear infinite}.csl-spinner--sm{width:11px;height:11px;border-width:2px}.csl-spinner--light{border-color:#ffffff59;border-top-color:#fff}@keyframes gps-spin{to{transform:rotate(360deg)}}.csl-tabbed{flex:2 1 0;min-width:0;display:flex;flex-direction:column;gap:8px}.csl-tabs{display:flex;gap:4px;border-bottom:1px solid #3C5DC4}.csl-tab{position:relative;padding:6px 14px;border:none;border-bottom:2px solid transparent;background:none;color:#6b7591;font:inherit;font-weight:700;cursor:pointer}.csl-tab--active{color:#5272d3;border-bottom-color:#5272d3}.csl-tab-dot{display:inline-block;width:7px;height:7px;margin-left:6px;border-radius:50%;background:var(--orange-algorima, #f59d0f);vertical-align:middle}.csl-panels--inner{flex:1 1 auto;min-height:0}.csl-panel--filters{flex:1 1 auto;min-height:0;overflow:auto}\n"],
631
+ template: "<!-- ── Header ─────────────────────────────────────────────────────────────── -->\r\n<div class=\"csl-header\">\r\n <div class=\"csl-header__left\">\r\n <h4 class=\"csl-title\">{{ svc.config?.title || 'Sélection des colonnes' }}</h4>\r\n </div>\r\n @if (!svc.isEmbedded) {\r\n <button class=\"csl-icon-btn\" type=\"button\" (click)=\"svc.cancel()\" aria-label=\"Fermer\">&#x2715;</button>\r\n }\r\n</div>\r\n\r\n<!-- ── Body : vues à gauche, colonnes disponibles au milieu, colonnes de la vue à droite ── -->\r\n<div class=\"csl-body\">\r\n <div class=\"csl-panels\">\r\n\r\n <!-- ── GAUCHE : vues personnalisées ─────────────────────────────────── -->\r\n <div class=\"csl-panel csl-panel--groups\">\r\n <div class=\"csl-panel__header\">\r\n <span class=\"csl-panel__label\">Vues personnalisées</span>\r\n <span class=\"csl-badge\">{{ svc.views.length }}</span>\r\n </div>\r\n <ul class=\"csl-group-list csl-scroll\">\r\n @for (view of svc.views; track view.id) {\r\n <li class=\"csl-group-item csl-view-item\"\r\n [class.csl-group-item--active]=\"svc.selectedView?.id === view.id\"\r\n [class.csl-group-item--standard]=\"view.isDefault\"\r\n [class.csl-group-item--profile]=\"!view.isDefault\"\r\n (click)=\"svc.selectView(view)\">\r\n @if (svc.renamingId === view.id) {\r\n <input class=\"gps-rename-input\" type=\"text\" maxlength=\"100\"\r\n [(ngModel)]=\"svc.renameLabel\"\r\n (click)=\"$event.stopPropagation()\"\r\n (keydown.enter)=\"svc.confirmRename(view)\"\r\n (keydown.escape)=\"svc.cancelRename()\">\r\n <div class=\"gps-rename-actions\" (click)=\"$event.stopPropagation()\">\r\n <button class=\"gps-rename-btn gps-rename-btn--ok\" type=\"button\" title=\"Renommer\" (click)=\"svc.confirmRename(view)\">\r\n <i class=\"fa fa-check\"></i>\r\n </button>\r\n <button class=\"gps-rename-btn gps-rename-btn--cancel\" type=\"button\" title=\"Annuler\" (click)=\"svc.cancelRename()\">\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n </div>\r\n } @else {\r\n <span class=\"csl-group-item__name\" [title]=\"view.label\">\r\n @if (view.isDefault) { <i class=\"fa fa-lock csl-view-icon\" title=\"Vue par défaut\"></i> }\r\n {{ view.label }}\r\n </span>\r\n <div class=\"csl-group-item__meta\">\r\n @if (view.isCurrent) {\r\n <span class=\"csl-badge csl-badge--primary csl-badge--sm\" title=\"Vue affichée par la grille\">\r\n <i class=\"fa fa-eye\"></i>\r\n </span>\r\n }\r\n <div class=\"gps-profile-actions\" (click)=\"$event.stopPropagation()\">\r\n @if (svc.canEdit(view)) {\r\n <button class=\"gps-profile-btn\" type=\"button\" title=\"Renommer\" (click)=\"svc.startRename(view)\">\r\n <i class=\"fa fa-pencil\"></i>\r\n </button>\r\n }\r\n <button class=\"gps-profile-btn\" type=\"button\" title=\"Dupliquer\" (click)=\"svc.duplicateView(view)\">\r\n <i class=\"fa fa-files-o\"></i>\r\n </button>\r\n @if (!view.isDefault) {\r\n <button class=\"gps-profile-btn gps-profile-btn--danger\" type=\"button\" title=\"Supprimer\" (click)=\"svc.deleteView(view)\">\r\n <i class=\"fa fa-trash-o\"></i>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </li>\r\n }\r\n @empty {\r\n <li class=\"csl-group-section-label\">Aucune vue enregistrée</li>\r\n }\r\n </ul>\r\n @if (svc.isReadOnly) {\r\n <div class=\"csl-view-note\">\r\n <i class=\"fa fa-info-circle\"></i>\r\n Vue par défaut en lecture seule : « Appliquer » crée une nouvelle vue personnelle.\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"csl-tabbed\">\r\n <!-- Onglets de la vue choisie, sur toute la largeur : colonnes, filtres, tri. -->\r\n <div class=\"csl-tabs\">\r\n <button type=\"button\" class=\"csl-tab\" [class.csl-tab--active]=\"svc.tab === 'columns'\" (click)=\"svc.tab = 'columns'\">Colonnes</button>\r\n <button type=\"button\" class=\"csl-tab\" [class.csl-tab--active]=\"svc.tab === 'filters'\" (click)=\"svc.tab = 'filters'\">\r\n Filtres\r\n @if (svc.viewFilter.Conditions.length || svc.viewFilter.Groups?.length) { <span class=\"csl-tab-dot\"></span> }\r\n </button>\r\n <button type=\"button\" class=\"csl-tab\" [class.csl-tab--active]=\"svc.tab === 'sort'\" (click)=\"svc.tab = 'sort'\">\r\n Tri\r\n @if (svc.viewSort.length) { <span class=\"csl-tab-dot\"></span> }\r\n </button>\r\n </div>\r\n @if (svc.tab === 'filters' || svc.tab === 'sort') {\r\n <div class=\"csl-panel csl-panel--filters\">\r\n <alg-filter-editor [embedded]=\"true\" [section]=\"svc.tab\" [columns]=\"svc.filterColumns\" [filter]=\"svc.viewFilter\" [sort]=\"svc.viewSort\"></alg-filter-editor>\r\n </div>\r\n } @else {\r\n <div class=\"csl-panels csl-panels--inner\">\r\n <!-- ── MILIEU : toutes les colonnes disponibles, attributs compris ────── -->\r\n <div class=\"csl-panel csl-panel--browse\">\r\n <div class=\"csl-panel__header\">\r\n <span class=\"csl-panel__label\">Colonnes disponibles</span>\r\n <input class=\"csl-search\" type=\"text\" placeholder=\"Rechercher…\"\r\n [(ngModel)]=\"svc.searchText\" (ngModelChange)=\"svc.onSearch()\">\r\n </div>\r\n\r\n <div class=\"csl-table-wrap csl-scroll\">\r\n <table class=\"csl-table\">\r\n <thead>\r\n <tr>\r\n <th class=\"csl-col-check\">\r\n <input type=\"checkbox\"\r\n [checked]=\"svc.allVisibleSelected\"\r\n [indeterminate]=\"svc.someVisibleSelected\"\r\n (change)=\"svc.toggleAll()\"\r\n title=\"Tout sélectionner / désélectionner\">\r\n </th>\r\n <th class=\"csl-col-name\">Libellé</th>\r\n <th class=\"csl-col-key\">Nom technique</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (col of svc.filteredColumns; track col.ColumnKey) {\r\n <tr class=\"csl-row\"\r\n [class.csl-row--selected]=\"svc.isSelected(col)\"\r\n [class.csl-row--custom-field]=\"svc.isAttribute(col)\"\r\n (click)=\"svc.toggleItem(col)\">\r\n <td class=\"csl-col-check\" (click)=\"$event.stopPropagation()\">\r\n <input type=\"checkbox\" [checked]=\"svc.isSelected(col)\" (change)=\"svc.toggleItem(col)\">\r\n </td>\r\n <td class=\"csl-col-name\">\r\n {{ col.Label || col.ColumnKey }}\r\n @if (svc.isAttribute(col)) { <span class=\"csl-attribute-tag\">Attribut</span> }\r\n </td>\r\n <td class=\"csl-col-key\">{{ col.ColumnKey }}</td>\r\n </tr>\r\n }\r\n @empty {\r\n <tr><td colspan=\"3\" class=\"csl-empty\">Aucune colonne trouvée</td></tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n\r\n <!-- ── DROITE : colonnes affichées par la vue choisie, dans l'ordre ──── -->\r\n <div class=\"csl-panel csl-panel--selected\">\r\n <div class=\"csl-panel__header\">\r\n <span class=\"csl-panel__label\">Colonnes affichées</span>\r\n @if (svc.selectedCount > 0) {\r\n <span class=\"csl-badge csl-badge--primary\">{{ svc.selectedCount }}</span>\r\n }\r\n </div>\r\n\r\n @if (svc.isLoading) {\r\n <div class=\"csl-loading\">\r\n <span class=\"csl-spinner\"></span>\r\n Chargement des colonnes…\r\n </div>\r\n } @else if (svc.orderedSelection.length === 0) {\r\n <div class=\"csl-ordered-empty\">\r\n <span class=\"csl-ordered-empty__icon fa fa-columns\"></span>\r\n <p>Cochez des colonnes au milieu</p>\r\n </div>\r\n } @else {\r\n <div class=\"csl-ordered-list csl-scroll\"\r\n cdkDropList\r\n [cdkDropListData]=\"svc.orderedSelection\"\r\n (cdkDropListDropped)=\"svc.onDrop($event)\">\r\n @for (col of svc.orderedSelection; track col.ColumnKey) {\r\n <div class=\"csl-ordered-item\" cdkDrag [cdkDragData]=\"col\">\r\n <div class=\"csl-ordered-item__placeholder\" *cdkDragPlaceholder></div>\r\n <span class=\"csl-ordered-item__drag\" cdkDragHandle><i class=\"fa fa-bars\"></i></span>\r\n <span class=\"csl-ordered-item__position\">{{ $index + 1 }}</span>\r\n <span class=\"csl-ordered-item__code\" [class.csl-ordered-item__code--cf]=\"svc.isAttribute(col)\">\r\n {{ col.ColumnKey }}\r\n </span>\r\n <input class=\"csl-ordered-item__desc\" type=\"text\"\r\n [placeholder]=\"svc.getCatalogLabel(col)\"\r\n [(ngModel)]=\"col.Label\"\r\n (click)=\"$event.stopPropagation()\"\r\n title=\"Étiquette personnalisée\">\r\n <button class=\"csl-ordered-item__remove\" type=\"button\"\r\n (click)=\"svc.removeFromSelection(col)\" title=\"Retirer\">&#x2715;</button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- ── Footer ─────────────────────────────────────────────────────────────── -->\r\n<div class=\"csl-footer\">\r\n <span class=\"csl-footer__count\">\r\n @if (svc.message) {\r\n <span class=\"csl-footer__error\">{{ svc.message }}</span>\r\n } @else if (svc.selectedView && svc.tab === 'filters') {\r\n Vue « {{ svc.selectedView.label }} » — filtre enregistré avec la vue\r\n } @else if (svc.selectedView && svc.tab === 'sort') {\r\n Vue « {{ svc.selectedView.label }} » — tri enregistré avec la vue\r\n } @else if (svc.selectedView) {\r\n Vue « {{ svc.selectedView.label }} » — {{ svc.selectedCount }} colonne(s), glissez pour réordonner\r\n }\r\n </span>\r\n <div class=\"csl-footer__actions\">\r\n @if (!svc.isEmbedded) {\r\n <button class=\"csl-btn csl-btn--secondary\" type=\"button\" (click)=\"svc.cancel()\">Annuler</button>\r\n }\r\n <button class=\"csl-btn csl-btn--primary\" type=\"button\"\r\n (click)=\"svc.confirm()\" [disabled]=\"svc.selectedCount === 0 || svc.isSaving || svc.isLoading\">\r\n @if (svc.isSaving) {\r\n <span class=\"csl-spinner csl-spinner--sm csl-spinner--light\"></span>&nbsp;\r\n }\r\n Appliquer\r\n </button>\r\n </div>\r\n</div>\r\n",
632
+ styles: [".home-page{font-family:Open sans,sans-serif;background:#fff;-webkit-font-smoothing:antialiased;height:100%;width:100%;padding:16px}.main-container{margin:0 50px}.main-container-modal{width:calc(100% - 50px);margin:10px 25px 0}.moyen-titre{font-weight:700;font-size:24px;color:#4d5a81;margin:8px 0;border-bottom:solid 1px #DBE4FF}.grand-titre{font-weight:700;font-size:28px;color:#4d5a81;margin:0 0 8px}.petit-titre{font-weight:700;font-size:16px;color:#4d5a81;margin:0 0 8px}.petit-titre.underlined{border-bottom:solid 1px #4D5A81}.paragraph{padding:0 15px}.paragraph-highlight{padding:5px 15px 0 12px;border-left:5px solid #8EA7F8;border-bottom:1px solid #DBE4FF;border-top:1px solid #DBE4FF;border-right:1px solid #DBE4FF;background-color:#f7faff}.highlight{background-color:#f7faff;border:1px solid #DBE4FF;border-radius:5px;padding:15px;color:#3c5dc4;margin:0 0 16px}.highlight p{margin-bottom:0}.highlight:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"53.294\" height=\"50.629\" viewBox=\"0 0 53.294 50.629\">%0D%0A <path id=\"allerg\\e8ne\" d=\"M830.494,25.793l-5.814,6.783.727,8.963-8.721,1.938-4.6,7.752L803.847,47.6l-8.236,3.634-4.6-7.51-8.721-1.938.727-8.963L777.2,26.035l5.814-6.783-.727-8.963,8.721-1.938L795.61.6l8.236,3.634L812.083.6l4.6,7.752,8.721,1.938-.727,8.963Zm-24.467,2.422V13.681h-4.845V28.216Zm0,9.69V33.06h-4.845v4.845Z\" transform=\"translate(-777.2 -0.6)\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;margin:0 8px 24px 0;filter:invert(31%) sepia(51%) saturate(1323%) hue-rotate(199deg) brightness(99%) contrast(94%)}.notification{background-color:#dbe4ff;border:1px solid #C4D0F9;border-radius:5px;color:#4d5a81;margin:16px;padding:5px 15px;text-align:justify}.notification:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"info-circle\" class=\"svg-inline--fa fa-info-circle fa-w-16\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"currentColor\" d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"></path></svg>');background-repeat:no-repeat;margin:0 8px 0 0;filter:invert(31%) sepia(8%) saturate(2329%) hue-rotate(188deg) brightness(103%) contrast(85%)}.notification-text{padding:0 15px 0 30px;font-size:16px}:host{display:flex;flex-direction:column;height:100%}.csl-header{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 16px;background:#5272d3;border-bottom:1px solid #3C5DC4;flex-shrink:0}.csl-header__left{display:flex;flex-direction:column}.csl-title{font-size:15px;font-weight:600;color:#fff;letter-spacing:-.2px;line-height:1.4;margin:0}.csl-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:#fffc;font-size:14px;cursor:pointer;flex-shrink:0;margin-left:16px;transition:background .1s ease}.csl-icon-btn:hover{background:#ffffff26;color:#fff}.gps-tabs{display:flex;gap:2px}.gps-tab{display:inline-flex;align-items:center;gap:5px;padding:7px 18px;border:none;background:#ffffff1f;color:#ffffffb8;font-size:13px;font-weight:500;cursor:pointer;border-radius:6px 6px 0 0;transition:background .1s ease,color .1s ease}.gps-tab:hover:not(.gps-tab--active){background:#fff3;color:#fff}.gps-tab--active{background:#fff;color:#4465c9;font-weight:600}.csl-body{flex:1;overflow:hidden;padding:16px 20px}.csl-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:200px;color:#535353;font-size:13px}.csl-panels{display:grid;grid-template-columns:240px 1fr 320px;grid-template-rows:minmax(0,1fr);gap:12px;height:calc(70vh - 160px);min-height:380px;overflow:hidden}.csl-panel{min-height:0}.csl-scroll{flex:1 1 auto;min-height:0;overflow-y:auto}.csl-view-icon{margin-right:4px;font-size:11px;color:#888}.csl-view-note{flex-shrink:0;padding:8px 12px;border-top:1px solid #C4D0F9;font-size:11.5px;color:#535353;background:#f5f5f5}.csl-view-note .fa{color:#4465c9;margin-right:4px}.csl-attribute-tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:8px;font-size:10px;font-weight:600;color:#fff;background:#6b7fd4;vertical-align:middle}.csl-group-item--active .gps-profile-actions{opacity:1}.csl-footer__error{color:#dc3545}.csl-panel{display:flex;flex-direction:column;border:1px solid #C4D0F9;border-radius:10px;overflow:hidden;background:#fff}.csl-panel__header{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border-bottom:1px solid #C4D0F9;background:#f5f5f5;flex-shrink:0;gap:8px}.csl-panel__label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.9px;color:#535353;flex-shrink:0}.csl-group-list{list-style:none;margin:0;padding:6px;overflow-y:auto;flex:1}.csl-group-item{display:flex;align-items:center;justify-content:space-between;padding:7px 8px;border-radius:6px;cursor:pointer;transition:background .1s ease;min-height:34px}.csl-group-item:hover{background:#f7faff}.csl-group-item:hover .gps-profile-actions{opacity:1}.csl-group-item--active{background:#ebf0ff}.csl-group-item--active .csl-group-item__name{color:#4465c9;font-weight:600}.csl-group-item--standard{border-left:3px solid #4465C9;padding-left:5px}.csl-group-item--model{border-left:3px solid #6B7FD4;padding-left:5px}.csl-group-item--profile{border-left:3px solid #4465C9;padding-left:5px}.csl-group-item__name{font-size:12.5px;color:#272c5d;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:4px}.csl-group-item__meta{display:flex;align-items:center;gap:4px;flex-shrink:0}.gps-profile-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;opacity:0;transition:opacity .1s ease}.gps-profile-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:none;border-radius:4px;font-size:11px;color:#888;cursor:pointer;padding:0;transition:background .1s,color .1s}.gps-profile-btn:hover{background:#00000014;color:#4465c9}.gps-profile-btn--danger:hover{background:#dc35451a;color:#dc3545}.gps-rename-input{flex:1;height:24px;border:1px solid #4465C9;border-radius:4px;padding:0 6px;font-size:12px;color:#272c5d;background:#fff;outline:none;min-width:0;margin-right:4px}.gps-rename-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.gps-rename-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:4px;font-size:11px;cursor:pointer;padding:0}.gps-rename-btn--ok{background:#4465c9;color:#fff}.gps-rename-btn--ok:hover{background:#3c5dc4}.gps-rename-btn--cancel{background:#00000014;color:#535353}.gps-rename-btn--cancel:hover{background:#00000026}.gps-new-profile{color:#4465c9;font-size:12px;font-weight:500;opacity:.75;justify-content:flex-start;gap:4px}.gps-new-profile:hover{opacity:1;background:#ebf0ff}.csl-group-section-label{padding:8px 8px 4px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#888;list-style:none}.csl-group-divider{height:1px;background:#c4d0f9;margin:6px 8px;list-style:none}.csl-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 5px;border-radius:9px;background:#00000012;color:#535353;font-size:10px;font-weight:600}.csl-badge--primary{background:#4465c9;color:#fff}.csl-badge--sm{height:16px;min-width:16px;font-size:9px;padding:0 4px}.csl-search{flex:1;height:28px;border:1px solid #C4D0F9;border-radius:6px;padding:0 8px;font-size:12px;color:#272c5d;background:#fff;outline:none;transition:border-color .1s ease}.csl-search:focus{border-color:#6684e0}.csl-table-wrap{overflow-y:auto;flex:1}.csl-table{width:100%;border-collapse:collapse;font-size:12.5px}.csl-table thead tr{position:sticky;top:0;z-index:1;background:#f5f5f5}.csl-table thead tr th{padding:8px 10px;text-align:left;font-size:10px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid #C4D0F9;white-space:nowrap}.csl-table tbody tr{border-bottom:1px solid rgba(0,0,0,.04);cursor:pointer;transition:background .1s ease}.csl-table tbody tr:hover{background:#f7faff}.csl-table tbody tr:last-child{border-bottom:none}.csl-table tbody tr td{padding:9px 10px;color:#272c5d}.csl-col-check{width:36px;text-align:center;padding:0 8px!important}.csl-col-check input[type=checkbox]{cursor:pointer;accent-color:#4465C9;width:14px;height:14px}.csl-col-key{font-family:monospace;font-size:11.5px;color:#535353;width:130px}.csl-col-name{font-weight:500}.csl-row--selected{background:#ebf0ff!important}.csl-row--custom-field .csl-col-key{color:#6b7fd4}.csl-empty{text-align:center;padding:32px 16px!important;color:#888;font-size:12.5px}.csl-panel--selected{overflow:hidden}.csl-ordered-list{flex:1;overflow-y:auto;padding:7px}.csl-ordered-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:8px;padding:20px;text-align:center}.csl-ordered-empty__icon{font-size:28px;color:#888;opacity:.35}.csl-ordered-empty p{font-size:12px;color:#535353;margin:0;line-height:1.5}.csl-ordered-item{display:flex;align-items:center;gap:5px;padding:6px 8px 6px 4px;margin-bottom:4px;border:1px solid #C4D0F9;border-radius:6px;background:#fff;transition:border-color .14s ease,background .14s ease}.csl-ordered-item:last-child{margin-bottom:0}.csl-ordered-item:hover{border-color:#8ea7f8;background:#f7faff}.csl-ordered-item__drag{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:20px;color:#888;font-size:11px;cursor:grab;padding:0 2px;-webkit-user-select:none;user-select:none}.csl-ordered-item__drag:active{cursor:grabbing}.csl-ordered-item__position{flex-shrink:0;width:19px;height:19px;border-radius:50%;background:#ebf0ff;color:#4465c9;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.csl-ordered-item__code{flex-shrink:0;width:90px;font-family:monospace;font-size:11px;font-weight:600;color:#535353;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.csl-ordered-item__code--cf{color:#6b7fd4}.csl-ordered-item__desc{flex:1;height:24px;min-width:0;padding:0 6px;border:1px solid transparent;border-radius:4px;font-size:12px;color:#272c5d;background:transparent;transition:border-color .1s,background .1s}.csl-ordered-item__desc::placeholder{color:#888;font-style:italic}.csl-ordered-item__desc:hover{border-color:#c4d0f9;background:#fff}.csl-ordered-item__desc:focus{border-color:#4465c9;background:#fff;outline:none}.csl-ordered-item__remove{flex-shrink:0;background:none;border:none;padding:0 3px;font-size:12px;color:#888;cursor:pointer;line-height:1}.csl-ordered-item__remove:hover{color:#f78383}.csl-ordered-item.cdk-drag-animating{transition:transform .2s cubic-bezier(.25,.8,.25,1)}.csl-ordered-item__placeholder{width:100%;height:38px;border:2px dashed #C4D0F9;border-radius:6px;background:#f7faff}.cdk-drop-list-dragging .csl-ordered-item:not(.cdk-drag-placeholder){transition:transform .2s cubic-bezier(.25,.8,.25,1)}.cdk-drag-preview{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 4px;border-radius:6px;background:#fff;box-shadow:0 4px 16px #4465c92e,0 1px 4px #0000001a;font-size:12px;font-weight:500;color:#272c5d;min-width:180px}.csl-footer{display:flex;align-items:center;justify-content:space-between;padding:13px 22px 16px;border-top:1px solid #C4D0F9;flex-shrink:0}.csl-footer__count{font-size:12px;color:#888;min-width:180px}.csl-footer__actions{display:flex;gap:10px}.csl-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 18px;font-size:13px;font-weight:500;border-radius:6px;cursor:pointer;transition:background .12s ease,opacity .12s ease}.csl-btn--secondary{background:transparent;border:1px solid rgba(0,0,0,.16);color:#535353}.csl-btn--secondary:hover{background:#0000000a}.csl-btn--primary{background:#4465c9;border:1px solid transparent;color:#fff;min-width:130px;justify-content:center}.csl-btn--primary:hover:not([disabled]){background:#3c5dc4}.csl-btn--primary[disabled]{opacity:.42;cursor:not-allowed}.csl-save-prompt{display:flex;align-items:center;gap:10px;width:100%;flex-wrap:wrap}.csl-save-prompt__label{font-size:12.5px;font-weight:500;color:#272c5d;white-space:nowrap}.csl-save-prompt__input{flex:1;min-width:160px;height:32px;padding:0 10px;border:1px solid #C4D0F9;border-radius:6px;font-size:12px;color:#272c5d;background:#fff;outline:none;transition:border-color .1s}.csl-save-prompt__input:focus{border-color:#4465c9}.csl-save-prompt__input[disabled]{opacity:.5}.csl-save-prompt__actions{display:flex;gap:8px;flex-shrink:0}.csl-spinner{display:inline-block;width:14px;height:14px;border:2px solid #DBE4FF;border-top-color:#4465c9;border-radius:50%;animation:gps-spin .65s linear infinite}.csl-spinner--sm{width:11px;height:11px;border-width:2px}.csl-spinner--light{border-color:#ffffff59;border-top-color:#fff}@keyframes gps-spin{to{transform:rotate(360deg)}}.csl-tabbed{flex:2 1 0;min-width:0;display:flex;flex-direction:column;gap:8px}.csl-tabs{display:flex;gap:4px;border-bottom:1px solid #3C5DC4}.csl-tab{position:relative;flex:1 1 0;text-align:center;padding:6px 14px;border:none;border-bottom:2px solid transparent;background:none;color:#6b7591;font:inherit;font-weight:700;cursor:pointer}.csl-tab--active{color:#5272d3;border-bottom-color:#5272d3}.csl-tab-dot{display:inline-block;width:7px;height:7px;margin-left:6px;border-radius:50%;background:var(--orange-algorima, #f59d0f);vertical-align:middle}.csl-panels--inner{flex:1 1 auto;min-height:0}.csl-panel--filters{flex:1 1 auto;min-height:0;overflow:auto}\n"],
633
633
  dependencies: [
634
634
  {
635
635
  kind: "ngmodule",
@@ -747,7 +747,8 @@ var PresentationProfileComponent = class PresentationProfileComponent {
747
747
  "columns",
748
748
  "filter",
749
749
  "sort",
750
- "embedded"
750
+ "embedded",
751
+ "section"
751
752
  ]
752
753
  }
753
754
  ],
@@ -773,8 +774,8 @@ i0.ɵɵngDeclareClassMetadata({
773
774
  ],
774
775
  providers: [PresentationProfileService],
775
776
  changeDetection: ChangeDetectionStrategy.Eager,
776
- template: "<!-- ── Header ─────────────────────────────────────────────────────────────── -->\n<div class=\"csl-header\">\n <div class=\"csl-header__left\">\n <h4 class=\"csl-title\">{{ svc.config?.title || 'Sélection des colonnes' }}</h4>\n </div>\n @if (!svc.isEmbedded) {\n <button class=\"csl-icon-btn\" type=\"button\" (click)=\"svc.cancel()\" aria-label=\"Fermer\">&#x2715;</button>\n }\n</div>\n\n<!-- ── Body : vues à gauche, colonnes disponibles au milieu, colonnes de la vue à droite ── -->\n<div class=\"csl-body\">\n <div class=\"csl-panels\">\n\n <!-- ── GAUCHE : vues personnalisées ─────────────────────────────────── -->\n <div class=\"csl-panel csl-panel--groups\">\n <div class=\"csl-panel__header\">\n <span class=\"csl-panel__label\">Vues personnalisées</span>\n <span class=\"csl-badge\">{{ svc.views.length }}</span>\n </div>\n <ul class=\"csl-group-list csl-scroll\">\n @for (view of svc.views; track view.id) {\n <li class=\"csl-group-item csl-view-item\"\n [class.csl-group-item--active]=\"svc.selectedView?.id === view.id\"\n [class.csl-group-item--standard]=\"view.isDefault\"\n [class.csl-group-item--profile]=\"!view.isDefault\"\n (click)=\"svc.selectView(view)\">\n @if (svc.renamingId === view.id) {\n <input class=\"gps-rename-input\" type=\"text\" maxlength=\"100\"\n [(ngModel)]=\"svc.renameLabel\"\n (click)=\"$event.stopPropagation()\"\n (keydown.enter)=\"svc.confirmRename(view)\"\n (keydown.escape)=\"svc.cancelRename()\">\n <div class=\"gps-rename-actions\" (click)=\"$event.stopPropagation()\">\n <button class=\"gps-rename-btn gps-rename-btn--ok\" type=\"button\" title=\"Renommer\" (click)=\"svc.confirmRename(view)\">\n <i class=\"fa fa-check\"></i>\n </button>\n <button class=\"gps-rename-btn gps-rename-btn--cancel\" type=\"button\" title=\"Annuler\" (click)=\"svc.cancelRename()\">\n <i class=\"fa fa-times\"></i>\n </button>\n </div>\n } @else {\n <span class=\"csl-group-item__name\" [title]=\"view.label\">\n @if (view.isDefault) { <i class=\"fa fa-lock csl-view-icon\" title=\"Vue par défaut\"></i> }\n {{ view.label }}\n </span>\n <div class=\"csl-group-item__meta\">\n @if (view.isCurrent) {\n <span class=\"csl-badge csl-badge--primary csl-badge--sm\" title=\"Vue affichée par la grille\">\n <i class=\"fa fa-eye\"></i>\n </span>\n }\n <div class=\"gps-profile-actions\" (click)=\"$event.stopPropagation()\">\n @if (svc.canEdit(view)) {\n <button class=\"gps-profile-btn\" type=\"button\" title=\"Renommer\" (click)=\"svc.startRename(view)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n }\n <button class=\"gps-profile-btn\" type=\"button\" title=\"Dupliquer\" (click)=\"svc.duplicateView(view)\">\n <i class=\"fa fa-files-o\"></i>\n </button>\n @if (!view.isDefault) {\n <button class=\"gps-profile-btn gps-profile-btn--danger\" type=\"button\" title=\"Supprimer\" (click)=\"svc.deleteView(view)\">\n <i class=\"fa fa-trash-o\"></i>\n </button>\n }\n </div>\n </div>\n }\n </li>\n }\n @empty {\n <li class=\"csl-group-section-label\">Aucune vue enregistrée</li>\n }\n </ul>\n @if (svc.isReadOnly) {\n <div class=\"csl-view-note\">\n <i class=\"fa fa-info-circle\"></i>\n Vue par défaut en lecture seule : « Appliquer » crée une nouvelle vue personnelle.\n </div>\n }\n </div>\n\n <div class=\"csl-tabbed\">\n <!-- Onglets de la vue choisie : colonnes, ou filtres et tri. -->\n <div class=\"csl-tabs\">\n <button type=\"button\" class=\"csl-tab\" [class.csl-tab--active]=\"svc.tab === 'columns'\" (click)=\"svc.tab = 'columns'\">Colonnes</button>\n <button type=\"button\" class=\"csl-tab\" [class.csl-tab--active]=\"svc.tab === 'filters'\" (click)=\"svc.tab = 'filters'\">\n Filtres et tri\n @if (svc.viewFilter.Conditions.length || svc.viewFilter.Groups?.length || svc.viewSort.length) { <span class=\"csl-tab-dot\"></span> }\n </button>\n </div>\n @if (svc.tab === 'filters') {\n <div class=\"csl-panel csl-panel--filters\">\n <alg-filter-editor [embedded]=\"true\" [columns]=\"svc.filterColumns\" [filter]=\"svc.viewFilter\" [sort]=\"svc.viewSort\"></alg-filter-editor>\n </div>\n } @else {\n <div class=\"csl-panels csl-panels--inner\">\n <!-- ── MILIEU : toutes les colonnes disponibles, attributs compris ────── -->\n <div class=\"csl-panel csl-panel--browse\">\n <div class=\"csl-panel__header\">\n <span class=\"csl-panel__label\">Colonnes disponibles</span>\n <input class=\"csl-search\" type=\"text\" placeholder=\"Rechercher…\"\n [(ngModel)]=\"svc.searchText\" (ngModelChange)=\"svc.onSearch()\">\n </div>\n\n <div class=\"csl-table-wrap csl-scroll\">\n <table class=\"csl-table\">\n <thead>\n <tr>\n <th class=\"csl-col-check\">\n <input type=\"checkbox\"\n [checked]=\"svc.allVisibleSelected\"\n [indeterminate]=\"svc.someVisibleSelected\"\n (change)=\"svc.toggleAll()\"\n title=\"Tout sélectionner / désélectionner\">\n </th>\n <th class=\"csl-col-key\">Clé</th>\n <th class=\"csl-col-name\">Colonne</th>\n </tr>\n </thead>\n <tbody>\n @for (col of svc.filteredColumns; track col.ColumnKey) {\n <tr class=\"csl-row\"\n [class.csl-row--selected]=\"svc.isSelected(col)\"\n [class.csl-row--custom-field]=\"svc.isAttribute(col)\"\n (click)=\"svc.toggleItem(col)\">\n <td class=\"csl-col-check\" (click)=\"$event.stopPropagation()\">\n <input type=\"checkbox\" [checked]=\"svc.isSelected(col)\" (change)=\"svc.toggleItem(col)\">\n </td>\n <td class=\"csl-col-key\">{{ col.ColumnKey }}</td>\n <td class=\"csl-col-name\">\n {{ col.Label ?? col.ColumnKey }}\n @if (svc.isAttribute(col)) { <span class=\"csl-attribute-tag\">Attribut</span> }\n </td>\n </tr>\n }\n @empty {\n <tr><td colspan=\"3\" class=\"csl-empty\">Aucune colonne trouvée</td></tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n\n <!-- ── DROITE : colonnes affichées par la vue choisie, dans l'ordre ──── -->\n <div class=\"csl-panel csl-panel--selected\">\n <div class=\"csl-panel__header\">\n <span class=\"csl-panel__label\">Colonnes affichées</span>\n @if (svc.selectedCount > 0) {\n <span class=\"csl-badge csl-badge--primary\">{{ svc.selectedCount }}</span>\n }\n </div>\n\n @if (svc.isLoading) {\n <div class=\"csl-loading\">\n <span class=\"csl-spinner\"></span>\n Chargement des colonnes…\n </div>\n } @else if (svc.orderedSelection.length === 0) {\n <div class=\"csl-ordered-empty\">\n <span class=\"csl-ordered-empty__icon fa fa-columns\"></span>\n <p>Cochez des colonnes au milieu</p>\n </div>\n } @else {\n <div class=\"csl-ordered-list csl-scroll\"\n cdkDropList\n [cdkDropListData]=\"svc.orderedSelection\"\n (cdkDropListDropped)=\"svc.onDrop($event)\">\n @for (col of svc.orderedSelection; track col.ColumnKey) {\n <div class=\"csl-ordered-item\" cdkDrag [cdkDragData]=\"col\">\n <div class=\"csl-ordered-item__placeholder\" *cdkDragPlaceholder></div>\n <span class=\"csl-ordered-item__drag\" cdkDragHandle><i class=\"fa fa-bars\"></i></span>\n <span class=\"csl-ordered-item__position\">{{ $index + 1 }}</span>\n <span class=\"csl-ordered-item__code\" [class.csl-ordered-item__code--cf]=\"svc.isAttribute(col)\">\n {{ col.ColumnKey }}\n </span>\n <input class=\"csl-ordered-item__desc\" type=\"text\"\n [placeholder]=\"svc.getCatalogLabel(col)\"\n [(ngModel)]=\"col.Label\"\n (click)=\"$event.stopPropagation()\"\n title=\"Étiquette personnalisée\">\n <button class=\"csl-ordered-item__remove\" type=\"button\"\n (click)=\"svc.removeFromSelection(col)\" title=\"Retirer\">&#x2715;</button>\n </div>\n }\n </div>\n }\n </div>\n\n </div>\n }\n </div>\n </div>\n</div>\n\n<!-- ── Footer ─────────────────────────────────────────────────────────────── -->\n<div class=\"csl-footer\">\n <span class=\"csl-footer__count\">\n @if (svc.message) {\n <span class=\"csl-footer__error\">{{ svc.message }}</span>\n } @else if (svc.selectedView && svc.tab === 'filters') {\n Vue « {{ svc.selectedView.label }} » — filtre et tri enregistrés avec la vue\n } @else if (svc.selectedView) {\n Vue « {{ svc.selectedView.label }} » — {{ svc.selectedCount }} colonne(s), glissez pour réordonner\n }\n </span>\n <div class=\"csl-footer__actions\">\n @if (!svc.isEmbedded) {\n <button class=\"csl-btn csl-btn--secondary\" type=\"button\" (click)=\"svc.cancel()\">Annuler</button>\n }\n <button class=\"csl-btn csl-btn--primary\" type=\"button\"\n (click)=\"svc.confirm()\" [disabled]=\"svc.selectedCount === 0 || svc.isSaving || svc.isLoading\">\n @if (svc.isSaving) {\n <span class=\"csl-spinner csl-spinner--sm csl-spinner--light\"></span>&nbsp;\n }\n Appliquer\n </button>\n </div>\n</div>\n",
777
- styles: [".home-page{font-family:Open sans,sans-serif;background:#fff;-webkit-font-smoothing:antialiased;height:100%;width:100%;padding:16px}.main-container{margin:0 50px}.main-container-modal{width:calc(100% - 50px);margin:10px 25px 0}.moyen-titre{font-weight:700;font-size:24px;color:#4d5a81;margin:8px 0;border-bottom:solid 1px #DBE4FF}.grand-titre{font-weight:700;font-size:28px;color:#4d5a81;margin:0 0 8px}.petit-titre{font-weight:700;font-size:16px;color:#4d5a81;margin:0 0 8px}.petit-titre.underlined{border-bottom:solid 1px #4D5A81}.paragraph{padding:0 15px}.paragraph-highlight{padding:5px 15px 0 12px;border-left:5px solid #8EA7F8;border-bottom:1px solid #DBE4FF;border-top:1px solid #DBE4FF;border-right:1px solid #DBE4FF;background-color:#f7faff}.highlight{background-color:#f7faff;border:1px solid #DBE4FF;border-radius:5px;padding:15px;color:#3c5dc4;margin:0 0 16px}.highlight p{margin-bottom:0}.highlight:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"53.294\" height=\"50.629\" viewBox=\"0 0 53.294 50.629\">%0D%0A <path id=\"allerg\\e8ne\" d=\"M830.494,25.793l-5.814,6.783.727,8.963-8.721,1.938-4.6,7.752L803.847,47.6l-8.236,3.634-4.6-7.51-8.721-1.938.727-8.963L777.2,26.035l5.814-6.783-.727-8.963,8.721-1.938L795.61.6l8.236,3.634L812.083.6l4.6,7.752,8.721,1.938-.727,8.963Zm-24.467,2.422V13.681h-4.845V28.216Zm0,9.69V33.06h-4.845v4.845Z\" transform=\"translate(-777.2 -0.6)\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;margin:0 8px 24px 0;filter:invert(31%) sepia(51%) saturate(1323%) hue-rotate(199deg) brightness(99%) contrast(94%)}.notification{background-color:#dbe4ff;border:1px solid #C4D0F9;border-radius:5px;color:#4d5a81;margin:16px;padding:5px 15px;text-align:justify}.notification:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"info-circle\" class=\"svg-inline--fa fa-info-circle fa-w-16\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"currentColor\" d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"></path></svg>');background-repeat:no-repeat;margin:0 8px 0 0;filter:invert(31%) sepia(8%) saturate(2329%) hue-rotate(188deg) brightness(103%) contrast(85%)}.notification-text{padding:0 15px 0 30px;font-size:16px}:host{display:flex;flex-direction:column;height:100%}.csl-header{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 16px;background:#5272d3;border-bottom:1px solid #3C5DC4;flex-shrink:0}.csl-header__left{display:flex;flex-direction:column}.csl-title{font-size:15px;font-weight:600;color:#fff;letter-spacing:-.2px;line-height:1.4;margin:0}.csl-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:#fffc;font-size:14px;cursor:pointer;flex-shrink:0;margin-left:16px;transition:background .1s ease}.csl-icon-btn:hover{background:#ffffff26;color:#fff}.gps-tabs{display:flex;gap:2px}.gps-tab{display:inline-flex;align-items:center;gap:5px;padding:7px 18px;border:none;background:#ffffff1f;color:#ffffffb8;font-size:13px;font-weight:500;cursor:pointer;border-radius:6px 6px 0 0;transition:background .1s ease,color .1s ease}.gps-tab:hover:not(.gps-tab--active){background:#fff3;color:#fff}.gps-tab--active{background:#fff;color:#4465c9;font-weight:600}.csl-body{flex:1;overflow:hidden;padding:16px 20px}.csl-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:200px;color:#535353;font-size:13px}.csl-panels{display:grid;grid-template-columns:240px 1fr 320px;grid-template-rows:minmax(0,1fr);gap:12px;height:calc(70vh - 160px);min-height:380px;overflow:hidden}.csl-panel{min-height:0}.csl-scroll{flex:1 1 auto;min-height:0;overflow-y:auto}.csl-view-icon{margin-right:4px;font-size:11px;color:#888}.csl-view-note{flex-shrink:0;padding:8px 12px;border-top:1px solid #C4D0F9;font-size:11.5px;color:#535353;background:#f5f5f5}.csl-view-note .fa{color:#4465c9;margin-right:4px}.csl-attribute-tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:8px;font-size:10px;font-weight:600;color:#fff;background:#6b7fd4;vertical-align:middle}.csl-group-item--active .gps-profile-actions{opacity:1}.csl-footer__error{color:#dc3545}.csl-panel{display:flex;flex-direction:column;border:1px solid #C4D0F9;border-radius:10px;overflow:hidden;background:#fff}.csl-panel__header{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border-bottom:1px solid #C4D0F9;background:#f5f5f5;flex-shrink:0;gap:8px}.csl-panel__label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.9px;color:#535353;flex-shrink:0}.csl-group-list{list-style:none;margin:0;padding:6px;overflow-y:auto;flex:1}.csl-group-item{display:flex;align-items:center;justify-content:space-between;padding:7px 8px;border-radius:6px;cursor:pointer;transition:background .1s ease;min-height:34px}.csl-group-item:hover{background:#f7faff}.csl-group-item:hover .gps-profile-actions{opacity:1}.csl-group-item--active{background:#ebf0ff}.csl-group-item--active .csl-group-item__name{color:#4465c9;font-weight:600}.csl-group-item--standard{border-left:3px solid #4465C9;padding-left:5px}.csl-group-item--model{border-left:3px solid #6B7FD4;padding-left:5px}.csl-group-item--profile{border-left:3px solid #4465C9;padding-left:5px}.csl-group-item__name{font-size:12.5px;color:#272c5d;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:4px}.csl-group-item__meta{display:flex;align-items:center;gap:4px;flex-shrink:0}.gps-profile-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;opacity:0;transition:opacity .1s ease}.gps-profile-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:none;border-radius:4px;font-size:11px;color:#888;cursor:pointer;padding:0;transition:background .1s,color .1s}.gps-profile-btn:hover{background:#00000014;color:#4465c9}.gps-profile-btn--danger:hover{background:#dc35451a;color:#dc3545}.gps-rename-input{flex:1;height:24px;border:1px solid #4465C9;border-radius:4px;padding:0 6px;font-size:12px;color:#272c5d;background:#fff;outline:none;min-width:0;margin-right:4px}.gps-rename-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.gps-rename-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:4px;font-size:11px;cursor:pointer;padding:0}.gps-rename-btn--ok{background:#4465c9;color:#fff}.gps-rename-btn--ok:hover{background:#3c5dc4}.gps-rename-btn--cancel{background:#00000014;color:#535353}.gps-rename-btn--cancel:hover{background:#00000026}.gps-new-profile{color:#4465c9;font-size:12px;font-weight:500;opacity:.75;justify-content:flex-start;gap:4px}.gps-new-profile:hover{opacity:1;background:#ebf0ff}.csl-group-section-label{padding:8px 8px 4px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#888;list-style:none}.csl-group-divider{height:1px;background:#c4d0f9;margin:6px 8px;list-style:none}.csl-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 5px;border-radius:9px;background:#00000012;color:#535353;font-size:10px;font-weight:600}.csl-badge--primary{background:#4465c9;color:#fff}.csl-badge--sm{height:16px;min-width:16px;font-size:9px;padding:0 4px}.csl-search{flex:1;height:28px;border:1px solid #C4D0F9;border-radius:6px;padding:0 8px;font-size:12px;color:#272c5d;background:#fff;outline:none;transition:border-color .1s ease}.csl-search:focus{border-color:#6684e0}.csl-table-wrap{overflow-y:auto;flex:1}.csl-table{width:100%;border-collapse:collapse;font-size:12.5px}.csl-table thead tr{position:sticky;top:0;z-index:1;background:#f5f5f5}.csl-table thead tr th{padding:8px 10px;text-align:left;font-size:10px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid #C4D0F9;white-space:nowrap}.csl-table tbody tr{border-bottom:1px solid rgba(0,0,0,.04);cursor:pointer;transition:background .1s ease}.csl-table tbody tr:hover{background:#f7faff}.csl-table tbody tr:last-child{border-bottom:none}.csl-table tbody tr td{padding:9px 10px;color:#272c5d}.csl-col-check{width:36px;text-align:center;padding:0 8px!important}.csl-col-check input[type=checkbox]{cursor:pointer;accent-color:#4465C9;width:14px;height:14px}.csl-col-key{font-family:monospace;font-size:11.5px;color:#535353;width:130px}.csl-col-name{font-weight:500}.csl-row--selected{background:#ebf0ff!important}.csl-row--custom-field .csl-col-key{color:#6b7fd4}.csl-empty{text-align:center;padding:32px 16px!important;color:#888;font-size:12.5px}.csl-panel--selected{overflow:hidden}.csl-ordered-list{flex:1;overflow-y:auto;padding:7px}.csl-ordered-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:8px;padding:20px;text-align:center}.csl-ordered-empty__icon{font-size:28px;color:#888;opacity:.35}.csl-ordered-empty p{font-size:12px;color:#535353;margin:0;line-height:1.5}.csl-ordered-item{display:flex;align-items:center;gap:5px;padding:6px 8px 6px 4px;margin-bottom:4px;border:1px solid #C4D0F9;border-radius:6px;background:#fff;transition:border-color .14s ease,background .14s ease}.csl-ordered-item:last-child{margin-bottom:0}.csl-ordered-item:hover{border-color:#8ea7f8;background:#f7faff}.csl-ordered-item__drag{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:20px;color:#888;font-size:11px;cursor:grab;padding:0 2px;-webkit-user-select:none;user-select:none}.csl-ordered-item__drag:active{cursor:grabbing}.csl-ordered-item__position{flex-shrink:0;width:19px;height:19px;border-radius:50%;background:#ebf0ff;color:#4465c9;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.csl-ordered-item__code{flex-shrink:0;width:90px;font-family:monospace;font-size:11px;font-weight:600;color:#535353;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.csl-ordered-item__code--cf{color:#6b7fd4}.csl-ordered-item__desc{flex:1;height:24px;min-width:0;padding:0 6px;border:1px solid transparent;border-radius:4px;font-size:12px;color:#272c5d;background:transparent;transition:border-color .1s,background .1s}.csl-ordered-item__desc::placeholder{color:#888;font-style:italic}.csl-ordered-item__desc:hover{border-color:#c4d0f9;background:#fff}.csl-ordered-item__desc:focus{border-color:#4465c9;background:#fff;outline:none}.csl-ordered-item__remove{flex-shrink:0;background:none;border:none;padding:0 3px;font-size:12px;color:#888;cursor:pointer;line-height:1}.csl-ordered-item__remove:hover{color:#f78383}.csl-ordered-item.cdk-drag-animating{transition:transform .2s cubic-bezier(.25,.8,.25,1)}.csl-ordered-item__placeholder{width:100%;height:38px;border:2px dashed #C4D0F9;border-radius:6px;background:#f7faff}.cdk-drop-list-dragging .csl-ordered-item:not(.cdk-drag-placeholder){transition:transform .2s cubic-bezier(.25,.8,.25,1)}.cdk-drag-preview{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 4px;border-radius:6px;background:#fff;box-shadow:0 4px 16px #4465c92e,0 1px 4px #0000001a;font-size:12px;font-weight:500;color:#272c5d;min-width:180px}.csl-footer{display:flex;align-items:center;justify-content:space-between;padding:13px 22px 16px;border-top:1px solid #C4D0F9;flex-shrink:0}.csl-footer__count{font-size:12px;color:#888;min-width:180px}.csl-footer__actions{display:flex;gap:10px}.csl-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 18px;font-size:13px;font-weight:500;border-radius:6px;cursor:pointer;transition:background .12s ease,opacity .12s ease}.csl-btn--secondary{background:transparent;border:1px solid rgba(0,0,0,.16);color:#535353}.csl-btn--secondary:hover{background:#0000000a}.csl-btn--primary{background:#4465c9;border:1px solid transparent;color:#fff;min-width:130px;justify-content:center}.csl-btn--primary:hover:not([disabled]){background:#3c5dc4}.csl-btn--primary[disabled]{opacity:.42;cursor:not-allowed}.csl-save-prompt{display:flex;align-items:center;gap:10px;width:100%;flex-wrap:wrap}.csl-save-prompt__label{font-size:12.5px;font-weight:500;color:#272c5d;white-space:nowrap}.csl-save-prompt__input{flex:1;min-width:160px;height:32px;padding:0 10px;border:1px solid #C4D0F9;border-radius:6px;font-size:12px;color:#272c5d;background:#fff;outline:none;transition:border-color .1s}.csl-save-prompt__input:focus{border-color:#4465c9}.csl-save-prompt__input[disabled]{opacity:.5}.csl-save-prompt__actions{display:flex;gap:8px;flex-shrink:0}.csl-spinner{display:inline-block;width:14px;height:14px;border:2px solid #DBE4FF;border-top-color:#4465c9;border-radius:50%;animation:gps-spin .65s linear infinite}.csl-spinner--sm{width:11px;height:11px;border-width:2px}.csl-spinner--light{border-color:#ffffff59;border-top-color:#fff}@keyframes gps-spin{to{transform:rotate(360deg)}}.csl-tabbed{flex:2 1 0;min-width:0;display:flex;flex-direction:column;gap:8px}.csl-tabs{display:flex;gap:4px;border-bottom:1px solid #3C5DC4}.csl-tab{position:relative;padding:6px 14px;border:none;border-bottom:2px solid transparent;background:none;color:#6b7591;font:inherit;font-weight:700;cursor:pointer}.csl-tab--active{color:#5272d3;border-bottom-color:#5272d3}.csl-tab-dot{display:inline-block;width:7px;height:7px;margin-left:6px;border-radius:50%;background:var(--orange-algorima, #f59d0f);vertical-align:middle}.csl-panels--inner{flex:1 1 auto;min-height:0}.csl-panel--filters{flex:1 1 auto;min-height:0;overflow:auto}\n"]
777
+ template: "<!-- ── Header ─────────────────────────────────────────────────────────────── -->\r\n<div class=\"csl-header\">\r\n <div class=\"csl-header__left\">\r\n <h4 class=\"csl-title\">{{ svc.config?.title || 'Sélection des colonnes' }}</h4>\r\n </div>\r\n @if (!svc.isEmbedded) {\r\n <button class=\"csl-icon-btn\" type=\"button\" (click)=\"svc.cancel()\" aria-label=\"Fermer\">&#x2715;</button>\r\n }\r\n</div>\r\n\r\n<!-- ── Body : vues à gauche, colonnes disponibles au milieu, colonnes de la vue à droite ── -->\r\n<div class=\"csl-body\">\r\n <div class=\"csl-panels\">\r\n\r\n <!-- ── GAUCHE : vues personnalisées ─────────────────────────────────── -->\r\n <div class=\"csl-panel csl-panel--groups\">\r\n <div class=\"csl-panel__header\">\r\n <span class=\"csl-panel__label\">Vues personnalisées</span>\r\n <span class=\"csl-badge\">{{ svc.views.length }}</span>\r\n </div>\r\n <ul class=\"csl-group-list csl-scroll\">\r\n @for (view of svc.views; track view.id) {\r\n <li class=\"csl-group-item csl-view-item\"\r\n [class.csl-group-item--active]=\"svc.selectedView?.id === view.id\"\r\n [class.csl-group-item--standard]=\"view.isDefault\"\r\n [class.csl-group-item--profile]=\"!view.isDefault\"\r\n (click)=\"svc.selectView(view)\">\r\n @if (svc.renamingId === view.id) {\r\n <input class=\"gps-rename-input\" type=\"text\" maxlength=\"100\"\r\n [(ngModel)]=\"svc.renameLabel\"\r\n (click)=\"$event.stopPropagation()\"\r\n (keydown.enter)=\"svc.confirmRename(view)\"\r\n (keydown.escape)=\"svc.cancelRename()\">\r\n <div class=\"gps-rename-actions\" (click)=\"$event.stopPropagation()\">\r\n <button class=\"gps-rename-btn gps-rename-btn--ok\" type=\"button\" title=\"Renommer\" (click)=\"svc.confirmRename(view)\">\r\n <i class=\"fa fa-check\"></i>\r\n </button>\r\n <button class=\"gps-rename-btn gps-rename-btn--cancel\" type=\"button\" title=\"Annuler\" (click)=\"svc.cancelRename()\">\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n </div>\r\n } @else {\r\n <span class=\"csl-group-item__name\" [title]=\"view.label\">\r\n @if (view.isDefault) { <i class=\"fa fa-lock csl-view-icon\" title=\"Vue par défaut\"></i> }\r\n {{ view.label }}\r\n </span>\r\n <div class=\"csl-group-item__meta\">\r\n @if (view.isCurrent) {\r\n <span class=\"csl-badge csl-badge--primary csl-badge--sm\" title=\"Vue affichée par la grille\">\r\n <i class=\"fa fa-eye\"></i>\r\n </span>\r\n }\r\n <div class=\"gps-profile-actions\" (click)=\"$event.stopPropagation()\">\r\n @if (svc.canEdit(view)) {\r\n <button class=\"gps-profile-btn\" type=\"button\" title=\"Renommer\" (click)=\"svc.startRename(view)\">\r\n <i class=\"fa fa-pencil\"></i>\r\n </button>\r\n }\r\n <button class=\"gps-profile-btn\" type=\"button\" title=\"Dupliquer\" (click)=\"svc.duplicateView(view)\">\r\n <i class=\"fa fa-files-o\"></i>\r\n </button>\r\n @if (!view.isDefault) {\r\n <button class=\"gps-profile-btn gps-profile-btn--danger\" type=\"button\" title=\"Supprimer\" (click)=\"svc.deleteView(view)\">\r\n <i class=\"fa fa-trash-o\"></i>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </li>\r\n }\r\n @empty {\r\n <li class=\"csl-group-section-label\">Aucune vue enregistrée</li>\r\n }\r\n </ul>\r\n @if (svc.isReadOnly) {\r\n <div class=\"csl-view-note\">\r\n <i class=\"fa fa-info-circle\"></i>\r\n Vue par défaut en lecture seule : « Appliquer » crée une nouvelle vue personnelle.\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"csl-tabbed\">\r\n <!-- Onglets de la vue choisie, sur toute la largeur : colonnes, filtres, tri. -->\r\n <div class=\"csl-tabs\">\r\n <button type=\"button\" class=\"csl-tab\" [class.csl-tab--active]=\"svc.tab === 'columns'\" (click)=\"svc.tab = 'columns'\">Colonnes</button>\r\n <button type=\"button\" class=\"csl-tab\" [class.csl-tab--active]=\"svc.tab === 'filters'\" (click)=\"svc.tab = 'filters'\">\r\n Filtres\r\n @if (svc.viewFilter.Conditions.length || svc.viewFilter.Groups?.length) { <span class=\"csl-tab-dot\"></span> }\r\n </button>\r\n <button type=\"button\" class=\"csl-tab\" [class.csl-tab--active]=\"svc.tab === 'sort'\" (click)=\"svc.tab = 'sort'\">\r\n Tri\r\n @if (svc.viewSort.length) { <span class=\"csl-tab-dot\"></span> }\r\n </button>\r\n </div>\r\n @if (svc.tab === 'filters' || svc.tab === 'sort') {\r\n <div class=\"csl-panel csl-panel--filters\">\r\n <alg-filter-editor [embedded]=\"true\" [section]=\"svc.tab\" [columns]=\"svc.filterColumns\" [filter]=\"svc.viewFilter\" [sort]=\"svc.viewSort\"></alg-filter-editor>\r\n </div>\r\n } @else {\r\n <div class=\"csl-panels csl-panels--inner\">\r\n <!-- ── MILIEU : toutes les colonnes disponibles, attributs compris ────── -->\r\n <div class=\"csl-panel csl-panel--browse\">\r\n <div class=\"csl-panel__header\">\r\n <span class=\"csl-panel__label\">Colonnes disponibles</span>\r\n <input class=\"csl-search\" type=\"text\" placeholder=\"Rechercher…\"\r\n [(ngModel)]=\"svc.searchText\" (ngModelChange)=\"svc.onSearch()\">\r\n </div>\r\n\r\n <div class=\"csl-table-wrap csl-scroll\">\r\n <table class=\"csl-table\">\r\n <thead>\r\n <tr>\r\n <th class=\"csl-col-check\">\r\n <input type=\"checkbox\"\r\n [checked]=\"svc.allVisibleSelected\"\r\n [indeterminate]=\"svc.someVisibleSelected\"\r\n (change)=\"svc.toggleAll()\"\r\n title=\"Tout sélectionner / désélectionner\">\r\n </th>\r\n <th class=\"csl-col-name\">Libellé</th>\r\n <th class=\"csl-col-key\">Nom technique</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (col of svc.filteredColumns; track col.ColumnKey) {\r\n <tr class=\"csl-row\"\r\n [class.csl-row--selected]=\"svc.isSelected(col)\"\r\n [class.csl-row--custom-field]=\"svc.isAttribute(col)\"\r\n (click)=\"svc.toggleItem(col)\">\r\n <td class=\"csl-col-check\" (click)=\"$event.stopPropagation()\">\r\n <input type=\"checkbox\" [checked]=\"svc.isSelected(col)\" (change)=\"svc.toggleItem(col)\">\r\n </td>\r\n <td class=\"csl-col-name\">\r\n {{ col.Label || col.ColumnKey }}\r\n @if (svc.isAttribute(col)) { <span class=\"csl-attribute-tag\">Attribut</span> }\r\n </td>\r\n <td class=\"csl-col-key\">{{ col.ColumnKey }}</td>\r\n </tr>\r\n }\r\n @empty {\r\n <tr><td colspan=\"3\" class=\"csl-empty\">Aucune colonne trouvée</td></tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n\r\n <!-- ── DROITE : colonnes affichées par la vue choisie, dans l'ordre ──── -->\r\n <div class=\"csl-panel csl-panel--selected\">\r\n <div class=\"csl-panel__header\">\r\n <span class=\"csl-panel__label\">Colonnes affichées</span>\r\n @if (svc.selectedCount > 0) {\r\n <span class=\"csl-badge csl-badge--primary\">{{ svc.selectedCount }}</span>\r\n }\r\n </div>\r\n\r\n @if (svc.isLoading) {\r\n <div class=\"csl-loading\">\r\n <span class=\"csl-spinner\"></span>\r\n Chargement des colonnes…\r\n </div>\r\n } @else if (svc.orderedSelection.length === 0) {\r\n <div class=\"csl-ordered-empty\">\r\n <span class=\"csl-ordered-empty__icon fa fa-columns\"></span>\r\n <p>Cochez des colonnes au milieu</p>\r\n </div>\r\n } @else {\r\n <div class=\"csl-ordered-list csl-scroll\"\r\n cdkDropList\r\n [cdkDropListData]=\"svc.orderedSelection\"\r\n (cdkDropListDropped)=\"svc.onDrop($event)\">\r\n @for (col of svc.orderedSelection; track col.ColumnKey) {\r\n <div class=\"csl-ordered-item\" cdkDrag [cdkDragData]=\"col\">\r\n <div class=\"csl-ordered-item__placeholder\" *cdkDragPlaceholder></div>\r\n <span class=\"csl-ordered-item__drag\" cdkDragHandle><i class=\"fa fa-bars\"></i></span>\r\n <span class=\"csl-ordered-item__position\">{{ $index + 1 }}</span>\r\n <span class=\"csl-ordered-item__code\" [class.csl-ordered-item__code--cf]=\"svc.isAttribute(col)\">\r\n {{ col.ColumnKey }}\r\n </span>\r\n <input class=\"csl-ordered-item__desc\" type=\"text\"\r\n [placeholder]=\"svc.getCatalogLabel(col)\"\r\n [(ngModel)]=\"col.Label\"\r\n (click)=\"$event.stopPropagation()\"\r\n title=\"Étiquette personnalisée\">\r\n <button class=\"csl-ordered-item__remove\" type=\"button\"\r\n (click)=\"svc.removeFromSelection(col)\" title=\"Retirer\">&#x2715;</button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- ── Footer ─────────────────────────────────────────────────────────────── -->\r\n<div class=\"csl-footer\">\r\n <span class=\"csl-footer__count\">\r\n @if (svc.message) {\r\n <span class=\"csl-footer__error\">{{ svc.message }}</span>\r\n } @else if (svc.selectedView && svc.tab === 'filters') {\r\n Vue « {{ svc.selectedView.label }} » — filtre enregistré avec la vue\r\n } @else if (svc.selectedView && svc.tab === 'sort') {\r\n Vue « {{ svc.selectedView.label }} » — tri enregistré avec la vue\r\n } @else if (svc.selectedView) {\r\n Vue « {{ svc.selectedView.label }} » — {{ svc.selectedCount }} colonne(s), glissez pour réordonner\r\n }\r\n </span>\r\n <div class=\"csl-footer__actions\">\r\n @if (!svc.isEmbedded) {\r\n <button class=\"csl-btn csl-btn--secondary\" type=\"button\" (click)=\"svc.cancel()\">Annuler</button>\r\n }\r\n <button class=\"csl-btn csl-btn--primary\" type=\"button\"\r\n (click)=\"svc.confirm()\" [disabled]=\"svc.selectedCount === 0 || svc.isSaving || svc.isLoading\">\r\n @if (svc.isSaving) {\r\n <span class=\"csl-spinner csl-spinner--sm csl-spinner--light\"></span>&nbsp;\r\n }\r\n Appliquer\r\n </button>\r\n </div>\r\n</div>\r\n",
778
+ styles: [".home-page{font-family:Open sans,sans-serif;background:#fff;-webkit-font-smoothing:antialiased;height:100%;width:100%;padding:16px}.main-container{margin:0 50px}.main-container-modal{width:calc(100% - 50px);margin:10px 25px 0}.moyen-titre{font-weight:700;font-size:24px;color:#4d5a81;margin:8px 0;border-bottom:solid 1px #DBE4FF}.grand-titre{font-weight:700;font-size:28px;color:#4d5a81;margin:0 0 8px}.petit-titre{font-weight:700;font-size:16px;color:#4d5a81;margin:0 0 8px}.petit-titre.underlined{border-bottom:solid 1px #4D5A81}.paragraph{padding:0 15px}.paragraph-highlight{padding:5px 15px 0 12px;border-left:5px solid #8EA7F8;border-bottom:1px solid #DBE4FF;border-top:1px solid #DBE4FF;border-right:1px solid #DBE4FF;background-color:#f7faff}.highlight{background-color:#f7faff;border:1px solid #DBE4FF;border-radius:5px;padding:15px;color:#3c5dc4;margin:0 0 16px}.highlight p{margin-bottom:0}.highlight:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"53.294\" height=\"50.629\" viewBox=\"0 0 53.294 50.629\">%0D%0A <path id=\"allerg\\e8ne\" d=\"M830.494,25.793l-5.814,6.783.727,8.963-8.721,1.938-4.6,7.752L803.847,47.6l-8.236,3.634-4.6-7.51-8.721-1.938.727-8.963L777.2,26.035l5.814-6.783-.727-8.963,8.721-1.938L795.61.6l8.236,3.634L812.083.6l4.6,7.752,8.721,1.938-.727,8.963Zm-24.467,2.422V13.681h-4.845V28.216Zm0,9.69V33.06h-4.845v4.845Z\" transform=\"translate(-777.2 -0.6)\"/>%0D%0A</svg>%0D%0A');background-repeat:no-repeat;margin:0 8px 24px 0;filter:invert(31%) sepia(51%) saturate(1323%) hue-rotate(199deg) brightness(99%) contrast(94%)}.notification{background-color:#dbe4ff;border:1px solid #C4D0F9;border-radius:5px;color:#4d5a81;margin:16px;padding:5px 15px;text-align:justify}.notification:before{position:relative;display:block;float:left;width:24px;height:24px;content:\" \";background-size:24px 24px;-webkit-background-size:24px 24px;background-image:url('data:image/svg+xml,<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"info-circle\" class=\"svg-inline--fa fa-info-circle fa-w-16\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"currentColor\" d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"></path></svg>');background-repeat:no-repeat;margin:0 8px 0 0;filter:invert(31%) sepia(8%) saturate(2329%) hue-rotate(188deg) brightness(103%) contrast(85%)}.notification-text{padding:0 15px 0 30px;font-size:16px}:host{display:flex;flex-direction:column;height:100%}.csl-header{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 16px;background:#5272d3;border-bottom:1px solid #3C5DC4;flex-shrink:0}.csl-header__left{display:flex;flex-direction:column}.csl-title{font-size:15px;font-weight:600;color:#fff;letter-spacing:-.2px;line-height:1.4;margin:0}.csl-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:#fffc;font-size:14px;cursor:pointer;flex-shrink:0;margin-left:16px;transition:background .1s ease}.csl-icon-btn:hover{background:#ffffff26;color:#fff}.gps-tabs{display:flex;gap:2px}.gps-tab{display:inline-flex;align-items:center;gap:5px;padding:7px 18px;border:none;background:#ffffff1f;color:#ffffffb8;font-size:13px;font-weight:500;cursor:pointer;border-radius:6px 6px 0 0;transition:background .1s ease,color .1s ease}.gps-tab:hover:not(.gps-tab--active){background:#fff3;color:#fff}.gps-tab--active{background:#fff;color:#4465c9;font-weight:600}.csl-body{flex:1;overflow:hidden;padding:16px 20px}.csl-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:200px;color:#535353;font-size:13px}.csl-panels{display:grid;grid-template-columns:240px 1fr 320px;grid-template-rows:minmax(0,1fr);gap:12px;height:calc(70vh - 160px);min-height:380px;overflow:hidden}.csl-panel{min-height:0}.csl-scroll{flex:1 1 auto;min-height:0;overflow-y:auto}.csl-view-icon{margin-right:4px;font-size:11px;color:#888}.csl-view-note{flex-shrink:0;padding:8px 12px;border-top:1px solid #C4D0F9;font-size:11.5px;color:#535353;background:#f5f5f5}.csl-view-note .fa{color:#4465c9;margin-right:4px}.csl-attribute-tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:8px;font-size:10px;font-weight:600;color:#fff;background:#6b7fd4;vertical-align:middle}.csl-group-item--active .gps-profile-actions{opacity:1}.csl-footer__error{color:#dc3545}.csl-panel{display:flex;flex-direction:column;border:1px solid #C4D0F9;border-radius:10px;overflow:hidden;background:#fff}.csl-panel__header{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border-bottom:1px solid #C4D0F9;background:#f5f5f5;flex-shrink:0;gap:8px}.csl-panel__label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.9px;color:#535353;flex-shrink:0}.csl-group-list{list-style:none;margin:0;padding:6px;overflow-y:auto;flex:1}.csl-group-item{display:flex;align-items:center;justify-content:space-between;padding:7px 8px;border-radius:6px;cursor:pointer;transition:background .1s ease;min-height:34px}.csl-group-item:hover{background:#f7faff}.csl-group-item:hover .gps-profile-actions{opacity:1}.csl-group-item--active{background:#ebf0ff}.csl-group-item--active .csl-group-item__name{color:#4465c9;font-weight:600}.csl-group-item--standard{border-left:3px solid #4465C9;padding-left:5px}.csl-group-item--model{border-left:3px solid #6B7FD4;padding-left:5px}.csl-group-item--profile{border-left:3px solid #4465C9;padding-left:5px}.csl-group-item__name{font-size:12.5px;color:#272c5d;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:4px}.csl-group-item__meta{display:flex;align-items:center;gap:4px;flex-shrink:0}.gps-profile-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;opacity:0;transition:opacity .1s ease}.gps-profile-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:none;border-radius:4px;font-size:11px;color:#888;cursor:pointer;padding:0;transition:background .1s,color .1s}.gps-profile-btn:hover{background:#00000014;color:#4465c9}.gps-profile-btn--danger:hover{background:#dc35451a;color:#dc3545}.gps-rename-input{flex:1;height:24px;border:1px solid #4465C9;border-radius:4px;padding:0 6px;font-size:12px;color:#272c5d;background:#fff;outline:none;min-width:0;margin-right:4px}.gps-rename-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.gps-rename-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:4px;font-size:11px;cursor:pointer;padding:0}.gps-rename-btn--ok{background:#4465c9;color:#fff}.gps-rename-btn--ok:hover{background:#3c5dc4}.gps-rename-btn--cancel{background:#00000014;color:#535353}.gps-rename-btn--cancel:hover{background:#00000026}.gps-new-profile{color:#4465c9;font-size:12px;font-weight:500;opacity:.75;justify-content:flex-start;gap:4px}.gps-new-profile:hover{opacity:1;background:#ebf0ff}.csl-group-section-label{padding:8px 8px 4px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#888;list-style:none}.csl-group-divider{height:1px;background:#c4d0f9;margin:6px 8px;list-style:none}.csl-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 5px;border-radius:9px;background:#00000012;color:#535353;font-size:10px;font-weight:600}.csl-badge--primary{background:#4465c9;color:#fff}.csl-badge--sm{height:16px;min-width:16px;font-size:9px;padding:0 4px}.csl-search{flex:1;height:28px;border:1px solid #C4D0F9;border-radius:6px;padding:0 8px;font-size:12px;color:#272c5d;background:#fff;outline:none;transition:border-color .1s ease}.csl-search:focus{border-color:#6684e0}.csl-table-wrap{overflow-y:auto;flex:1}.csl-table{width:100%;border-collapse:collapse;font-size:12.5px}.csl-table thead tr{position:sticky;top:0;z-index:1;background:#f5f5f5}.csl-table thead tr th{padding:8px 10px;text-align:left;font-size:10px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid #C4D0F9;white-space:nowrap}.csl-table tbody tr{border-bottom:1px solid rgba(0,0,0,.04);cursor:pointer;transition:background .1s ease}.csl-table tbody tr:hover{background:#f7faff}.csl-table tbody tr:last-child{border-bottom:none}.csl-table tbody tr td{padding:9px 10px;color:#272c5d}.csl-col-check{width:36px;text-align:center;padding:0 8px!important}.csl-col-check input[type=checkbox]{cursor:pointer;accent-color:#4465C9;width:14px;height:14px}.csl-col-key{font-family:monospace;font-size:11.5px;color:#535353;width:130px}.csl-col-name{font-weight:500}.csl-row--selected{background:#ebf0ff!important}.csl-row--custom-field .csl-col-key{color:#6b7fd4}.csl-empty{text-align:center;padding:32px 16px!important;color:#888;font-size:12.5px}.csl-panel--selected{overflow:hidden}.csl-ordered-list{flex:1;overflow-y:auto;padding:7px}.csl-ordered-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:8px;padding:20px;text-align:center}.csl-ordered-empty__icon{font-size:28px;color:#888;opacity:.35}.csl-ordered-empty p{font-size:12px;color:#535353;margin:0;line-height:1.5}.csl-ordered-item{display:flex;align-items:center;gap:5px;padding:6px 8px 6px 4px;margin-bottom:4px;border:1px solid #C4D0F9;border-radius:6px;background:#fff;transition:border-color .14s ease,background .14s ease}.csl-ordered-item:last-child{margin-bottom:0}.csl-ordered-item:hover{border-color:#8ea7f8;background:#f7faff}.csl-ordered-item__drag{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:20px;color:#888;font-size:11px;cursor:grab;padding:0 2px;-webkit-user-select:none;user-select:none}.csl-ordered-item__drag:active{cursor:grabbing}.csl-ordered-item__position{flex-shrink:0;width:19px;height:19px;border-radius:50%;background:#ebf0ff;color:#4465c9;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.csl-ordered-item__code{flex-shrink:0;width:90px;font-family:monospace;font-size:11px;font-weight:600;color:#535353;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.csl-ordered-item__code--cf{color:#6b7fd4}.csl-ordered-item__desc{flex:1;height:24px;min-width:0;padding:0 6px;border:1px solid transparent;border-radius:4px;font-size:12px;color:#272c5d;background:transparent;transition:border-color .1s,background .1s}.csl-ordered-item__desc::placeholder{color:#888;font-style:italic}.csl-ordered-item__desc:hover{border-color:#c4d0f9;background:#fff}.csl-ordered-item__desc:focus{border-color:#4465c9;background:#fff;outline:none}.csl-ordered-item__remove{flex-shrink:0;background:none;border:none;padding:0 3px;font-size:12px;color:#888;cursor:pointer;line-height:1}.csl-ordered-item__remove:hover{color:#f78383}.csl-ordered-item.cdk-drag-animating{transition:transform .2s cubic-bezier(.25,.8,.25,1)}.csl-ordered-item__placeholder{width:100%;height:38px;border:2px dashed #C4D0F9;border-radius:6px;background:#f7faff}.cdk-drop-list-dragging .csl-ordered-item:not(.cdk-drag-placeholder){transition:transform .2s cubic-bezier(.25,.8,.25,1)}.cdk-drag-preview{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 4px;border-radius:6px;background:#fff;box-shadow:0 4px 16px #4465c92e,0 1px 4px #0000001a;font-size:12px;font-weight:500;color:#272c5d;min-width:180px}.csl-footer{display:flex;align-items:center;justify-content:space-between;padding:13px 22px 16px;border-top:1px solid #C4D0F9;flex-shrink:0}.csl-footer__count{font-size:12px;color:#888;min-width:180px}.csl-footer__actions{display:flex;gap:10px}.csl-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 18px;font-size:13px;font-weight:500;border-radius:6px;cursor:pointer;transition:background .12s ease,opacity .12s ease}.csl-btn--secondary{background:transparent;border:1px solid rgba(0,0,0,.16);color:#535353}.csl-btn--secondary:hover{background:#0000000a}.csl-btn--primary{background:#4465c9;border:1px solid transparent;color:#fff;min-width:130px;justify-content:center}.csl-btn--primary:hover:not([disabled]){background:#3c5dc4}.csl-btn--primary[disabled]{opacity:.42;cursor:not-allowed}.csl-save-prompt{display:flex;align-items:center;gap:10px;width:100%;flex-wrap:wrap}.csl-save-prompt__label{font-size:12.5px;font-weight:500;color:#272c5d;white-space:nowrap}.csl-save-prompt__input{flex:1;min-width:160px;height:32px;padding:0 10px;border:1px solid #C4D0F9;border-radius:6px;font-size:12px;color:#272c5d;background:#fff;outline:none;transition:border-color .1s}.csl-save-prompt__input:focus{border-color:#4465c9}.csl-save-prompt__input[disabled]{opacity:.5}.csl-save-prompt__actions{display:flex;gap:8px;flex-shrink:0}.csl-spinner{display:inline-block;width:14px;height:14px;border:2px solid #DBE4FF;border-top-color:#4465c9;border-radius:50%;animation:gps-spin .65s linear infinite}.csl-spinner--sm{width:11px;height:11px;border-width:2px}.csl-spinner--light{border-color:#ffffff59;border-top-color:#fff}@keyframes gps-spin{to{transform:rotate(360deg)}}.csl-tabbed{flex:2 1 0;min-width:0;display:flex;flex-direction:column;gap:8px}.csl-tabs{display:flex;gap:4px;border-bottom:1px solid #3C5DC4}.csl-tab{position:relative;flex:1 1 0;text-align:center;padding:6px 14px;border:none;border-bottom:2px solid transparent;background:none;color:#6b7591;font:inherit;font-weight:700;cursor:pointer}.csl-tab--active{color:#5272d3;border-bottom-color:#5272d3}.csl-tab-dot{display:inline-block;width:7px;height:7px;margin-left:6px;border-radius:50%;background:var(--orange-algorima, #f59d0f);vertical-align:middle}.csl-panels--inner{flex:1 1 auto;min-height:0}.csl-panel--filters{flex:1 1 auto;min-height:0;overflow:auto}\n"]
778
779
  }]
779
780
  }],
780
781
  ctorParameters: () => [{ type: PresentationProfileService }],
@@ -23409,9 +23410,10 @@ var PpFacadeService = class PpFacadeService {
23409
23410
  purpose: PresentationProfilePurposes.Grid
23410
23411
  }).pipe(take(1), map$1((ctx) => {
23411
23412
  const shown = new Set((ctx?.Resolved ?? []).map((i) => i.ColumnKey));
23413
+ const resolvedLabels = new Map((ctx?.Resolved ?? []).filter((i) => !!i.ColumnKey && !!i.Label).map((i) => [i.ColumnKey, i.Label]));
23412
23414
  return (ctx?.Catalog ?? []).filter((i) => !!i.ColumnKey).map((i) => ({
23413
23415
  key: i.ColumnKey,
23414
- label: i.Label || i.ColumnKey,
23416
+ label: resolvedLabels.get(i.ColumnKey) || i.Label || i.ColumnKey,
23415
23417
  visible: shown.has(i.ColumnKey)
23416
23418
  }));
23417
23419
  }), catchError(() => of([])));