@dflat-core/web 1.7.2073 → 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.
- package/README.md +14 -10
- package/assets/components/bootstrap-lite.scss +1667 -0
- package/assets/components/icons.scss +723 -0
- package/assets/components/modals.scss +154 -0
- package/assets/images/icons/fa/500px.svg +6 -0
- package/assets/images/icons/fa/address-book-o.svg +4 -0
- package/assets/images/icons/fa/address-book.svg +3 -0
- package/assets/images/icons/fa/adjust.svg +1 -0
- package/assets/images/icons/fa/adn.svg +1 -0
- package/assets/images/icons/fa/align-center.svg +2 -0
- package/assets/images/icons/fa/align-justify.svg +2 -0
- package/assets/images/icons/fa/align-left.svg +2 -0
- package/assets/images/icons/fa/align-right.svg +2 -0
- package/assets/images/icons/fa/amazon.svg +5 -0
- package/assets/images/icons/fa/ambulance.svg +3 -0
- package/assets/images/icons/fa/anchor.svg +3 -0
- package/assets/images/icons/fa/android.svg +3 -0
- package/assets/images/icons/fa/angellist.svg +6 -0
- package/assets/images/icons/fa/angle-double-down.svg +2 -0
- package/assets/images/icons/fa/angle-double-left.svg +2 -0
- package/assets/images/icons/fa/angle-double-right.svg +2 -0
- package/assets/images/icons/fa/angle-double-up.svg +2 -0
- package/assets/images/icons/fa/angle-down.svg +1 -0
- package/assets/images/icons/fa/angle-left.svg +1 -0
- package/assets/images/icons/fa/angle-right.svg +1 -0
- package/assets/images/icons/fa/angle-up.svg +1 -0
- package/assets/images/icons/fa/apple.svg +2 -0
- package/assets/images/icons/fa/archive.svg +2 -0
- package/assets/images/icons/fa/area-chart.svg +1 -0
- package/assets/images/icons/fa/arrow-circle-down.svg +2 -0
- package/assets/images/icons/fa/arrow-circle-left.svg +2 -0
- package/assets/images/icons/fa/arrow-circle-o-down.svg +2 -0
- package/assets/images/icons/fa/arrow-circle-o-left.svg +2 -0
- package/assets/images/icons/fa/arrow-circle-o-right.svg +2 -0
- package/assets/images/icons/fa/arrow-circle-o-up.svg +2 -0
- package/assets/images/icons/fa/arrow-circle-right.svg +2 -0
- package/assets/images/icons/fa/arrow-circle-up.svg +2 -0
- package/assets/images/icons/fa/arrow-down.svg +1 -0
- package/assets/images/icons/fa/arrow-left.svg +2 -0
- package/assets/images/icons/fa/arrow-right.svg +1 -0
- package/assets/images/icons/fa/arrow-up.svg +2 -0
- package/assets/images/icons/fa/arrows-alt.svg +3 -0
- package/assets/images/icons/fa/arrows-h.svg +1 -0
- package/assets/images/icons/fa/arrows-v.svg +1 -0
- package/assets/images/icons/fa/arrows.svg +2 -0
- package/assets/images/icons/fa/asl-interpreting.svg +6 -0
- package/assets/images/icons/fa/assistive-listening-systems.svg +5 -0
- package/assets/images/icons/fa/asterisk.svg +2 -0
- package/assets/images/icons/fa/at.svg +4 -0
- package/assets/images/icons/fa/audio-description.svg +5 -0
- package/assets/images/icons/fa/automobile.svg +3 -0
- package/assets/images/icons/fa/backward.svg +1 -0
- package/assets/images/icons/fa/balance-scale.svg +4 -0
- package/assets/images/icons/fa/ban.svg +2 -0
- package/assets/images/icons/fa/bandcamp.svg +1 -0
- package/assets/images/icons/fa/bar-chart-o.svg +1 -0
- package/assets/images/icons/fa/barcode.svg +2 -0
- package/assets/images/icons/fa/bathtub.svg +6 -0
- package/assets/images/icons/fa/battery-0.svg +2 -0
- package/assets/images/icons/fa/battery-1.svg +2 -0
- package/assets/images/icons/fa/battery-2.svg +2 -0
- package/assets/images/icons/fa/battery-3.svg +2 -0
- package/assets/images/icons/fa/battery-4.svg +2 -0
- package/assets/images/icons/fa/beer.svg +1 -0
- package/assets/images/icons/fa/behance-square.svg +3 -0
- package/assets/images/icons/fa/behance.svg +3 -0
- package/assets/images/icons/fa/bell-o.svg +3 -0
- package/assets/images/icons/fa/bell-slash-o.svg +3 -0
- package/assets/images/icons/fa/bell-slash.svg +3 -0
- package/assets/images/icons/fa/bell.svg +2 -0
- package/assets/images/icons/fa/bicycle.svg +4 -0
- package/assets/images/icons/fa/binoculars.svg +2 -0
- package/assets/images/icons/fa/birthday-cake.svg +5 -0
- package/assets/images/icons/fa/bitbucket-square.svg +4 -0
- package/assets/images/icons/fa/bitbucket.svg +4 -0
- package/assets/images/icons/fa/bitcoin.svg +3 -0
- package/assets/images/icons/fa/black-tie.svg +1 -0
- package/assets/images/icons/fa/blind.svg +4 -0
- package/assets/images/icons/fa/bluetooth-b.svg +1 -0
- package/assets/images/icons/fa/bluetooth.svg +2 -0
- package/assets/images/icons/fa/bold.svg +4 -0
- package/assets/images/icons/fa/bomb.svg +4 -0
- package/assets/images/icons/fa/book.svg +4 -0
- package/assets/images/icons/fa/bookmark-o.svg +2 -0
- package/assets/images/icons/fa/bookmark.svg +1 -0
- package/assets/images/icons/fa/braille.svg +7 -0
- package/assets/images/icons/fa/briefcase.svg +2 -0
- package/assets/images/icons/fa/bug.svg +3 -0
- package/assets/images/icons/fa/building-o.svg +10 -0
- package/assets/images/icons/fa/building.svg +8 -0
- package/assets/images/icons/fa/bullhorn.svg +2 -0
- package/assets/images/icons/fa/bullseye.svg +3 -0
- package/assets/images/icons/fa/bus.svg +3 -0
- package/assets/images/icons/fa/buysellads.svg +1 -0
- package/assets/images/icons/fa/cab.svg +3 -0
- package/assets/images/icons/fa/calculator.svg +6 -0
- package/assets/images/icons/fa/calendar-check-o.svg +3 -0
- package/assets/images/icons/fa/calendar-minus-o.svg +3 -0
- package/assets/images/icons/fa/calendar-o.svg +2 -0
- package/assets/images/icons/fa/calendar-plus-o.svg +3 -0
- package/assets/images/icons/fa/calendar-times-o.svg +3 -0
- package/assets/images/icons/fa/calendar.svg +4 -0
- package/assets/images/icons/fa/camera-retro.svg +3 -0
- package/assets/images/icons/fa/camera.svg +2 -0
- package/assets/images/icons/fa/caret-down.svg +1 -0
- package/assets/images/icons/fa/caret-left.svg +1 -0
- package/assets/images/icons/fa/caret-right.svg +1 -0
- package/assets/images/icons/fa/caret-up.svg +1 -0
- package/assets/images/icons/fa/cart-arrow-down.svg +3 -0
- package/assets/images/icons/fa/cart-plus.svg +3 -0
- package/assets/images/icons/fa/cc-amex.svg +9 -0
- package/assets/images/icons/fa/cc-diners-club.svg +3 -0
- package/assets/images/icons/fa/cc-discover.svg +5 -0
- package/assets/images/icons/fa/cc-jcb.svg +4 -0
- package/assets/images/icons/fa/cc-mastercard.svg +11 -0
- package/assets/images/icons/fa/cc-paypal.svg +6 -0
- package/assets/images/icons/fa/cc-stripe.svg +5 -0
- package/assets/images/icons/fa/cc-visa.svg +3 -0
- package/assets/images/icons/fa/cc.svg +4 -0
- package/assets/images/icons/fa/certificate.svg +3 -0
- package/assets/images/icons/fa/chain.svg +4 -0
- package/assets/images/icons/fa/check-circle-o.svg +2 -0
- package/assets/images/icons/fa/check-circle.svg +2 -0
- package/assets/images/icons/fa/check-square-o.svg +3 -0
- package/assets/images/icons/fa/check-square.svg +2 -0
- package/assets/images/icons/fa/check.svg +1 -0
- package/assets/images/icons/fa/chevron-circle-down.svg +2 -0
- package/assets/images/icons/fa/chevron-circle-left.svg +2 -0
- package/assets/images/icons/fa/chevron-circle-right.svg +2 -0
- package/assets/images/icons/fa/chevron-circle-up.svg +2 -0
- package/assets/images/icons/fa/chevron-down.svg +1 -0
- package/assets/images/icons/fa/chevron-left.svg +1 -0
- package/assets/images/icons/fa/chevron-right.svg +1 -0
- package/assets/images/icons/fa/chevron-up.svg +1 -0
- package/assets/images/icons/fa/child.svg +2 -0
- package/assets/images/icons/fa/chrome.svg +2 -0
- package/assets/images/icons/fa/circle-o-notch.svg +2 -0
- package/assets/images/icons/fa/circle-o.svg +2 -0
- package/assets/images/icons/fa/circle-thin.svg +2 -0
- package/assets/images/icons/fa/circle.svg +1 -0
- package/assets/images/icons/fa/clock-o.svg +2 -0
- package/assets/images/icons/fa/clone.svg +2 -0
- package/assets/images/icons/fa/cloud-download.svg +2 -0
- package/assets/images/icons/fa/cloud-upload.svg +2 -0
- package/assets/images/icons/fa/cloud.svg +2 -0
- package/assets/images/icons/fa/cny.svg +2 -0
- package/assets/images/icons/fa/code-fork.svg +3 -0
- package/assets/images/icons/fa/code.svg +2 -0
- package/assets/images/icons/fa/codepen.svg +2 -0
- package/assets/images/icons/fa/codiepie.svg +3 -0
- package/assets/images/icons/fa/coffee.svg +2 -0
- package/assets/images/icons/fa/columns.svg +1 -0
- package/assets/images/icons/fa/comment-o.svg +3 -0
- package/assets/images/icons/fa/comment.svg +2 -0
- package/assets/images/icons/fa/commenting-o.svg +4 -0
- package/assets/images/icons/fa/commenting.svg +3 -0
- package/assets/images/icons/fa/comments-o.svg +4 -0
- package/assets/images/icons/fa/comments.svg +3 -0
- package/assets/images/icons/fa/compass.svg +2 -0
- package/assets/images/icons/fa/compress.svg +2 -0
- package/assets/images/icons/fa/connectdevelop.svg +7 -0
- package/assets/images/icons/fa/contao.svg +3 -0
- package/assets/images/icons/fa/copy.svg +2 -0
- package/assets/images/icons/fa/copyright.svg +3 -0
- package/assets/images/icons/fa/creative-commons.svg +5 -0
- package/assets/images/icons/fa/credit-card-alt.svg +1 -0
- package/assets/images/icons/fa/credit-card.svg +2 -0
- package/assets/images/icons/fa/crop.svg +2 -0
- package/assets/images/icons/fa/crosshairs.svg +3 -0
- package/assets/images/icons/fa/css3.svg +1 -0
- package/assets/images/icons/fa/cube.svg +2 -0
- package/assets/images/icons/fa/cubes.svg +3 -0
- package/assets/images/icons/fa/cut.svg +5 -0
- package/assets/images/icons/fa/cutlery.svg +2 -0
- package/assets/images/icons/fa/dashboard.svg +4 -0
- package/assets/images/icons/fa/dashcube.svg +1 -0
- package/assets/images/icons/fa/database.svg +3 -0
- package/assets/images/icons/fa/deafness.svg +4 -0
- package/assets/images/icons/fa/dedent.svg +3 -0
- package/assets/images/icons/fa/delicious.svg +2 -0
- package/assets/images/icons/fa/desktop.svg +2 -0
- package/assets/images/icons/fa/deviantart.svg +1 -0
- package/assets/images/icons/fa/diamond.svg +2 -0
- package/assets/images/icons/fa/digg.svg +2 -0
- package/assets/images/icons/fa/dollar.svg +4 -0
- package/assets/images/icons/fa/dot-circle-o.svg +2 -0
- package/assets/images/icons/fa/download.svg +2 -0
- package/assets/images/icons/fa/dribbble.svg +4 -0
- package/assets/images/icons/fa/drivers-license-o.svg +4 -0
- package/assets/images/icons/fa/drivers-license.svg +4 -0
- package/assets/images/icons/fa/dropbox.svg +1 -0
- package/assets/images/icons/fa/drupal.svg +5 -0
- package/assets/images/icons/fa/edge.svg +2 -0
- package/assets/images/icons/fa/edit.svg +3 -0
- package/assets/images/icons/fa/eercast.svg +5 -0
- package/assets/images/icons/fa/eject.svg +1 -0
- package/assets/images/icons/fa/ellipsis-h.svg +2 -0
- package/assets/images/icons/fa/ellipsis-v.svg +2 -0
- package/assets/images/icons/fa/envelope-o.svg +3 -0
- package/assets/images/icons/fa/envelope-open-o.svg +4 -0
- package/assets/images/icons/fa/envelope-open.svg +3 -0
- package/assets/images/icons/fa/envelope-square.svg +3 -0
- package/assets/images/icons/fa/envelope.svg +2 -0
- package/assets/images/icons/fa/envira.svg +3 -0
- package/assets/images/icons/fa/eraser.svg +1 -0
- package/assets/images/icons/fa/etsy.svg +3 -0
- package/assets/images/icons/fa/euro.svg +3 -0
- package/assets/images/icons/fa/exchange.svg +2 -0
- package/assets/images/icons/fa/exclamation-circle.svg +2 -0
- package/assets/images/icons/fa/exclamation.svg +1 -0
- package/assets/images/icons/fa/expand.svg +2 -0
- package/assets/images/icons/fa/expeditedssl.svg +5 -0
- package/assets/images/icons/fa/external-link-square.svg +2 -0
- package/assets/images/icons/fa/external-link.svg +2 -0
- package/assets/images/icons/fa/eye-slash.svg +4 -0
- package/assets/images/icons/fa/eye.svg +2 -0
- package/assets/images/icons/fa/eyedropper.svg +2 -0
- package/assets/images/icons/fa/fa.svg +2 -0
- package/assets/images/icons/fa/facebook-f.svg +1 -0
- package/assets/images/icons/fa/facebook-official.svg +1 -0
- package/assets/images/icons/fa/facebook-square.svg +2 -0
- package/assets/images/icons/fa/fast-backward.svg +2 -0
- package/assets/images/icons/fa/fast-forward.svg +2 -0
- package/assets/images/icons/fa/fax.svg +5 -0
- package/assets/images/icons/fa/feed.svg +3 -0
- package/assets/images/icons/fa/female.svg +2 -0
- package/assets/images/icons/fa/fighter-jet.svg +2 -0
- package/assets/images/icons/fa/file-code-o.svg +3 -0
- package/assets/images/icons/fa/file-excel-o.svg +3 -0
- package/assets/images/icons/fa/file-movie-o.svg +2 -0
- package/assets/images/icons/fa/file-o.svg +2 -0
- package/assets/images/icons/fa/file-pdf-o.svg +4 -0
- package/assets/images/icons/fa/file-photo-o.svg +2 -0
- package/assets/images/icons/fa/file-powerpoint-o.svg +2 -0
- package/assets/images/icons/fa/file-sound-o.svg +3 -0
- package/assets/images/icons/fa/file-text-o.svg +3 -0
- package/assets/images/icons/fa/file-text.svg +2 -0
- package/assets/images/icons/fa/file-word-o.svg +3 -0
- package/assets/images/icons/fa/file-zip-o.svg +3 -0
- package/assets/images/icons/fa/file.svg +1 -0
- package/assets/images/icons/fa/film.svg +5 -0
- package/assets/images/icons/fa/filter.svg +1 -0
- package/assets/images/icons/fa/fire-extinguisher.svg +3 -0
- package/assets/images/icons/fa/fire.svg +2 -0
- package/assets/images/icons/fa/firefox.svg +3 -0
- package/assets/images/icons/fa/first-order.svg +4 -0
- package/assets/images/icons/fa/flag-checkered.svg +4 -0
- package/assets/images/icons/fa/flag-o.svg +3 -0
- package/assets/images/icons/fa/flag.svg +2 -0
- package/assets/images/icons/fa/flash.svg +1 -0
- package/assets/images/icons/fa/flask.svg +1 -0
- package/assets/images/icons/fa/flickr.svg +2 -0
- package/assets/images/icons/fa/folder-o.svg +2 -0
- package/assets/images/icons/fa/folder-open-o.svg +3 -0
- package/assets/images/icons/fa/folder-open.svg +2 -0
- package/assets/images/icons/fa/folder.svg +1 -0
- package/assets/images/icons/fa/font.svg +3 -0
- package/assets/images/icons/fa/fonticons.svg +3 -0
- package/assets/images/icons/fa/fort-awesome.svg +4 -0
- package/assets/images/icons/fa/forumbee.svg +2 -0
- package/assets/images/icons/fa/forward.svg +1 -0
- package/assets/images/icons/fa/foursquare.svg +3 -0
- package/assets/images/icons/fa/free-code-camp.svg +7 -0
- package/assets/images/icons/fa/frown-o.svg +3 -0
- package/assets/images/icons/fa/gamepad.svg +3 -0
- package/assets/images/icons/fa/gbp.svg +2 -0
- package/assets/images/icons/fa/ge.svg +6 -0
- package/assets/images/icons/fa/gear.svg +4 -0
- package/assets/images/icons/fa/gears.svg +8 -0
- package/assets/images/icons/fa/genderless.svg +2 -0
- package/assets/images/icons/fa/get-pocket.svg +2 -0
- package/assets/images/icons/fa/gg-circle.svg +2 -0
- package/assets/images/icons/fa/gg.svg +1 -0
- package/assets/images/icons/fa/gift.svg +3 -0
- package/assets/images/icons/fa/git-square.svg +4 -0
- package/assets/images/icons/fa/git.svg +4 -0
- package/assets/images/icons/fa/github-alt.svg +4 -0
- package/assets/images/icons/fa/github-square.svg +5 -0
- package/assets/images/icons/fa/github.svg +5 -0
- package/assets/images/icons/fa/gitlab.svg +1 -0
- package/assets/images/icons/fa/gittip.svg +2 -0
- package/assets/images/icons/fa/glass.svg +1 -0
- package/assets/images/icons/fa/glide-g.svg +4 -0
- package/assets/images/icons/fa/glide.svg +4 -0
- package/assets/images/icons/fa/globe.svg +15 -0
- package/assets/images/icons/fa/google-plus-circle.svg +2 -0
- package/assets/images/icons/fa/google-plus-square.svg +2 -0
- package/assets/images/icons/fa/google-plus.svg +2 -0
- package/assets/images/icons/fa/google-wallet.svg +2 -0
- package/assets/images/icons/fa/google.svg +2 -0
- package/assets/images/icons/fa/grav.svg +7 -0
- package/assets/images/icons/fa/group.svg +4 -0
- package/assets/images/icons/fa/h-square.svg +2 -0
- package/assets/images/icons/fa/hand-grab-o.svg +4 -0
- package/assets/images/icons/fa/hand-lizard-o.svg +3 -0
- package/assets/images/icons/fa/hand-o-down.svg +4 -0
- package/assets/images/icons/fa/hand-o-left.svg +4 -0
- package/assets/images/icons/fa/hand-o-right.svg +4 -0
- package/assets/images/icons/fa/hand-o-up.svg +4 -0
- package/assets/images/icons/fa/hand-peace-o.svg +5 -0
- package/assets/images/icons/fa/hand-pointer-o.svg +4 -0
- package/assets/images/icons/fa/hand-scissors-o.svg +5 -0
- package/assets/images/icons/fa/hand-spock-o.svg +4 -0
- package/assets/images/icons/fa/hand-stop-o.svg +3 -0
- package/assets/images/icons/fa/handshake-o.svg +5 -0
- package/assets/images/icons/fa/hashtag.svg +3 -0
- package/assets/images/icons/fa/hdd-o.svg +3 -0
- package/assets/images/icons/fa/header.svg +5 -0
- package/assets/images/icons/fa/headphones.svg +3 -0
- package/assets/images/icons/fa/heart-o.svg +3 -0
- package/assets/images/icons/fa/heart.svg +2 -0
- package/assets/images/icons/fa/heartbeat.svg +3 -0
- package/assets/images/icons/fa/history.svg +3 -0
- package/assets/images/icons/fa/home.svg +2 -0
- package/assets/images/icons/fa/hospital-o.svg +8 -0
- package/assets/images/icons/fa/hotel.svg +2 -0
- package/assets/images/icons/fa/hourglass-1.svg +2 -0
- package/assets/images/icons/fa/hourglass-2.svg +2 -0
- package/assets/images/icons/fa/hourglass-3.svg +3 -0
- package/assets/images/icons/fa/hourglass-o.svg +3 -0
- package/assets/images/icons/fa/hourglass.svg +3 -0
- package/assets/images/icons/fa/houzz.svg +1 -0
- package/assets/images/icons/fa/html5.svg +1 -0
- package/assets/images/icons/fa/i-cursor.svg +1 -0
- package/assets/images/icons/fa/id-badge.svg +3 -0
- package/assets/images/icons/fa/imdb.svg +4 -0
- package/assets/images/icons/fa/inbox.svg +2 -0
- package/assets/images/icons/fa/indent.svg +3 -0
- package/assets/images/icons/fa/industry.svg +1 -0
- package/assets/images/icons/fa/info-circle.svg +2 -0
- package/assets/images/icons/fa/info.svg +2 -0
- package/assets/images/icons/fa/instagram.svg +4 -0
- package/assets/images/icons/fa/institution.svg +2 -0
- package/assets/images/icons/fa/internet-explorer.svg +3 -0
- package/assets/images/icons/fa/intersex.svg +3 -0
- package/assets/images/icons/fa/ioxhost.svg +3 -0
- package/assets/images/icons/fa/italic.svg +2 -0
- package/assets/images/icons/fa/joomla.svg +5 -0
- package/assets/images/icons/fa/jsfiddle.svg +3 -0
- package/assets/images/icons/fa/key.svg +3 -0
- package/assets/images/icons/fa/keyboard-o.svg +5 -0
- package/assets/images/icons/fa/language.svg +6 -0
- package/assets/images/icons/fa/laptop.svg +2 -0
- package/assets/images/icons/fa/lastfm-square.svg +4 -0
- package/assets/images/icons/fa/lastfm.svg +4 -0
- package/assets/images/icons/fa/leaf.svg +3 -0
- package/assets/images/icons/fa/leanpub.svg +3 -0
- package/assets/images/icons/fa/legal.svg +4 -0
- package/assets/images/icons/fa/lemon-o.svg +4 -0
- package/assets/images/icons/fa/level-down.svg +1 -0
- package/assets/images/icons/fa/level-up.svg +1 -0
- package/assets/images/icons/fa/life-bouy.svg +3 -0
- package/assets/images/icons/fa/lightbulb-o.svg +4 -0
- package/assets/images/icons/fa/line-chart.svg +2 -0
- package/assets/images/icons/fa/linkedin-square.svg +2 -0
- package/assets/images/icons/fa/linkedin.svg +2 -0
- package/assets/images/icons/fa/linode.svg +4 -0
- package/assets/images/icons/fa/linux.svg +16 -0
- package/assets/images/icons/fa/list-alt.svg +5 -0
- package/assets/images/icons/fa/list-ol.svg +4 -0
- package/assets/images/icons/fa/list-ul.svg +3 -0
- package/assets/images/icons/fa/list.svg +5 -0
- package/assets/images/icons/fa/location-arrow.svg +1 -0
- package/assets/images/icons/fa/lock.svg +1 -0
- package/assets/images/icons/fa/long-arrow-down.svg +1 -0
- package/assets/images/icons/fa/long-arrow-left.svg +1 -0
- package/assets/images/icons/fa/long-arrow-right.svg +1 -0
- package/assets/images/icons/fa/long-arrow-up.svg +1 -0
- package/assets/images/icons/fa/low-vision.svg +4 -0
- package/assets/images/icons/fa/magic.svg +2 -0
- package/assets/images/icons/fa/magnet.svg +2 -0
- package/assets/images/icons/fa/mail-forward.svg +2 -0
- package/assets/images/icons/fa/mail-reply-all.svg +2 -0
- package/assets/images/icons/fa/mail-reply.svg +2 -0
- package/assets/images/icons/fa/male.svg +2 -0
- package/assets/images/icons/fa/map-marker.svg +1 -0
- package/assets/images/icons/fa/map-o.svg +2 -0
- package/assets/images/icons/fa/map-pin.svg +2 -0
- package/assets/images/icons/fa/map-signs.svg +2 -0
- package/assets/images/icons/fa/map.svg +2 -0
- package/assets/images/icons/fa/mars-double.svg +4 -0
- package/assets/images/icons/fa/mars-stroke-h.svg +3 -0
- package/assets/images/icons/fa/mars-stroke-v.svg +3 -0
- package/assets/images/icons/fa/mars-stroke.svg +3 -0
- package/assets/images/icons/fa/mars.svg +2 -0
- package/assets/images/icons/fa/maxcdn.svg +1 -0
- package/assets/images/icons/fa/meanpath.svg +3 -0
- package/assets/images/icons/fa/medium.svg +2 -0
- package/assets/images/icons/fa/medkit.svg +2 -0
- package/assets/images/icons/fa/meetup.svg +9 -0
- package/assets/images/icons/fa/meh-o.svg +3 -0
- package/assets/images/icons/fa/mercury.svg +3 -0
- package/assets/images/icons/fa/microchip.svg +5 -0
- package/assets/images/icons/fa/microphone-slash.svg +3 -0
- package/assets/images/icons/fa/microphone.svg +2 -0
- package/assets/images/icons/fa/minus-circle.svg +2 -0
- package/assets/images/icons/fa/minus-square-o.svg +2 -0
- package/assets/images/icons/fa/minus-square.svg +2 -0
- package/assets/images/icons/fa/minus.svg +1 -0
- package/assets/images/icons/fa/mixcloud.svg +4 -0
- package/assets/images/icons/fa/mobile-phone.svg +2 -0
- package/assets/images/icons/fa/modx.svg +1 -0
- package/assets/images/icons/fa/money.svg +2 -0
- package/assets/images/icons/fa/moon-o.svg +2 -0
- package/assets/images/icons/fa/mortar-board.svg +2 -0
- package/assets/images/icons/fa/motorcycle.svg +4 -0
- package/assets/images/icons/fa/mouse-pointer.svg +1 -0
- package/assets/images/icons/fa/music.svg +2 -0
- package/assets/images/icons/fa/navicon.svg +2 -0
- package/assets/images/icons/fa/neuter.svg +2 -0
- package/assets/images/icons/fa/newspaper-o.svg +2 -0
- package/assets/images/icons/fa/object-group.svg +2 -0
- package/assets/images/icons/fa/object-ungroup.svg +2 -0
- package/assets/images/icons/fa/odnoklassniki-square.svg +3 -0
- package/assets/images/icons/fa/odnoklassniki.svg +3 -0
- package/assets/images/icons/fa/opencart.svg +3 -0
- package/assets/images/icons/fa/openid.svg +1 -0
- package/assets/images/icons/fa/opera.svg +3 -0
- package/assets/images/icons/fa/optin-monster.svg +17 -0
- package/assets/images/icons/fa/pagelines.svg +4 -0
- package/assets/images/icons/fa/paint-brush.svg +2 -0
- package/assets/images/icons/fa/paperclip.svg +3 -0
- package/assets/images/icons/fa/paragraph.svg +2 -0
- package/assets/images/icons/fa/paste.svg +2 -0
- package/assets/images/icons/fa/pause-circle-o.svg +2 -0
- package/assets/images/icons/fa/pause-circle.svg +2 -0
- package/assets/images/icons/fa/pause.svg +1 -0
- package/assets/images/icons/fa/paw.svg +4 -0
- package/assets/images/icons/fa/paypal.svg +3 -0
- package/assets/images/icons/fa/pencil-square.svg +2 -0
- package/assets/images/icons/fa/pencil.svg +2 -0
- package/assets/images/icons/fa/percent.svg +3 -0
- package/assets/images/icons/fa/phone-square.svg +4 -0
- package/assets/images/icons/fa/phone.svg +3 -0
- package/assets/images/icons/fa/photo.svg +2 -0
- package/assets/images/icons/fa/pie-chart.svg +1 -0
- package/assets/images/icons/fa/pied-piper-alt.svg +8 -0
- package/assets/images/icons/fa/pied-piper-pp.svg +3 -0
- package/assets/images/icons/fa/pied-piper.svg +3 -0
- package/assets/images/icons/fa/pinterest-p.svg +3 -0
- package/assets/images/icons/fa/pinterest-square.svg +3 -0
- package/assets/images/icons/fa/pinterest.svg +3 -0
- package/assets/images/icons/fa/plane.svg +2 -0
- package/assets/images/icons/fa/play-circle-o.svg +2 -0
- package/assets/images/icons/fa/play-circle.svg +2 -0
- package/assets/images/icons/fa/play.svg +1 -0
- package/assets/images/icons/fa/plug.svg +2 -0
- package/assets/images/icons/fa/plus-circle.svg +2 -0
- package/assets/images/icons/fa/plus-square-o.svg +2 -0
- package/assets/images/icons/fa/plus-square.svg +2 -0
- package/assets/images/icons/fa/plus.svg +1 -0
- package/assets/images/icons/fa/podcast.svg +5 -0
- package/assets/images/icons/fa/power-off.svg +2 -0
- package/assets/images/icons/fa/print.svg +2 -0
- package/assets/images/icons/fa/product-hunt.svg +2 -0
- package/assets/images/icons/fa/puzzle-piece.svg +4 -0
- package/assets/images/icons/fa/qq.svg +4 -0
- package/assets/images/icons/fa/qrcode.svg +2 -0
- package/assets/images/icons/fa/question-circle-o.svg +4 -0
- package/assets/images/icons/fa/question-circle.svg +3 -0
- package/assets/images/icons/fa/question.svg +2 -0
- package/assets/images/icons/fa/quora.svg +3 -0
- package/assets/images/icons/fa/quote-left.svg +2 -0
- package/assets/images/icons/fa/quote-right.svg +2 -0
- package/assets/images/icons/fa/ra.svg +4 -0
- package/assets/images/icons/fa/random.svg +4 -0
- package/assets/images/icons/fa/ravelry.svg +6 -0
- package/assets/images/icons/fa/recycle.svg +4 -0
- package/assets/images/icons/fa/reddit-alien.svg +4 -0
- package/assets/images/icons/fa/reddit-square.svg +4 -0
- package/assets/images/icons/fa/reddit.svg +4 -0
- package/assets/images/icons/fa/refresh.svg +3 -0
- package/assets/images/icons/fa/registered.svg +3 -0
- package/assets/images/icons/fa/remove.svg +2 -0
- package/assets/images/icons/fa/renren.svg +2 -0
- package/assets/images/icons/fa/retweet.svg +3 -0
- package/assets/images/icons/fa/road.svg +2 -0
- package/assets/images/icons/fa/rocket.svg +2 -0
- package/assets/images/icons/fa/rotate-left.svg +2 -0
- package/assets/images/icons/fa/rotate-right.svg +2 -0
- package/assets/images/icons/fa/rss-square.svg +3 -0
- package/assets/images/icons/fa/ruble.svg +2 -0
- package/assets/images/icons/fa/rupee.svg +2 -0
- package/assets/images/icons/fa/safari.svg +6 -0
- package/assets/images/icons/fa/save.svg +2 -0
- package/assets/images/icons/fa/scribd.svg +4 -0
- package/assets/images/icons/fa/search-minus.svg +3 -0
- package/assets/images/icons/fa/search-plus.svg +3 -0
- package/assets/images/icons/fa/search.svg +2 -0
- package/assets/images/icons/fa/sellsy.svg +3 -0
- package/assets/images/icons/fa/send-o.svg +2 -0
- package/assets/images/icons/fa/send.svg +1 -0
- package/assets/images/icons/fa/server.svg +2 -0
- package/assets/images/icons/fa/share-alt-square.svg +2 -0
- package/assets/images/icons/fa/share-alt.svg +2 -0
- package/assets/images/icons/fa/share-square-o.svg +3 -0
- package/assets/images/icons/fa/share-square.svg +2 -0
- package/assets/images/icons/fa/shekel.svg +2 -0
- package/assets/images/icons/fa/shield.svg +2 -0
- package/assets/images/icons/fa/ship.svg +5 -0
- package/assets/images/icons/fa/shirtsinbulk.svg +7 -0
- package/assets/images/icons/fa/shopping-bag.svg +2 -0
- package/assets/images/icons/fa/shopping-basket.svg +4 -0
- package/assets/images/icons/fa/shopping-cart.svg +2 -0
- package/assets/images/icons/fa/shower.svg +6 -0
- package/assets/images/icons/fa/sign-in.svg +2 -0
- package/assets/images/icons/fa/sign-out.svg +2 -0
- package/assets/images/icons/fa/signal.svg +2 -0
- package/assets/images/icons/fa/signing.svg +5 -0
- package/assets/images/icons/fa/simplybuilt.svg +2 -0
- package/assets/images/icons/fa/sitemap.svg +3 -0
- package/assets/images/icons/fa/skyatlas.svg +4 -0
- package/assets/images/icons/fa/skype.svg +4 -0
- package/assets/images/icons/fa/slack.svg +3 -0
- package/assets/images/icons/fa/sliders.svg +2 -0
- package/assets/images/icons/fa/slideshare.svg +4 -0
- package/assets/images/icons/fa/smile-o.svg +3 -0
- package/assets/images/icons/fa/snapchat-ghost.svg +3 -0
- package/assets/images/icons/fa/snapchat-square.svg +4 -0
- package/assets/images/icons/fa/snapchat.svg +4 -0
- package/assets/images/icons/fa/snowflake-o.svg +5 -0
- package/assets/images/icons/fa/soccer-ball-o.svg +2 -0
- package/assets/images/icons/fa/sort-alpha-asc.svg +3 -0
- package/assets/images/icons/fa/sort-alpha-desc.svg +3 -0
- package/assets/images/icons/fa/sort-amount-asc.svg +3 -0
- package/assets/images/icons/fa/sort-amount-desc.svg +3 -0
- package/assets/images/icons/fa/sort-down.svg +1 -0
- package/assets/images/icons/fa/sort-numeric-asc.svg +3 -0
- package/assets/images/icons/fa/sort-numeric-desc.svg +3 -0
- package/assets/images/icons/fa/sort-up.svg +1 -0
- package/assets/images/icons/fa/soundcloud.svg +7 -0
- package/assets/images/icons/fa/space-shuttle.svg +3 -0
- package/assets/images/icons/fa/spinner.svg +4 -0
- package/assets/images/icons/fa/spoon.svg +1 -0
- package/assets/images/icons/fa/spotify.svg +3 -0
- package/assets/images/icons/fa/square-o.svg +2 -0
- package/assets/images/icons/fa/square.svg +1 -0
- package/assets/images/icons/fa/stack-exchange.svg +2 -0
- package/assets/images/icons/fa/stack-overflow.svg +1 -0
- package/assets/images/icons/fa/star-half-empty.svg +2 -0
- package/assets/images/icons/fa/star-half.svg +1 -0
- package/assets/images/icons/fa/star-o.svg +2 -0
- package/assets/images/icons/fa/star.svg +2 -0
- package/assets/images/icons/fa/steam-square.svg +4 -0
- package/assets/images/icons/fa/steam.svg +3 -0
- package/assets/images/icons/fa/step-backward.svg +1 -0
- package/assets/images/icons/fa/step-forward.svg +1 -0
- package/assets/images/icons/fa/stethoscope.svg +3 -0
- package/assets/images/icons/fa/sticky-note-o.svg +2 -0
- package/assets/images/icons/fa/sticky-note.svg +1 -0
- package/assets/images/icons/fa/stop-circle-o.svg +2 -0
- package/assets/images/icons/fa/stop-circle.svg +2 -0
- package/assets/images/icons/fa/stop.svg +1 -0
- package/assets/images/icons/fa/street-view.svg +4 -0
- package/assets/images/icons/fa/strikethrough.svg +3 -0
- package/assets/images/icons/fa/stumbleupon-circle.svg +3 -0
- package/assets/images/icons/fa/stumbleupon.svg +2 -0
- package/assets/images/icons/fa/subscript.svg +3 -0
- package/assets/images/icons/fa/subway.svg +2 -0
- package/assets/images/icons/fa/suitcase.svg +2 -0
- package/assets/images/icons/fa/sun-o.svg +3 -0
- package/assets/images/icons/fa/superpowers.svg +2 -0
- package/assets/images/icons/fa/superscript.svg +3 -0
- package/assets/images/icons/fa/table.svg +5 -0
- package/assets/images/icons/fa/tablet.svg +2 -0
- package/assets/images/icons/fa/tag.svg +2 -0
- package/assets/images/icons/fa/tags.svg +2 -0
- package/assets/images/icons/fa/tasks.svg +2 -0
- package/assets/images/icons/fa/telegram.svg +2 -0
- package/assets/images/icons/fa/tencent-weibo.svg +3 -0
- package/assets/images/icons/fa/terminal.svg +2 -0
- package/assets/images/icons/fa/text-height.svg +4 -0
- package/assets/images/icons/fa/text-width.svg +5 -0
- package/assets/images/icons/fa/th-large.svg +2 -0
- package/assets/images/icons/fa/th-list.svg +3 -0
- package/assets/images/icons/fa/th.svg +4 -0
- package/assets/images/icons/fa/themeisle.svg +8 -0
- package/assets/images/icons/fa/thermometer-0.svg +2 -0
- package/assets/images/icons/fa/thermometer-1.svg +3 -0
- package/assets/images/icons/fa/thermometer-2.svg +3 -0
- package/assets/images/icons/fa/thermometer-3.svg +3 -0
- package/assets/images/icons/fa/thermometer-4.svg +3 -0
- package/assets/images/icons/fa/thumb-tack.svg +2 -0
- package/assets/images/icons/fa/thumbs-down.svg +3 -0
- package/assets/images/icons/fa/thumbs-o-down.svg +4 -0
- package/assets/images/icons/fa/thumbs-o-up.svg +4 -0
- package/assets/images/icons/fa/thumbs-up.svg +3 -0
- package/assets/images/icons/fa/ticket.svg +2 -0
- package/assets/images/icons/fa/times-circle-o.svg +3 -0
- package/assets/images/icons/fa/times-circle.svg +2 -0
- package/assets/images/icons/fa/times-rectangle-o.svg +2 -0
- package/assets/images/icons/fa/times-rectangle.svg +2 -0
- package/assets/images/icons/fa/tint.svg +2 -0
- package/assets/images/icons/fa/toggle-down.svg +2 -0
- package/assets/images/icons/fa/toggle-left.svg +2 -0
- package/assets/images/icons/fa/toggle-off.svg +3 -0
- package/assets/images/icons/fa/toggle-on.svg +2 -0
- package/assets/images/icons/fa/toggle-right.svg +2 -0
- package/assets/images/icons/fa/toggle-up.svg +2 -0
- package/assets/images/icons/fa/trademark.svg +3 -0
- package/assets/images/icons/fa/train.svg +2 -0
- package/assets/images/icons/fa/transgender-alt.svg +4 -0
- package/assets/images/icons/fa/trash-o.svg +3 -0
- package/assets/images/icons/fa/trash.svg +3 -0
- package/assets/images/icons/fa/tree.svg +2 -0
- package/assets/images/icons/fa/trello.svg +2 -0
- package/assets/images/icons/fa/tripadvisor.svg +6 -0
- package/assets/images/icons/fa/trophy.svg +3 -0
- package/assets/images/icons/fa/truck.svg +3 -0
- package/assets/images/icons/fa/tty.svg +5 -0
- package/assets/images/icons/fa/tumblr-square.svg +2 -0
- package/assets/images/icons/fa/tumblr.svg +2 -0
- package/assets/images/icons/fa/turkish-lira.svg +2 -0
- package/assets/images/icons/fa/tv.svg +2 -0
- package/assets/images/icons/fa/twitch.svg +1 -0
- package/assets/images/icons/fa/twitter-square.svg +3 -0
- package/assets/images/icons/fa/twitter.svg +2 -0
- package/assets/images/icons/fa/umbrella.svg +3 -0
- package/assets/images/icons/fa/underline.svg +4 -0
- package/assets/images/icons/fa/universal-access.svg +4 -0
- package/assets/images/icons/fa/unlink.svg +4 -0
- package/assets/images/icons/fa/unlock-alt.svg +2 -0
- package/assets/images/icons/fa/unlock.svg +2 -0
- package/assets/images/icons/fa/unsorted.svg +1 -0
- package/assets/images/icons/fa/upload.svg +2 -0
- package/assets/images/icons/fa/usb.svg +3 -0
- package/assets/images/icons/fa/user-circle-o.svg +2 -0
- package/assets/images/icons/fa/user-circle.svg +2 -0
- package/assets/images/icons/fa/user-md.svg +4 -0
- package/assets/images/icons/fa/user-o.svg +3 -0
- package/assets/images/icons/fa/user-plus.svg +3 -0
- package/assets/images/icons/fa/user-secret.svg +4 -0
- package/assets/images/icons/fa/user-times.svg +3 -0
- package/assets/images/icons/fa/user.svg +2 -0
- package/assets/images/icons/fa/vcard-o.svg +5 -0
- package/assets/images/icons/fa/vcard.svg +4 -0
- package/assets/images/icons/fa/venus-double.svg +4 -0
- package/assets/images/icons/fa/venus-mars.svg +4 -0
- package/assets/images/icons/fa/venus.svg +2 -0
- package/assets/images/icons/fa/viacoin.svg +1 -0
- package/assets/images/icons/fa/viadeo-square.svg +4 -0
- package/assets/images/icons/fa/viadeo.svg +3 -0
- package/assets/images/icons/fa/video-camera.svg +2 -0
- package/assets/images/icons/fa/vimeo-square.svg +2 -0
- package/assets/images/icons/fa/vimeo.svg +2 -0
- package/assets/images/icons/fa/vine.svg +2 -0
- package/assets/images/icons/fa/vk.svg +5 -0
- package/assets/images/icons/fa/volume-control-phone.svg +5 -0
- package/assets/images/icons/fa/volume-down.svg +2 -0
- package/assets/images/icons/fa/volume-off.svg +1 -0
- package/assets/images/icons/fa/volume-up.svg +4 -0
- package/assets/images/icons/fa/warning.svg +2 -0
- package/assets/images/icons/fa/wechat.svg +4 -0
- package/assets/images/icons/fa/weibo.svg +5 -0
- package/assets/images/icons/fa/whatsapp.svg +3 -0
- package/assets/images/icons/fa/wheelchair-alt.svg +3 -0
- package/assets/images/icons/fa/wheelchair.svg +2 -0
- package/assets/images/icons/fa/wifi.svg +3 -0
- package/assets/images/icons/fa/wikipedia-w.svg +3 -0
- package/assets/images/icons/fa/window-maximize.svg +1 -0
- package/assets/images/icons/fa/window-minimize.svg +1 -0
- package/assets/images/icons/fa/window-restore.svg +2 -0
- package/assets/images/icons/fa/windows.svg +1 -0
- package/assets/images/icons/fa/won.svg +3 -0
- package/assets/images/icons/fa/wordpress.svg +5 -0
- package/assets/images/icons/fa/wpbeginner.svg +2 -0
- package/assets/images/icons/fa/wpexplorer.svg +3 -0
- package/assets/images/icons/fa/wpforms.svg +2 -0
- package/assets/images/icons/fa/wrench.svg +2 -0
- package/assets/images/icons/fa/xing-square.svg +2 -0
- package/assets/images/icons/fa/xing.svg +2 -0
- package/assets/images/icons/fa/y-combinator-square.svg +1 -0
- package/assets/images/icons/fa/yahoo.svg +2 -0
- package/assets/images/icons/fa/yc.svg +1 -0
- package/assets/images/icons/fa/yelp.svg +4 -0
- package/assets/images/icons/fa/yoast.svg +2 -0
- package/assets/images/icons/fa/youtube-play.svg +3 -0
- package/assets/images/icons/fa/youtube-square.svg +6 -0
- package/assets/images/icons/fa/youtube.svg +5 -0
- package/assets/site.scss +1 -0
- package/assets/{bootswatch.scss → theme-variables.scss} +2 -2
- package/assets/theme.scss +146 -0
- package/assets/variables.scss +3 -3
- package/fesm2022/dflat-core-web-core-data.mjs +6 -10
- package/fesm2022/dflat-core-web-core-data.mjs.map +1 -1
- package/fesm2022/dflat-core-web-core-model.mjs.map +1 -1
- package/fesm2022/dflat-core-web-core-ux-testing.mjs +5 -1
- package/fesm2022/dflat-core-web-core-ux-testing.mjs.map +1 -1
- package/fesm2022/dflat-core-web-core-ux.mjs +4338 -987
- package/fesm2022/dflat-core-web-core-ux.mjs.map +1 -1
- package/fesm2022/dflat-core-web-core.mjs +102 -7
- package/fesm2022/dflat-core-web-core.mjs.map +1 -1
- package/fesm2022/dflat-core-web-system-data.mjs +35 -0
- package/fesm2022/dflat-core-web-system-data.mjs.map +1 -1
- package/fesm2022/dflat-core-web-system-model.mjs +11 -1
- package/fesm2022/dflat-core-web-system-model.mjs.map +1 -1
- package/fesm2022/dflat-core-web-system-root.mjs +2 -2
- package/fesm2022/dflat-core-web-system-root.mjs.map +1 -1
- package/fesm2022/dflat-core-web-system-ux.mjs +3195 -1060
- package/fesm2022/dflat-core-web-system-ux.mjs.map +1 -1
- package/package.json +1 -8
- package/scss/dflat-app.scss +10 -11
- package/types/dflat-core-web-core-data.d.ts +11 -3
- package/types/dflat-core-web-core-model.d.ts +6 -9
- package/types/dflat-core-web-core-ux-testing.d.ts +6 -2
- package/types/dflat-core-web-core-ux.d.ts +1538 -98
- package/types/dflat-core-web-core.d.ts +58 -0
- package/types/dflat-core-web-system-data.d.ts +8 -1
- package/types/dflat-core-web-system-model.d.ts +466 -2
- package/types/dflat-core-web-system-ux.d.ts +286 -46
|
@@ -2,7 +2,6 @@ import { CommonModule } from "@angular/common";
|
|
|
2
2
|
import { HttpErrorResponse, HttpResponse, HttpResponseBase, provideHttpClient, withInterceptorsFromDi, withXhr } from "@angular/common/http";
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import { Injectable, NgModule, Optional, SkipSelf } from "@angular/core";
|
|
5
|
-
import moment from "moment";
|
|
6
5
|
var EnsureModuleLoadedOnceGuard = class {
|
|
7
6
|
constructor(targetModule) {
|
|
8
7
|
if (targetModule) throw new Error(`${targetModule.constructor.name} has already been loaded. Import this module in the AppModule only.`);
|
|
@@ -65,6 +64,97 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
65
64
|
decorators: [{ type: Optional }, { type: SkipSelf }]
|
|
66
65
|
}]
|
|
67
66
|
});
|
|
67
|
+
var DateUtils = class DateUtils {
|
|
68
|
+
static {
|
|
69
|
+
this.IsoPattern = /^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{1,7}))?)?)?\s*(Z|[+-]\d{2}:?\d{2})?$/i;
|
|
70
|
+
}
|
|
71
|
+
static {
|
|
72
|
+
this.DayMonthYearPattern = /^(\d{1,2})\/(\d{1,2})\/(\d{4})(?:\s+(\d{1,2}):(\d{2})(?::(\d{2}))?)?$/;
|
|
73
|
+
}
|
|
74
|
+
static valid(date) {
|
|
75
|
+
return isNaN(date.getTime()) ? null : date;
|
|
76
|
+
}
|
|
77
|
+
static toDate(value, assumeUtc = false) {
|
|
78
|
+
if (value instanceof Date) return DateUtils.valid(value);
|
|
79
|
+
if (typeof value === "number") return isFinite(value) ? DateUtils.valid(new Date(value)) : null;
|
|
80
|
+
if (typeof value !== "string") return null;
|
|
81
|
+
return DateUtils.parseIso(value.trim(), assumeUtc);
|
|
82
|
+
}
|
|
83
|
+
static parseIso(text, assumeUtc = false) {
|
|
84
|
+
const m = DateUtils.IsoPattern.exec(text ?? "");
|
|
85
|
+
if (!m) return null;
|
|
86
|
+
const [y, mo, d, h = "0", mi = "0", s = "0", frac = "0", zone] = m.slice(1);
|
|
87
|
+
const ms = Math.round(Number("0." + frac) * 1e3);
|
|
88
|
+
if (!DateUtils.isDay(+y, +mo, +d) || +h > 23 || +mi > 59 || +s > 59) return null;
|
|
89
|
+
if (!zone && !assumeUtc) return DateUtils.valid(new Date(+y, +mo - 1, +d, +h, +mi, +s, ms));
|
|
90
|
+
const utc = Date.UTC(+y, +mo - 1, +d, +h, +mi, +s, ms);
|
|
91
|
+
if (!zone || zone.toUpperCase() === "Z") return DateUtils.valid(new Date(utc));
|
|
92
|
+
const sign = zone.startsWith("-") ? -1 : 1;
|
|
93
|
+
const digits = zone.replace(/[+:-]/g, "");
|
|
94
|
+
const offset = sign * (Number(digits.substring(0, 2)) * 60 + Number(digits.substring(2, 4)));
|
|
95
|
+
return DateUtils.valid(/* @__PURE__ */ new Date(utc - offset * 6e4));
|
|
96
|
+
}
|
|
97
|
+
static parseDayMonthYear(text) {
|
|
98
|
+
const m = DateUtils.DayMonthYearPattern.exec((text ?? "").trim());
|
|
99
|
+
if (!m) return null;
|
|
100
|
+
const [d, mo, y, h = "0", mi = "0", s = "0"] = m.slice(1);
|
|
101
|
+
if (!DateUtils.isDay(+y, +mo, +d) || +h > 23 || +mi > 59 || +s > 59) return null;
|
|
102
|
+
return new Date(+y, +mo - 1, +d, +h, +mi, +s);
|
|
103
|
+
}
|
|
104
|
+
static parseInput(text) {
|
|
105
|
+
const value = (text ?? "").trim();
|
|
106
|
+
return DateUtils.parseDayMonthYear(value) ?? DateUtils.parseIso(value);
|
|
107
|
+
}
|
|
108
|
+
static isValid(value) {
|
|
109
|
+
return DateUtils.toDate(value) !== null;
|
|
110
|
+
}
|
|
111
|
+
static isIsoString(value) {
|
|
112
|
+
return typeof value === "string" && DateUtils.parseIso(value.trim()) !== null;
|
|
113
|
+
}
|
|
114
|
+
static toUtcDay(value) {
|
|
115
|
+
if (typeof value === "string" && value.includes("/")) {
|
|
116
|
+
const d = DateUtils.parseDayMonthYear(value);
|
|
117
|
+
return d ? new Date(d.getFullYear(), d.getMonth(), d.getDate()) : null;
|
|
118
|
+
}
|
|
119
|
+
const date = DateUtils.toDate(value, true);
|
|
120
|
+
return date ? new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()) : null;
|
|
121
|
+
}
|
|
122
|
+
static format(value, pattern) {
|
|
123
|
+
const date = DateUtils.toDate(value);
|
|
124
|
+
return date ? DateUtils.apply(pattern, date.getFullYear(), date.getMonth() + 1, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()) : "";
|
|
125
|
+
}
|
|
126
|
+
static formatUtc(value, pattern = "YYYY-MM-DDTHH:mm:ss[Z]") {
|
|
127
|
+
const date = DateUtils.toDate(value, true);
|
|
128
|
+
return date ? DateUtils.apply(pattern, date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()) : "";
|
|
129
|
+
}
|
|
130
|
+
static isSameSecond(a, b, assumeUtc = false) {
|
|
131
|
+
const d1 = DateUtils.toDate(a, assumeUtc);
|
|
132
|
+
const d2 = DateUtils.toDate(b, assumeUtc);
|
|
133
|
+
return !!d1 && !!d2 && Math.floor(d1.getTime() / 1e3) === Math.floor(d2.getTime() / 1e3);
|
|
134
|
+
}
|
|
135
|
+
static isSameDay(a, b) {
|
|
136
|
+
const d1 = DateUtils.format(a, "YYYY-MM-DD");
|
|
137
|
+
return d1 !== "" && d1 === DateUtils.format(b, "YYYY-MM-DD");
|
|
138
|
+
}
|
|
139
|
+
static isDay(y, m, d) {
|
|
140
|
+
if (m < 1 || m > 12 || d < 1) return false;
|
|
141
|
+
return d <= new Date(y, m, 0).getDate();
|
|
142
|
+
}
|
|
143
|
+
static apply(pattern, y, mo, d, h, mi, s) {
|
|
144
|
+
const two = (n) => String(n).padStart(2, "0");
|
|
145
|
+
return pattern.replace(/\[([^\]]*)\]|YYYY|MM|DD|HH|mm|ss/g, (token, literal) => {
|
|
146
|
+
if (literal !== void 0) return literal;
|
|
147
|
+
switch (token) {
|
|
148
|
+
case "YYYY": return String(y).padStart(4, "0");
|
|
149
|
+
case "MM": return two(mo);
|
|
150
|
+
case "DD": return two(d);
|
|
151
|
+
case "HH": return two(h);
|
|
152
|
+
case "mm": return two(mi);
|
|
153
|
+
default: return two(s);
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
};
|
|
68
158
|
const isArray = Array.isArray || ((x) => x && typeof x.length === "number");
|
|
69
159
|
function isNumeric(val) {
|
|
70
160
|
return !isArray(val) && val - parseFloat(val) + 1 >= 0;
|
|
@@ -213,6 +303,15 @@ var Utilities = class Utilities {
|
|
|
213
303
|
static IsUndefined(value) {
|
|
214
304
|
return typeof value === "undefined";
|
|
215
305
|
}
|
|
306
|
+
static uniqBy(items, property) {
|
|
307
|
+
const seen = /* @__PURE__ */ new Set();
|
|
308
|
+
return (items ?? []).filter((item) => {
|
|
309
|
+
const key = item?.[property];
|
|
310
|
+
if (seen.has(key)) return false;
|
|
311
|
+
seen.add(key);
|
|
312
|
+
return true;
|
|
313
|
+
});
|
|
314
|
+
}
|
|
216
315
|
static IsNil(value) {
|
|
217
316
|
return value == null || value === void 0 || typeof value === "undefined";
|
|
218
317
|
}
|
|
@@ -455,11 +554,7 @@ var Utilities = class Utilities {
|
|
|
455
554
|
return object[property];
|
|
456
555
|
}
|
|
457
556
|
static getCustomDate(value) {
|
|
458
|
-
|
|
459
|
-
if (value.split("/").length > 1) m = moment.utc(value, "DD/MM/YYYY");
|
|
460
|
-
else m = moment.utc(value);
|
|
461
|
-
let date = new Date(m.year(), m.month(), m.date());
|
|
462
|
-
return isNaN(date.valueOf()) ? null : date;
|
|
557
|
+
return DateUtils.toUtcDay(value);
|
|
463
558
|
}
|
|
464
559
|
static isLowerThan(value1, value2) {
|
|
465
560
|
let d1, d2;
|
|
@@ -595,6 +690,6 @@ function distinct(array) {
|
|
|
595
690
|
}, []);
|
|
596
691
|
}
|
|
597
692
|
var EnvironmentBase = class {};
|
|
598
|
-
export { CoreModule, EnsureModuleLoadedOnceGuard, EnvironmentBase, Utilities, distinct, groupBy, groupByFunc, isArray, isNumeric, nameof, sleep, sumOf };
|
|
693
|
+
export { CoreModule, DateUtils, EnsureModuleLoadedOnceGuard, EnvironmentBase, Utilities, distinct, groupBy, groupByFunc, isArray, isNumeric, nameof, sleep, sumOf };
|
|
599
694
|
|
|
600
695
|
//# sourceMappingURL=dflat-core-web-core.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dflat-core-web-core.mjs","names":[],"sources":["../../core/src/lib/services/ensuremoduleloadedonceguard.ts","../../core/src/lib/core.module.ts","../../core/src/lib/services/utilities.service.ts","../../core/src/lib/nameof.function.ts","../../core/src/lib/array.function.ts","../../core/src/lib/global/EnvironmentBase.ts"],"sourcesContent":["export class EnsureModuleLoadedOnceGuard {\r\n\r\n constructor(targetModule: any) {\r\n if (targetModule) {\r\n throw new Error(`${targetModule.constructor.name} has already been loaded. Import this module in the AppModule only.`);\r\n }\r\n }\r\n\r\n}","// IMPORTANT : DANS LE BUT DE FACILITER LES MERGE ET LA LECTURE DU CODE.\r\n\r\n// 1. TOUJOURS CONSERVER LE TRI SUR LES IMPORTS\r\n// UTILISER L'EXTENSION \"TypeScript Import Sorter\" DANS VSCODE.\r\n// CONFIGURER L'EXTENSION POUR ACTIVER LA MISE EN FORME AUTOMATIQUE A LA SAUVEGARDE \r\n\r\n// 2. UTILISER CTRL-SHIFT O POUR SUPPRIMER AUTOMATIQUEMENT LES IMPORTS INUTILES\r\n\r\n// 3. TRIER LES COMPOSANTS OU DEPENDANCES DANS LES DECLARATIONS (IMPORTS, EXPORTS)\r\n// SELECTION DU TEXTE PUIS CTRL-SHIFT P, \"Sort Lines Ascending\"\r\n// ON PEUT PARAMETRER DES RACCOURCIS CLAVIER DANS VSCODE\r\n// PAR EXEMPLE : CTRL-T UP (TRI CROISSANT) ou CTRL-T DOWN (TRI DECDROISSANT)\r\nimport { CommonModule } from '@angular/common';\r\nimport { provideHttpClient, withInterceptorsFromDi, withXhr } from '@angular/common/http';\r\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\r\n\r\nimport { EnsureModuleLoadedOnceGuard } from './services/ensuremoduleloadedonceguard';\r\n\r\n@NgModule({ exports: [],\r\n declarations: [], imports: [CommonModule], providers: [provideHttpClient(withXhr(), withInterceptorsFromDi())] })\r\n// Ensure that CoreModule is only loaded into AppModule\r\nexport class CoreModule extends EnsureModuleLoadedOnceGuard {\r\n\r\n // Looks for the module in the parent injector to see if it's already been loaded (only want it loaded once)\r\n constructor( @Optional() @SkipSelf() parentModule: CoreModule) {\r\n super(parentModule);\r\n }\r\n}\r\n\r\n","import moment from 'moment';\r\n\r\nimport { HttpErrorResponse, HttpResponse, HttpResponseBase } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nexport const isArray = Array.isArray || ((x) => x && typeof x.length === 'number');\r\nexport function isNumeric(val) {\r\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\r\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\r\n // subtraction forces infinities to NaN\r\n // adding 1 corrects loss of precision from parseFloat (#15100)\r\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\r\n}\r\nexport function sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\n\r\n@Injectable()\r\nexport class Utilities {\r\n static delay(arg0: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n public static readonly captionAndMessageSeparator = \":\";\r\n public static readonly noNetworkMessageCaption = \"No Network\";\r\n public static readonly noNetworkMessageDetail = \"The server cannot be reached\";\r\n public static readonly accessDeniedMessageCaption = \"Access Denied!\";\r\n public static readonly accessDeniedMessageDetail = \"\";\r\n\r\n public static getHttpResponseMessage(data: HttpResponseBase | any): string[] {\r\n\r\n let responses: string[] = [];\r\n\r\n if (data instanceof HttpResponseBase) {\r\n\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n }\r\n else {\r\n let responseObject = this.getResponseBody(data);\r\n\r\n if (responseObject && (typeof responseObject === 'object' || responseObject instanceof Object)) {\r\n\r\n for (let key in responseObject) {\r\n if (key)\r\n responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n else if (responseObject[key])\r\n responses.push(responseObject[key].toString());\r\n }\r\n }\r\n }\r\n\r\n if (!responses.length && this.getResponseBody(data))\r\n responses.push(`${data.statusText}: ${this.getResponseBody(data).toString()}`);\r\n }\r\n\r\n if (!responses.length)\r\n responses.push(data.toString());\r\n\r\n if (this.checkAccessDenied(data))\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n\r\n\r\n return responses;\r\n }\r\n\r\n\r\n public static findHttpResponseMessage(messageToFind: string, data: HttpResponse<any> | any, seachInCaptionOnly = true, includeCaptionInResult = false): string {\r\n\r\n let searchString = messageToFind.toLowerCase();\r\n let httpMessages = this.getHttpResponseMessage(data);\r\n\r\n for (let message of httpMessages) {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n\r\n if (fullMessage.firstPart && fullMessage.firstPart.toLowerCase().indexOf(searchString) != -1) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n\r\n if (!seachInCaptionOnly) {\r\n for (let message of httpMessages) {\r\n\r\n if (message.toLowerCase().indexOf(searchString) != -1) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n }\r\n else {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n\r\n public static getResponseBody(response: HttpResponseBase) {\r\n if (response instanceof HttpResponse)\r\n return response.body;\r\n\r\n if (response instanceof HttpErrorResponse)\r\n return response.error || response.message || response.statusText;\r\n }\r\n\r\n\r\n public static checkNoNetwork(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkAccessDenied(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 403;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkNotFound(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 404;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkIsLocalHost(url: string, base?: string) {\r\n if (url) {\r\n let location = new URL(url, base);\r\n return location.hostname === \"localhost\" || location.hostname === \"127.0.0.1\";\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n\r\n public static getQueryParamsFromString(paramString: string) {\r\n\r\n if (!paramString)\r\n return null;\r\n\r\n let params: { [key: string]: string } = {};\r\n\r\n for (let param of paramString.split(\"&\")) {\r\n let keyValue = Utilities.splitInTwo(param, \"=\");\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n\r\n public static splitInTwo(text: string, separator: string): { firstPart: string, secondPart: string } {\r\n let separatorIndex = text.indexOf(separator);\r\n\r\n if (separatorIndex == -1)\r\n return { firstPart: text, secondPart: null };\r\n\r\n let part1 = text.substr(0, separatorIndex).trim();\r\n let part2 = text.substr(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n\r\n public static safeStringify(object) {\r\n\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n }\r\n catch (error) {\r\n\r\n }\r\n\r\n let simpleObject = {};\r\n\r\n for (let prop in object) {\r\n if (!object.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = \"[***Sanitized Object***]: \" + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n\r\n public static JSonTryParse(value: string) {\r\n try {\r\n return JSON.parse(value);\r\n }\r\n catch (e) {\r\n if (value === \"undefined\")\r\n return void 0;\r\n\r\n return value;\r\n }\r\n }\r\n\r\n public static isNonEmptyString(str: string) {\r\n return str && str.length > 0;\r\n }\r\n\r\n public static isEmptyString(str: string) {\r\n return Utilities.IsNil(str) || str.length === 0;\r\n }\r\n\r\n public static areValuesEqual (a: any, b: any) : boolean {\r\n if (a === b) return true;\r\n\r\n if (a instanceof Date && b instanceof Date) {\r\n return a.getTime() === b.getTime();\r\n }\r\n if (a?.valueOf && b?.valueOf) {\r\n return a.valueOf() === b.valueOf();\r\n }\r\n if (typeof a !== 'object' && typeof b !== 'object') {\r\n return a === b;\r\n }\r\n return JSON.stringify(a) === JSON.stringify(b);\r\n }\r\n\r\n public static TestIsObjectEmpty(obj: any) {\r\n for (let prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n public static IsUndefined(value: any) {\r\n return typeof value === 'undefined';\r\n }\r\n\r\n public static IsNil(value: any): boolean {\r\n return (value == null) || value === undefined || typeof value === 'undefined';\r\n }\r\n\r\n public static TestIsString(value: any) {\r\n return typeof value === 'string' || value instanceof String;\r\n }\r\n\r\n public static capitalizeFirstLetter(text: string) {\r\n if (text)\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n else\r\n return text;\r\n }\r\n\r\n\r\n public static toTitleCase(text: string) {\r\n return text.replace(/\\w\\S*/g, (subString) => {\r\n return subString.charAt(0).toUpperCase() + subString.substr(1).toLowerCase();\r\n });\r\n }\r\n\r\n\r\n public static toLowerCase(items: string)\r\n public static toLowerCase(items: string[])\r\n public static toLowerCase(items: any): string | string[] {\r\n\r\n if (items instanceof Array) {\r\n let loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n }\r\n else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n }\r\n\r\n\r\n public static uniqueId() {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n\r\n public static randomNumber(min: number, max: number) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n\r\n public static baseUrl() {\r\n let base = '';\r\n\r\n if (window.location.origin)\r\n base = window.location.origin;\r\n else\r\n base = window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n\r\n public static printDateOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n let dayNames = new Array(\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\");\r\n let monthNames = new Array(\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\");\r\n\r\n let dayOfWeek = date.getDay();\r\n let dayOfMonth = date.getDate();\r\n let sup = \"\";\r\n let month = date.getMonth();\r\n let year = date.getFullYear();\r\n\r\n if (dayOfMonth == 1 || dayOfMonth == 21 || dayOfMonth == 31) {\r\n sup = \"st\";\r\n }\r\n else if (dayOfMonth == 2 || dayOfMonth == 22) {\r\n sup = \"nd\";\r\n }\r\n else if (dayOfMonth == 3 || dayOfMonth == 23) {\r\n sup = \"rd\";\r\n }\r\n else {\r\n sup = \"th\";\r\n }\r\n\r\n let dateString = dayNames[dayOfWeek] + \", \" + dayOfMonth + sup + \" \" + monthNames[month] + \" \" + year;\r\n\r\n return dateString;\r\n }\r\n\r\n public static printTimeOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n let period = \"\";\r\n let minute = date.getMinutes().toString();\r\n let hour = date.getHours();\r\n\r\n period = hour < 12 ? \"AM\" : \"PM\";\r\n\r\n if (hour == 0) {\r\n hour = 12;\r\n }\r\n if (hour > 12) {\r\n hour = hour - 12;\r\n }\r\n\r\n if (minute.length == 1) {\r\n minute = \"0\" + minute;\r\n }\r\n\r\n let timeString = hour + \":\" + minute + \" \" + period;\r\n\r\n\r\n return timeString;\r\n }\r\n\r\n public static printDate(date: Date, separator = \"at\") {\r\n return `${Utilities.printDateOnly(date)} ${separator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n\r\n public static printFriendlyDate(date: Date, separator = \"-\") {\r\n let today = new Date(); today.setHours(0, 0, 0, 0);\r\n let yesterday = new Date(today); yesterday.setDate(yesterday.getDate() - 1);\r\n let test = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n\r\n if (test.toDateString() == today.toDateString())\r\n return `Today ${separator} ${Utilities.printTimeOnly(date)}`;\r\n if (test.toDateString() == yesterday.toDateString())\r\n return `Yesterday ${separator} ${Utilities.printTimeOnly(date)}`;\r\n else\r\n return Utilities.printDate(date, separator);\r\n }\r\n\r\n public static printShortDate(date: Date, separator = \"/\", dateTimeSeparator = \"-\") {\r\n\r\n var day = date.getDate().toString();\r\n var month = (date.getMonth() + 1).toString();\r\n var year = date.getFullYear();\r\n\r\n if (day.length == 1)\r\n day = \"0\" + day;\r\n\r\n if (month.length == 1)\r\n month = \"0\" + month;\r\n\r\n return `${month}${separator}${day}${separator}${year} ${dateTimeSeparator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n\r\n public static parseDate(date):Date {\r\n\r\n if (date) {\r\n\r\n if (date instanceof Date) {\r\n return date;\r\n }\r\n\r\n if (typeof date === 'string' || date instanceof String) {\r\n if (date.search(/[a-su-z+]/i) == -1)\r\n date = date + \"Z\";\r\n\r\n return new Date(date);\r\n }\r\n\r\n if (typeof date === 'number' || date instanceof Number) {\r\n return new Date(<any>date);\r\n }\r\n }\r\n }\r\n\r\n\r\n public static Format2Digits(n) {\r\n return n > 9 ? \"\" + n : \"0\" + n;\r\n }\r\n\r\n\r\n public static printDuration(start: Date, end: Date) {\r\n\r\n start = new Date(start);\r\n end = new Date(end);\r\n\r\n // get total seconds between the times\r\n let delta = Math.abs(start.valueOf() - end.valueOf()) / 1000;\r\n\r\n // calculate (and subtract) whole days\r\n let days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n\r\n // calculate (and subtract) whole hours\r\n let hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n\r\n // calculate (and subtract) whole minutes\r\n let minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n\r\n // what's left is seconds\r\n let seconds = delta % 60; // in theory the modulus is not required\r\n\r\n\r\n let printedDays = \"\";\r\n\r\n if (days)\r\n printedDays = `${days} days`;\r\n\r\n if (hours)\r\n printedDays += printedDays ? `, ${hours} hours` : `${hours} hours`;\r\n\r\n if (minutes)\r\n printedDays += printedDays ? `, ${minutes} minutes` : `${minutes} minutes`;\r\n\r\n if (seconds)\r\n printedDays += printedDays ? ` and ${seconds} seconds` : `${seconds} seconds`;\r\n\r\n\r\n if (!printedDays)\r\n printedDays = \"0\";\r\n\r\n return printedDays;\r\n }\r\n\r\n\r\n public static getAge(birthDate, otherDate) {\r\n birthDate = new Date(birthDate);\r\n otherDate = new Date(otherDate);\r\n\r\n let years = (otherDate.getFullYear() - birthDate.getFullYear());\r\n\r\n if (otherDate.getMonth() < birthDate.getMonth() ||\r\n otherDate.getMonth() == birthDate.getMonth() && otherDate.getDate() < birthDate.getDate()) {\r\n years--;\r\n }\r\n\r\n return years;\r\n }\r\n\r\n public static isDateAEarlierThanDateB(dateA: Date, dateB: Date)\r\n {\r\n return dateA.getFullYear() < dateB.getFullYear()\r\n ||(dateA.getFullYear() == dateB.getFullYear() && dateA.getMonth() < dateB.getMonth())\r\n ||(dateA.getMonth() == dateB.getMonth() && dateA.getDate() < dateB.getDate())\r\n }\r\n\r\n\r\n public static searchArray(searchTerm: string, caseSensitive: boolean, ...values: any[]) {\r\n\r\n if (!searchTerm)\r\n return true;\r\n\r\n\r\n if (!caseSensitive)\r\n searchTerm = searchTerm.toLowerCase();\r\n\r\n for (let value of values) {\r\n\r\n if (value != null) {\r\n let strValue = value.toString();\r\n\r\n if (!caseSensitive)\r\n strValue = strValue.toLowerCase();\r\n\r\n if (strValue.indexOf(searchTerm) !== -1)\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n public static moveArrayItem(array: any[], oldIndex, newIndex) {\r\n\r\n while (oldIndex < 0) {\r\n oldIndex += this.length;\r\n }\r\n\r\n while (newIndex < 0) {\r\n newIndex += this.length;\r\n }\r\n\r\n if (newIndex >= this.length) {\r\n var k = newIndex - this.length;\r\n while ((k--) + 1) {\r\n array.push(undefined);\r\n }\r\n }\r\n\r\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\r\n }\r\n\r\n\r\n public static expandCamelCase(text: string) {\r\n\r\n if (!text)\r\n return text;\r\n\r\n return text.replace(/([A-Z][a-z]+)/g, \" $1\")\r\n .replace(/([A-Z][A-Z]+)/g, \" $1\")\r\n .replace(/([^A-Za-z ]+)/g, \" $1\");\r\n }\r\n\r\n\r\n public static testIsAbsoluteUrl(url: string) {\r\n\r\n let r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n\r\n public static convertToAbsoluteUrl(url: string) {\r\n\r\n return Utilities.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n\r\n\r\n public static removeNulls(obj) {\r\n let isArray = obj instanceof Array;\r\n\r\n for (let k in obj) {\r\n if (obj[k] === null) {\r\n isArray ? obj.splice(k, 1) : delete obj[k];\r\n }\r\n else if (typeof obj[k] == \"object\") {\r\n Utilities.removeNulls(obj[k]);\r\n }\r\n\r\n if (isArray && obj.length == k) {\r\n Utilities.removeNulls(obj);\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n\r\n public static debounce(func: (...args) => any, wait: number, immediate?: boolean) {\r\n var timeout;\r\n\r\n return function () {\r\n var context = this;\r\n var args_ = arguments;\r\n\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate)\r\n func.apply(context, args_);\r\n };\r\n\r\n var callNow = immediate && !timeout;\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n\r\n if (callNow)\r\n func.apply(context, args_);\r\n };\r\n }\r\n\r\n\r\n\r\n public static cookies = {\r\n getItem: (sKey) => {\r\n return decodeURIComponent(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\r\n },\r\n setItem: (sKey, sValue, vEnd, sPath, sDomain, bSecure) => {\r\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\r\n return false;\r\n }\r\n\r\n var sExpires = \"\";\r\n\r\n if (vEnd) {\r\n switch (vEnd.constructor) {\r\n case Number:\r\n sExpires = vEnd === Infinity ? \"; expires=Fri, 31 Dec 9999 23:59:59 GMT\" : \"; max-age=\" + vEnd;\r\n break;\r\n case String:\r\n sExpires = \"; expires=\" + vEnd;\r\n break;\r\n case Date:\r\n sExpires = \"; expires=\" + vEnd.toUTCString();\r\n break;\r\n }\r\n }\r\n\r\n document.cookie = encodeURIComponent(sKey) + \"=\" + encodeURIComponent(sValue) + sExpires + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\") + (bSecure ? \"; secure\" : \"\");\r\n return true;\r\n },\r\n removeItem: (sKey, sPath, sDomain) => {\r\n if (!sKey) {\r\n return false;\r\n }\r\n document.cookie = encodeURIComponent(sKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT\" + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\");\r\n return true;\r\n },\r\n hasItem: (sKey) => {\r\n return (new RegExp(\"(?:^|;\\\\s*)\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\")).test(document.cookie);\r\n },\r\n keys: () => {\r\n var aKeys = document.cookie.replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, \"\").split(/\\s*(?:\\=[^;]*)?;\\s*/);\r\n for (var nIdx = 0; nIdx < aKeys.length; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); }\r\n return aKeys;\r\n }\r\n }\r\n\r\n public static isNumber(field: any) {\r\n return (typeof field === 'number' || field instanceof Number);\r\n }\r\n\r\n public static changeName(item: any): string {\r\n if (item)\r\n return item.replace(/[&\\/\\\\#,+()$~%.'\":*?<>{}]/g, '');\r\n return item;\r\n }\r\n\r\n public static transform<T>(value: T, args: any[] = null): { key: keyof T, value: any }[] {\r\n return Object.keys(value).map(k => {\r\n return { key: k as keyof T, value: value[k] }\r\n });\r\n }\r\n\r\n public static GetChannel(entityTypeKey: string) {\r\n\r\n\r\n if ( this.IsNil(entityTypeKey))\r\n return entityTypeKey;\r\n\r\n let k: string = entityTypeKey.toLowerCase();\r\n\r\n switch (k) {\r\n case \"shipment\":\r\n return \"SHP\";\r\n case \"dataimport\":\r\n return \"INP\";\r\n case \"request\":\r\n return \"RQT\";\r\n case \"synchronizedcompany\":\r\n return \"CPY\";\r\n case \"sellingorder\":\r\n return \"ORD\";\r\n case \"purchaseorder\":\r\n return \"ORD\";\r\n default:\r\n return entityTypeKey;\r\n }\r\n }\r\n\r\n public static getProp<T, K extends keyof T>(object: T, property: K): T[K] {\r\n return object[property];\r\n }\r\n\r\n /**\r\n * static getCustomDvalue: stringate\r\n */\r\n public static getCustomDate(value: string) : Date {\r\n\r\n let m : moment.Moment;\r\n if (value.split(\"/\").length > 1)\r\n m = moment.utc(value, \"DD/MM/YYYY\");\r\n else\r\n m = moment.utc(value);\r\n\r\n let date = new Date(m.year(), m.month(), m.date());\r\n return isNaN(date.valueOf()) ? null : date;\r\n }\r\n\r\n public static isLowerThan(value1:string|Date,value2:string|Date): boolean{\r\n let d1,d2: Date;\r\n\r\n if(typeof value1 === 'string')\r\n d1= this.getCustomDate(value1)\r\n else\r\n d1 = value1;\r\n\r\n if(typeof value2 === 'string')\r\n d2= this.getCustomDate(value2)\r\n else d2 = value2;\r\n\r\n return d1 < d2;\r\n }\r\n\r\n public static getLogClass(log: string) {\r\n let regexInfo = /INFO/g;\r\n let regexData = /DATA/g;\r\n let regexError = /ERROR/g;\r\n let regexWarn = /WARNING/g;\r\n\r\n if (regexInfo.test(log)) {\r\n return \"log-info\";\r\n }\r\n\r\n if (regexData.test(log)) {\r\n return \"log-data\";\r\n }\r\n\r\n if (regexError.test(log)) {\r\n return \"log-error\";\r\n }\r\n\r\n if (regexWarn.test(log)) {\r\n return \"log-warning\";\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n\r\n public static deepCopy(obj) {\r\n var copy;\r\n\r\n // Handle the 3 simple types, and null or undefined\r\n if (null == obj || \"object\" != typeof obj) return obj;\r\n\r\n // Handle Date\r\n if (obj instanceof Date) {\r\n copy = new Date();\r\n copy.setTime(obj.getTime());\r\n return copy;\r\n }\r\n\r\n // Handle Array\r\n if (obj instanceof Array) {\r\n copy = [];\r\n for (var i = 0, len = obj.length; i < len; i++) {\r\n copy[i] = Utilities.deepCopy(obj[i]);\r\n }\r\n return copy;\r\n }\r\n\r\n // Handle Object\r\n if (obj instanceof Object) {\r\n copy = {};\r\n for (var attr in obj) {\r\n if (obj.hasOwnProperty(attr)) copy[attr] = Utilities.deepCopy(obj[attr]);\r\n }\r\n return copy;\r\n }\r\n\r\n throw new Error(\"Unable to copy obj! Its type isn't supported.\");\r\n }\r\n\r\n public static getCleanNumber(initial:string) : number {\r\n\r\n // Si la chaine est vide, on renvoie 0\r\n let value: string = initial.replace(',', '.');\r\n\r\n if( ! isNumeric(value) ) {\r\n // On supprime tous les caractères qui ne sont pas des chiffres.\r\n value = '';\r\n let hasSeparator: boolean = false;\r\n for (var i = 0; i < initial.length; i++) {\r\n let ch= initial[i];\r\n if ( isNumeric(ch) ) {\r\n value = value + ch;\r\n }\r\n else if (! hasSeparator && (ch == '.' || ch == ',')) {\r\n value = value + ch;\r\n hasSeparator = true;\r\n }\r\n }\r\n\r\n value = value.replace(',', '.');\r\n if ( ! isNumeric(value) )\r\n return 0;\r\n }\r\n\r\n let n = Number.parseFloat(value);\r\n return n;\r\n }\r\n\r\n public static addDays(date : Date, days : number) : Date{\r\n var date = new Date(date.valueOf());\r\n date.setDate(date.getDate() + days);\r\n return date;\r\n }\r\n\r\n public static getFormattedParams(params: any): any {\r\n\r\n // Dans le cas d'un tableau, parcours tous les éléments du tableau pour formatter les\r\n let result: any;\r\n\r\n\r\n if (Array.isArray(params)) {\r\n if (params.length > 0 && typeof (params[0]) === 'number')\r\n return JSON.stringify(params);\r\n\r\n result = [];\r\n params.forEach(entity => {\r\n result.push(this.getFormattedParams(entity));\r\n });\r\n return JSON.stringify(result);\r\n }\r\n result = {};\r\n for (let key in params) {\r\n if (params.hasOwnProperty(key)) {\r\n let val = params[key];\r\n if (val !== undefined && val !== null) {\r\n //Handle the Date javascript object\r\n if (val instanceof Date) {\r\n val = `${Utilities.Format2Digits(val.getFullYear())}-${Utilities.Format2Digits(val.getMonth() + 1)}-${Utilities.Format2Digits(val.getDate())}T00:00:00.000Z`;\r\n }\r\n result[key] = val;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n}\r\n","export type valueOf<T> = T[keyof T];\r\nexport function nameof<T, V extends T[keyof T]>(f: (x: T) => V): valueOf<{ [K in keyof T]: T[K] extends V ? K : never }>;\r\nexport function nameof(f: (x: any) => any): keyof any {\r\n var p = new Proxy({}, {\r\n get: (target, key) => key\r\n })\r\n return f(p);\r\n}","// export function groupBy<TItem>(xs: TItem[], key: string) : {[key: string]: TItem[]}{\r\n// return xs.reduce(function(rv, x) {\r\n// (rv[x[key]] = rv[x[key]] || []).push(x);\r\n// return rv;\r\n// }, {});\r\n// };\r\n\r\n\r\n export function groupBy<TItem>(xs: TItem[], key: Extract<keyof TItem,string>) : {[key: string]: TItem[]}{\r\n return xs.reduce(function(rv, x) {\r\n (rv[x[key]as any] = rv[x[key]as any] || []).push(x);\r\n return rv;\r\n }, {});\r\n };\r\n\r\n export function groupByFunc<TItem,TKey>(xs: TItem[], func:((i:TItem)=>string)) : {[key: string]: TItem[]}{\r\n return xs.reduce(function(rv, x) {\r\n let k = func(x);\r\n (rv[k] = rv[k] || []).push(x);\r\n return rv;\r\n }, {});\r\n };\r\n\r\n export function sumOf<TItem>(xs:TItem[],func:((i:TItem)=>number)) : number{\r\n return xs.map(func).reduce((a,b)=>a+b);\r\n }\r\n\r\n // https://codereview.stackexchange.com/a/100843\r\n export function distinct(array:(number|string)[]) : (number|string)[]{\r\n return array.reduce(function(carry, item){\r\n if(item && !~carry.indexOf(item))\r\n carry.push(item);\r\n return carry;\r\n }, []);\r\n }\r\n ","export abstract class EnvironmentBase {\r\n abstract readonly production: boolean;\r\n abstract readonly fileUrl: string;\r\n abstract readonly baseUrl: string;\r\n abstract readonly apiUrl: string;\r\n abstract readonly hubUrl: string;\r\n\r\n /**\r\n * Nom de l'application, affiché dans la barre supérieure et sur la page d'accueil.\r\n * \"DFlat\" par défaut.\r\n */\r\n readonly appName?: string;\r\n\r\n /**\r\n * Logo affiché à côté du nom de l'application.\r\n * \"assets/images/dflat-icone-positif.svg\" (fourni par le package) par défaut.\r\n */\r\n readonly appLogoUrl?: string;\r\n\r\n /**\r\n * Logo affiché sur la page d'accueil, au-dessus de la barre de recherche.\r\n * \"assets/images/dflat-icone.svg\" (fourni par le package) par défaut.\r\n */\r\n readonly appHomeLogoUrl?: string;\r\n\r\n /**\r\n * Version affichée sur la page d'accueil, qui renvoie vers la page des nouveautés.\r\n * Masquée si elle n'est pas renseignée.\r\n */\r\n readonly appVersion?: string;\r\n};\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dflat-core-web-core.mjs","names":[],"sources":["../../core/src/lib/services/ensuremoduleloadedonceguard.ts","../../core/src/lib/core.module.ts","../../core/src/lib/services/date-utils.ts","../../core/src/lib/services/utilities.service.ts","../../core/src/lib/nameof.function.ts","../../core/src/lib/array.function.ts","../../core/src/lib/global/EnvironmentBase.ts"],"sourcesContent":["export class EnsureModuleLoadedOnceGuard {\r\n\r\n constructor(targetModule: any) {\r\n if (targetModule) {\r\n throw new Error(`${targetModule.constructor.name} has already been loaded. Import this module in the AppModule only.`);\r\n }\r\n }\r\n\r\n}","// IMPORTANT : DANS LE BUT DE FACILITER LES MERGE ET LA LECTURE DU CODE.\r\n\r\n// 1. TOUJOURS CONSERVER LE TRI SUR LES IMPORTS\r\n// UTILISER L'EXTENSION \"TypeScript Import Sorter\" DANS VSCODE.\r\n// CONFIGURER L'EXTENSION POUR ACTIVER LA MISE EN FORME AUTOMATIQUE A LA SAUVEGARDE \r\n\r\n// 2. UTILISER CTRL-SHIFT O POUR SUPPRIMER AUTOMATIQUEMENT LES IMPORTS INUTILES\r\n\r\n// 3. TRIER LES COMPOSANTS OU DEPENDANCES DANS LES DECLARATIONS (IMPORTS, EXPORTS)\r\n// SELECTION DU TEXTE PUIS CTRL-SHIFT P, \"Sort Lines Ascending\"\r\n// ON PEUT PARAMETRER DES RACCOURCIS CLAVIER DANS VSCODE\r\n// PAR EXEMPLE : CTRL-T UP (TRI CROISSANT) ou CTRL-T DOWN (TRI DECDROISSANT)\r\nimport { CommonModule } from '@angular/common';\r\nimport { provideHttpClient, withInterceptorsFromDi, withXhr } from '@angular/common/http';\r\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\r\n\r\nimport { EnsureModuleLoadedOnceGuard } from './services/ensuremoduleloadedonceguard';\r\n\r\n@NgModule({ exports: [],\r\n declarations: [], imports: [CommonModule], providers: [provideHttpClient(withXhr(), withInterceptorsFromDi())] })\r\n// Ensure that CoreModule is only loaded into AppModule\r\nexport class CoreModule extends EnsureModuleLoadedOnceGuard {\r\n\r\n // Looks for the module in the parent injector to see if it's already been loaded (only want it loaded once)\r\n constructor( @Optional() @SkipSelf() parentModule: CoreModule) {\r\n super(parentModule);\r\n }\r\n}\r\n\r\n","/**\r\n * Dates du package, sans librairie (remplace moment) : lecture des valeurs de date reçues du serveur\r\n * (Date, chaîne ISO 8601, nombre de millisecondes) ou saisies (JJ/MM/AAAA), mise en forme par motif\r\n * (AAAA, MM, JJ, HH, mm, ss : `YYYY`, `MM`, `DD`, `HH`, `mm`, `ss`), en heure locale ou UTC.\r\n *\r\n * Une chaîne ISO sans fuseau (`2026-10-17`, `2026-10-17T08:30`) est lue en heure locale, comme\r\n * moment(...), ou en UTC (assumeUtc), comme moment.utc(...) ; avec `Z` ou un décalage, à l'instant\r\n * indiqué.\r\n */\r\nexport class DateUtils {\r\n private static readonly IsoPattern =\r\n /^(\\d{4})-(\\d{2})-(\\d{2})(?:[T ](\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{1,7}))?)?)?\\s*(Z|[+-]\\d{2}:?\\d{2})?$/i;\r\n\r\n private static readonly DayMonthYearPattern =\r\n /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})(?:\\s+(\\d{1,2}):(\\d{2})(?::(\\d{2}))?)?$/;\r\n\r\n /** Date valide, sinon null. */\r\n private static valid(date: Date): Date | null {\r\n return isNaN(date.getTime()) ? null : date;\r\n }\r\n\r\n /**\r\n * Valeur lue comme une date : Date valide, nombre de millisecondes, ou chaîne ISO 8601 ; null sinon\r\n * (chaîne quelconque, null, undefined).\r\n */\r\n static toDate(value: unknown, assumeUtc = false): Date | null {\r\n if (value instanceof Date)\r\n return DateUtils.valid(value);\r\n if (typeof value === 'number')\r\n return isFinite(value) ? DateUtils.valid(new Date(value)) : null;\r\n if (typeof value !== 'string')\r\n return null;\r\n return DateUtils.parseIso(value.trim(), assumeUtc);\r\n }\r\n\r\n /** Chaîne ISO 8601 (jour seul, avec heure, avec fuseau) ; null si elle n'en est pas une ou si la date n'existe pas. */\r\n static parseIso(text: string, assumeUtc = false): Date | null {\r\n const m = DateUtils.IsoPattern.exec(text ?? '');\r\n if (!m)\r\n return null;\r\n const [y, mo, d, h = '0', mi = '0', s = '0', frac = '0', zone] = m.slice(1);\r\n const ms = Math.round(Number('0.' + frac) * 1000);\r\n if (!DateUtils.isDay(+y, +mo, +d) || +h > 23 || +mi > 59 || +s > 59)\r\n return null;\r\n if (!zone && !assumeUtc)\r\n return DateUtils.valid(new Date(+y, +mo - 1, +d, +h, +mi, +s, ms));\r\n const utc = Date.UTC(+y, +mo - 1, +d, +h, +mi, +s, ms);\r\n if (!zone || zone.toUpperCase() === 'Z')\r\n return DateUtils.valid(new Date(utc));\r\n const sign = zone.startsWith('-') ? -1 : 1;\r\n const digits = zone.replace(/[+:-]/g, '');\r\n const offset = sign * (Number(digits.substring(0, 2)) * 60 + Number(digits.substring(2, 4)));\r\n return DateUtils.valid(new Date(utc - offset * 60000));\r\n }\r\n\r\n /** Saisie JJ/MM/AAAA, avec éventuellement HH:mm ou HH:mm:ss, en heure locale ; null sinon. */\r\n static parseDayMonthYear(text: string): Date | null {\r\n const m = DateUtils.DayMonthYearPattern.exec((text ?? '').trim());\r\n if (!m)\r\n return null;\r\n const [d, mo, y, h = '0', mi = '0', s = '0'] = m.slice(1);\r\n if (!DateUtils.isDay(+y, +mo, +d) || +h > 23 || +mi > 59 || +s > 59)\r\n return null;\r\n return new Date(+y, +mo - 1, +d, +h, +mi, +s);\r\n }\r\n\r\n /** Saisie d'une date dans une cellule ou un champ : JJ/MM/AAAA [HH:mm[:ss]], sinon ISO 8601 ; null sinon. */\r\n static parseInput(text: string): Date | null {\r\n const value = (text ?? '').trim();\r\n return DateUtils.parseDayMonthYear(value) ?? DateUtils.parseIso(value);\r\n }\r\n\r\n /** Indique si la valeur se lit comme une date (voir toDate). */\r\n static isValid(value: unknown): boolean {\r\n return DateUtils.toDate(value) !== null;\r\n }\r\n\r\n /** Indique si la valeur est une chaîne ISO 8601 de date (jour seul ou avec heure). */\r\n static isIsoString(value: unknown): value is string {\r\n return typeof value === 'string' && DateUtils.parseIso(value.trim()) !== null;\r\n }\r\n\r\n /**\r\n * Jour de la date, à minuit en heure locale, d'après ses composantes UTC (année, mois, jour) :\r\n * une date reçue à minuit UTC reste le même jour quel que soit le fuseau. Une chaîne JJ/MM/AAAA\r\n * donne ce jour. Null si la valeur n'est pas une date.\r\n */\r\n static toUtcDay(value: unknown): Date | null {\r\n if (typeof value === 'string' && value.includes('/')) {\r\n const d = DateUtils.parseDayMonthYear(value);\r\n return d ? new Date(d.getFullYear(), d.getMonth(), d.getDate()) : null;\r\n }\r\n const date = DateUtils.toDate(value, true);\r\n return date ? new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()) : null;\r\n }\r\n\r\n /** Valeur mise en forme en heure locale (motif YYYY, MM, DD, HH, mm, ss) ; chaîne vide si ce n'est pas une date. */\r\n static format(value: unknown, pattern: string): string {\r\n const date = DateUtils.toDate(value);\r\n return date ? DateUtils.apply(pattern, date.getFullYear(), date.getMonth() + 1, date.getDate(),\r\n date.getHours(), date.getMinutes(), date.getSeconds()) : '';\r\n }\r\n\r\n /**\r\n * Valeur mise en forme en UTC (motif YYYY, MM, DD, HH, mm, ss), une chaîne sans fuseau étant lue en\r\n * UTC ; chaîne vide si ce n'est pas une date.\r\n */\r\n static formatUtc(value: unknown, pattern = 'YYYY-MM-DDTHH:mm:ss[Z]'): string {\r\n const date = DateUtils.toDate(value, true);\r\n return date ? DateUtils.apply(pattern, date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(),\r\n date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()) : '';\r\n }\r\n\r\n /**\r\n * Indique si deux valeurs désignent le même instant, à la seconde près (deux non-dates : faux) ;\r\n * assumeUtc : une chaîne sans fuseau est lue en UTC.\r\n */\r\n static isSameSecond(a: unknown, b: unknown, assumeUtc = false): boolean {\r\n const d1 = DateUtils.toDate(a, assumeUtc);\r\n const d2 = DateUtils.toDate(b, assumeUtc);\r\n return !!d1 && !!d2 && Math.floor(d1.getTime() / 1000) === Math.floor(d2.getTime() / 1000);\r\n }\r\n\r\n /** Indique si deux valeurs tombent le même jour, en heure locale (deux non-dates : faux). */\r\n static isSameDay(a: unknown, b: unknown): boolean {\r\n const d1 = DateUtils.format(a, 'YYYY-MM-DD');\r\n return d1 !== '' && d1 === DateUtils.format(b, 'YYYY-MM-DD');\r\n }\r\n\r\n private static isDay(y: number, m: number, d: number): boolean {\r\n if (m < 1 || m > 12 || d < 1)\r\n return false;\r\n return d <= new Date(y, m, 0).getDate();\r\n }\r\n\r\n /** Remplace les jetons du motif ; un texte entre crochets ([T], [Z]) est recopié tel quel. */\r\n private static apply(pattern: string, y: number, mo: number, d: number, h: number, mi: number, s: number): string {\r\n const two = (n: number) => String(n).padStart(2, '0');\r\n return pattern.replace(/\\[([^\\]]*)\\]|YYYY|MM|DD|HH|mm|ss/g, (token, literal) => {\r\n if (literal !== undefined) return literal;\r\n switch (token) {\r\n case 'YYYY': return String(y).padStart(4, '0');\r\n case 'MM': return two(mo);\r\n case 'DD': return two(d);\r\n case 'HH': return two(h);\r\n case 'mm': return two(mi);\r\n default: return two(s);\r\n }\r\n });\r\n }\r\n}\r\n","import { DateUtils } from './date-utils';\r\n\r\nimport { HttpErrorResponse, HttpResponse, HttpResponseBase } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nexport const isArray = Array.isArray || ((x) => x && typeof x.length === 'number');\r\nexport function isNumeric(val) {\r\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\r\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\r\n // subtraction forces infinities to NaN\r\n // adding 1 corrects loss of precision from parseFloat (#15100)\r\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\r\n}\r\nexport function sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\n\r\n@Injectable()\r\nexport class Utilities {\r\n static delay(arg0: number) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n public static readonly captionAndMessageSeparator = \":\";\r\n public static readonly noNetworkMessageCaption = \"No Network\";\r\n public static readonly noNetworkMessageDetail = \"The server cannot be reached\";\r\n public static readonly accessDeniedMessageCaption = \"Access Denied!\";\r\n public static readonly accessDeniedMessageDetail = \"\";\r\n\r\n public static getHttpResponseMessage(data: HttpResponseBase | any): string[] {\r\n\r\n let responses: string[] = [];\r\n\r\n if (data instanceof HttpResponseBase) {\r\n\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n }\r\n else {\r\n let responseObject = this.getResponseBody(data);\r\n\r\n if (responseObject && (typeof responseObject === 'object' || responseObject instanceof Object)) {\r\n\r\n for (let key in responseObject) {\r\n if (key)\r\n responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n else if (responseObject[key])\r\n responses.push(responseObject[key].toString());\r\n }\r\n }\r\n }\r\n\r\n if (!responses.length && this.getResponseBody(data))\r\n responses.push(`${data.statusText}: ${this.getResponseBody(data).toString()}`);\r\n }\r\n\r\n if (!responses.length)\r\n responses.push(data.toString());\r\n\r\n if (this.checkAccessDenied(data))\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n\r\n\r\n return responses;\r\n }\r\n\r\n\r\n public static findHttpResponseMessage(messageToFind: string, data: HttpResponse<any> | any, seachInCaptionOnly = true, includeCaptionInResult = false): string {\r\n\r\n let searchString = messageToFind.toLowerCase();\r\n let httpMessages = this.getHttpResponseMessage(data);\r\n\r\n for (let message of httpMessages) {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n\r\n if (fullMessage.firstPart && fullMessage.firstPart.toLowerCase().indexOf(searchString) != -1) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n\r\n if (!seachInCaptionOnly) {\r\n for (let message of httpMessages) {\r\n\r\n if (message.toLowerCase().indexOf(searchString) != -1) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n }\r\n else {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n\r\n public static getResponseBody(response: HttpResponseBase) {\r\n if (response instanceof HttpResponse)\r\n return response.body;\r\n\r\n if (response instanceof HttpErrorResponse)\r\n return response.error || response.message || response.statusText;\r\n }\r\n\r\n\r\n public static checkNoNetwork(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkAccessDenied(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 403;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkNotFound(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 404;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkIsLocalHost(url: string, base?: string) {\r\n if (url) {\r\n let location = new URL(url, base);\r\n return location.hostname === \"localhost\" || location.hostname === \"127.0.0.1\";\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n\r\n public static getQueryParamsFromString(paramString: string) {\r\n\r\n if (!paramString)\r\n return null;\r\n\r\n let params: { [key: string]: string } = {};\r\n\r\n for (let param of paramString.split(\"&\")) {\r\n let keyValue = Utilities.splitInTwo(param, \"=\");\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n\r\n public static splitInTwo(text: string, separator: string): { firstPart: string, secondPart: string } {\r\n let separatorIndex = text.indexOf(separator);\r\n\r\n if (separatorIndex == -1)\r\n return { firstPart: text, secondPart: null };\r\n\r\n let part1 = text.substr(0, separatorIndex).trim();\r\n let part2 = text.substr(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n\r\n public static safeStringify(object) {\r\n\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n }\r\n catch (error) {\r\n\r\n }\r\n\r\n let simpleObject = {};\r\n\r\n for (let prop in object) {\r\n if (!object.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = \"[***Sanitized Object***]: \" + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n\r\n public static JSonTryParse(value: string) {\r\n try {\r\n return JSON.parse(value);\r\n }\r\n catch (e) {\r\n if (value === \"undefined\")\r\n return void 0;\r\n\r\n return value;\r\n }\r\n }\r\n\r\n public static isNonEmptyString(str: string) {\r\n return str && str.length > 0;\r\n }\r\n\r\n public static isEmptyString(str: string) {\r\n return Utilities.IsNil(str) || str.length === 0;\r\n }\r\n\r\n public static areValuesEqual (a: any, b: any) : boolean {\r\n if (a === b) return true;\r\n\r\n if (a instanceof Date && b instanceof Date) {\r\n return a.getTime() === b.getTime();\r\n }\r\n if (a?.valueOf && b?.valueOf) {\r\n return a.valueOf() === b.valueOf();\r\n }\r\n if (typeof a !== 'object' && typeof b !== 'object') {\r\n return a === b;\r\n }\r\n return JSON.stringify(a) === JSON.stringify(b);\r\n }\r\n\r\n public static TestIsObjectEmpty(obj: any) {\r\n for (let prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n public static IsUndefined(value: any) {\r\n return typeof value === 'undefined';\r\n }\r\n\r\n /**\r\n * Éléments du tableau sans doublon sur la propriété donnée (premier élément gardé, ordre conservé),\r\n * comme uniqBy de lodash ; tableau vide sans tableau.\r\n */\r\n public static uniqBy<T>(items: T[] | null | undefined, property: string): T[] {\r\n const seen = new Set<any>();\r\n return (items ?? []).filter(item => {\r\n const key = (item as any)?.[property];\r\n if (seen.has(key))\r\n return false;\r\n seen.add(key);\r\n return true;\r\n });\r\n }\r\n\r\n public static IsNil(value: any): boolean {\r\n return (value == null) || value === undefined || typeof value === 'undefined';\r\n }\r\n\r\n public static TestIsString(value: any) {\r\n return typeof value === 'string' || value instanceof String;\r\n }\r\n\r\n public static capitalizeFirstLetter(text: string) {\r\n if (text)\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n else\r\n return text;\r\n }\r\n\r\n\r\n public static toTitleCase(text: string) {\r\n return text.replace(/\\w\\S*/g, (subString) => {\r\n return subString.charAt(0).toUpperCase() + subString.substr(1).toLowerCase();\r\n });\r\n }\r\n\r\n\r\n public static toLowerCase(items: string)\r\n public static toLowerCase(items: string[])\r\n public static toLowerCase(items: any): string | string[] {\r\n\r\n if (items instanceof Array) {\r\n let loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n }\r\n else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n }\r\n\r\n\r\n public static uniqueId() {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n\r\n public static randomNumber(min: number, max: number) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n\r\n public static baseUrl() {\r\n let base = '';\r\n\r\n if (window.location.origin)\r\n base = window.location.origin;\r\n else\r\n base = window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n\r\n public static printDateOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n let dayNames = new Array(\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\");\r\n let monthNames = new Array(\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\");\r\n\r\n let dayOfWeek = date.getDay();\r\n let dayOfMonth = date.getDate();\r\n let sup = \"\";\r\n let month = date.getMonth();\r\n let year = date.getFullYear();\r\n\r\n if (dayOfMonth == 1 || dayOfMonth == 21 || dayOfMonth == 31) {\r\n sup = \"st\";\r\n }\r\n else if (dayOfMonth == 2 || dayOfMonth == 22) {\r\n sup = \"nd\";\r\n }\r\n else if (dayOfMonth == 3 || dayOfMonth == 23) {\r\n sup = \"rd\";\r\n }\r\n else {\r\n sup = \"th\";\r\n }\r\n\r\n let dateString = dayNames[dayOfWeek] + \", \" + dayOfMonth + sup + \" \" + monthNames[month] + \" \" + year;\r\n\r\n return dateString;\r\n }\r\n\r\n public static printTimeOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n let period = \"\";\r\n let minute = date.getMinutes().toString();\r\n let hour = date.getHours();\r\n\r\n period = hour < 12 ? \"AM\" : \"PM\";\r\n\r\n if (hour == 0) {\r\n hour = 12;\r\n }\r\n if (hour > 12) {\r\n hour = hour - 12;\r\n }\r\n\r\n if (minute.length == 1) {\r\n minute = \"0\" + minute;\r\n }\r\n\r\n let timeString = hour + \":\" + minute + \" \" + period;\r\n\r\n\r\n return timeString;\r\n }\r\n\r\n public static printDate(date: Date, separator = \"at\") {\r\n return `${Utilities.printDateOnly(date)} ${separator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n\r\n public static printFriendlyDate(date: Date, separator = \"-\") {\r\n let today = new Date(); today.setHours(0, 0, 0, 0);\r\n let yesterday = new Date(today); yesterday.setDate(yesterday.getDate() - 1);\r\n let test = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n\r\n if (test.toDateString() == today.toDateString())\r\n return `Today ${separator} ${Utilities.printTimeOnly(date)}`;\r\n if (test.toDateString() == yesterday.toDateString())\r\n return `Yesterday ${separator} ${Utilities.printTimeOnly(date)}`;\r\n else\r\n return Utilities.printDate(date, separator);\r\n }\r\n\r\n public static printShortDate(date: Date, separator = \"/\", dateTimeSeparator = \"-\") {\r\n\r\n var day = date.getDate().toString();\r\n var month = (date.getMonth() + 1).toString();\r\n var year = date.getFullYear();\r\n\r\n if (day.length == 1)\r\n day = \"0\" + day;\r\n\r\n if (month.length == 1)\r\n month = \"0\" + month;\r\n\r\n return `${month}${separator}${day}${separator}${year} ${dateTimeSeparator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n\r\n public static parseDate(date):Date {\r\n\r\n if (date) {\r\n\r\n if (date instanceof Date) {\r\n return date;\r\n }\r\n\r\n if (typeof date === 'string' || date instanceof String) {\r\n if (date.search(/[a-su-z+]/i) == -1)\r\n date = date + \"Z\";\r\n\r\n return new Date(date);\r\n }\r\n\r\n if (typeof date === 'number' || date instanceof Number) {\r\n return new Date(<any>date);\r\n }\r\n }\r\n }\r\n\r\n\r\n public static Format2Digits(n) {\r\n return n > 9 ? \"\" + n : \"0\" + n;\r\n }\r\n\r\n\r\n public static printDuration(start: Date, end: Date) {\r\n\r\n start = new Date(start);\r\n end = new Date(end);\r\n\r\n // get total seconds between the times\r\n let delta = Math.abs(start.valueOf() - end.valueOf()) / 1000;\r\n\r\n // calculate (and subtract) whole days\r\n let days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n\r\n // calculate (and subtract) whole hours\r\n let hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n\r\n // calculate (and subtract) whole minutes\r\n let minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n\r\n // what's left is seconds\r\n let seconds = delta % 60; // in theory the modulus is not required\r\n\r\n\r\n let printedDays = \"\";\r\n\r\n if (days)\r\n printedDays = `${days} days`;\r\n\r\n if (hours)\r\n printedDays += printedDays ? `, ${hours} hours` : `${hours} hours`;\r\n\r\n if (minutes)\r\n printedDays += printedDays ? `, ${minutes} minutes` : `${minutes} minutes`;\r\n\r\n if (seconds)\r\n printedDays += printedDays ? ` and ${seconds} seconds` : `${seconds} seconds`;\r\n\r\n\r\n if (!printedDays)\r\n printedDays = \"0\";\r\n\r\n return printedDays;\r\n }\r\n\r\n\r\n public static getAge(birthDate, otherDate) {\r\n birthDate = new Date(birthDate);\r\n otherDate = new Date(otherDate);\r\n\r\n let years = (otherDate.getFullYear() - birthDate.getFullYear());\r\n\r\n if (otherDate.getMonth() < birthDate.getMonth() ||\r\n otherDate.getMonth() == birthDate.getMonth() && otherDate.getDate() < birthDate.getDate()) {\r\n years--;\r\n }\r\n\r\n return years;\r\n }\r\n\r\n public static isDateAEarlierThanDateB(dateA: Date, dateB: Date)\r\n {\r\n return dateA.getFullYear() < dateB.getFullYear()\r\n ||(dateA.getFullYear() == dateB.getFullYear() && dateA.getMonth() < dateB.getMonth())\r\n ||(dateA.getMonth() == dateB.getMonth() && dateA.getDate() < dateB.getDate())\r\n }\r\n\r\n\r\n public static searchArray(searchTerm: string, caseSensitive: boolean, ...values: any[]) {\r\n\r\n if (!searchTerm)\r\n return true;\r\n\r\n\r\n if (!caseSensitive)\r\n searchTerm = searchTerm.toLowerCase();\r\n\r\n for (let value of values) {\r\n\r\n if (value != null) {\r\n let strValue = value.toString();\r\n\r\n if (!caseSensitive)\r\n strValue = strValue.toLowerCase();\r\n\r\n if (strValue.indexOf(searchTerm) !== -1)\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n public static moveArrayItem(array: any[], oldIndex, newIndex) {\r\n\r\n while (oldIndex < 0) {\r\n oldIndex += this.length;\r\n }\r\n\r\n while (newIndex < 0) {\r\n newIndex += this.length;\r\n }\r\n\r\n if (newIndex >= this.length) {\r\n var k = newIndex - this.length;\r\n while ((k--) + 1) {\r\n array.push(undefined);\r\n }\r\n }\r\n\r\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\r\n }\r\n\r\n\r\n public static expandCamelCase(text: string) {\r\n\r\n if (!text)\r\n return text;\r\n\r\n return text.replace(/([A-Z][a-z]+)/g, \" $1\")\r\n .replace(/([A-Z][A-Z]+)/g, \" $1\")\r\n .replace(/([^A-Za-z ]+)/g, \" $1\");\r\n }\r\n\r\n\r\n public static testIsAbsoluteUrl(url: string) {\r\n\r\n let r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n\r\n public static convertToAbsoluteUrl(url: string) {\r\n\r\n return Utilities.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n\r\n\r\n public static removeNulls(obj) {\r\n let isArray = obj instanceof Array;\r\n\r\n for (let k in obj) {\r\n if (obj[k] === null) {\r\n isArray ? obj.splice(k, 1) : delete obj[k];\r\n }\r\n else if (typeof obj[k] == \"object\") {\r\n Utilities.removeNulls(obj[k]);\r\n }\r\n\r\n if (isArray && obj.length == k) {\r\n Utilities.removeNulls(obj);\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n\r\n public static debounce(func: (...args) => any, wait: number, immediate?: boolean) {\r\n var timeout;\r\n\r\n return function () {\r\n var context = this;\r\n var args_ = arguments;\r\n\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate)\r\n func.apply(context, args_);\r\n };\r\n\r\n var callNow = immediate && !timeout;\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n\r\n if (callNow)\r\n func.apply(context, args_);\r\n };\r\n }\r\n\r\n\r\n\r\n public static cookies = {\r\n getItem: (sKey) => {\r\n return decodeURIComponent(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\r\n },\r\n setItem: (sKey, sValue, vEnd, sPath, sDomain, bSecure) => {\r\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\r\n return false;\r\n }\r\n\r\n var sExpires = \"\";\r\n\r\n if (vEnd) {\r\n switch (vEnd.constructor) {\r\n case Number:\r\n sExpires = vEnd === Infinity ? \"; expires=Fri, 31 Dec 9999 23:59:59 GMT\" : \"; max-age=\" + vEnd;\r\n break;\r\n case String:\r\n sExpires = \"; expires=\" + vEnd;\r\n break;\r\n case Date:\r\n sExpires = \"; expires=\" + vEnd.toUTCString();\r\n break;\r\n }\r\n }\r\n\r\n document.cookie = encodeURIComponent(sKey) + \"=\" + encodeURIComponent(sValue) + sExpires + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\") + (bSecure ? \"; secure\" : \"\");\r\n return true;\r\n },\r\n removeItem: (sKey, sPath, sDomain) => {\r\n if (!sKey) {\r\n return false;\r\n }\r\n document.cookie = encodeURIComponent(sKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT\" + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\");\r\n return true;\r\n },\r\n hasItem: (sKey) => {\r\n return (new RegExp(\"(?:^|;\\\\s*)\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\")).test(document.cookie);\r\n },\r\n keys: () => {\r\n var aKeys = document.cookie.replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, \"\").split(/\\s*(?:\\=[^;]*)?;\\s*/);\r\n for (var nIdx = 0; nIdx < aKeys.length; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); }\r\n return aKeys;\r\n }\r\n }\r\n\r\n public static isNumber(field: any) {\r\n return (typeof field === 'number' || field instanceof Number);\r\n }\r\n\r\n public static changeName(item: any): string {\r\n if (item)\r\n return item.replace(/[&\\/\\\\#,+()$~%.'\":*?<>{}]/g, '');\r\n return item;\r\n }\r\n\r\n public static transform<T>(value: T, args: any[] = null): { key: keyof T, value: any }[] {\r\n return Object.keys(value).map(k => {\r\n return { key: k as keyof T, value: value[k] }\r\n });\r\n }\r\n\r\n public static GetChannel(entityTypeKey: string) {\r\n\r\n\r\n if ( this.IsNil(entityTypeKey))\r\n return entityTypeKey;\r\n\r\n let k: string = entityTypeKey.toLowerCase();\r\n\r\n switch (k) {\r\n case \"shipment\":\r\n return \"SHP\";\r\n case \"dataimport\":\r\n return \"INP\";\r\n case \"request\":\r\n return \"RQT\";\r\n case \"synchronizedcompany\":\r\n return \"CPY\";\r\n case \"sellingorder\":\r\n return \"ORD\";\r\n case \"purchaseorder\":\r\n return \"ORD\";\r\n default:\r\n return entityTypeKey;\r\n }\r\n }\r\n\r\n public static getProp<T, K extends keyof T>(object: T, property: K): T[K] {\r\n return object[property];\r\n }\r\n\r\n /**\r\n * static getCustomDvalue: stringate\r\n */\r\n public static getCustomDate(value: string) : Date {\r\n\r\n // Jour de la valeur (JJ/MM/AAAA, sinon ISO d'après ses composantes UTC), à minuit en heure locale.\r\n return DateUtils.toUtcDay(value);\r\n }\r\n\r\n public static isLowerThan(value1:string|Date,value2:string|Date): boolean{\r\n let d1,d2: Date;\r\n\r\n if(typeof value1 === 'string')\r\n d1= this.getCustomDate(value1)\r\n else\r\n d1 = value1;\r\n\r\n if(typeof value2 === 'string')\r\n d2= this.getCustomDate(value2)\r\n else d2 = value2;\r\n\r\n return d1 < d2;\r\n }\r\n\r\n public static getLogClass(log: string) {\r\n let regexInfo = /INFO/g;\r\n let regexData = /DATA/g;\r\n let regexError = /ERROR/g;\r\n let regexWarn = /WARNING/g;\r\n\r\n if (regexInfo.test(log)) {\r\n return \"log-info\";\r\n }\r\n\r\n if (regexData.test(log)) {\r\n return \"log-data\";\r\n }\r\n\r\n if (regexError.test(log)) {\r\n return \"log-error\";\r\n }\r\n\r\n if (regexWarn.test(log)) {\r\n return \"log-warning\";\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n\r\n public static deepCopy(obj) {\r\n var copy;\r\n\r\n // Handle the 3 simple types, and null or undefined\r\n if (null == obj || \"object\" != typeof obj) return obj;\r\n\r\n // Handle Date\r\n if (obj instanceof Date) {\r\n copy = new Date();\r\n copy.setTime(obj.getTime());\r\n return copy;\r\n }\r\n\r\n // Handle Array\r\n if (obj instanceof Array) {\r\n copy = [];\r\n for (var i = 0, len = obj.length; i < len; i++) {\r\n copy[i] = Utilities.deepCopy(obj[i]);\r\n }\r\n return copy;\r\n }\r\n\r\n // Handle Object\r\n if (obj instanceof Object) {\r\n copy = {};\r\n for (var attr in obj) {\r\n if (obj.hasOwnProperty(attr)) copy[attr] = Utilities.deepCopy(obj[attr]);\r\n }\r\n return copy;\r\n }\r\n\r\n throw new Error(\"Unable to copy obj! Its type isn't supported.\");\r\n }\r\n\r\n public static getCleanNumber(initial:string) : number {\r\n\r\n // Si la chaine est vide, on renvoie 0\r\n let value: string = initial.replace(',', '.');\r\n\r\n if( ! isNumeric(value) ) {\r\n // On supprime tous les caractères qui ne sont pas des chiffres.\r\n value = '';\r\n let hasSeparator: boolean = false;\r\n for (var i = 0; i < initial.length; i++) {\r\n let ch= initial[i];\r\n if ( isNumeric(ch) ) {\r\n value = value + ch;\r\n }\r\n else if (! hasSeparator && (ch == '.' || ch == ',')) {\r\n value = value + ch;\r\n hasSeparator = true;\r\n }\r\n }\r\n\r\n value = value.replace(',', '.');\r\n if ( ! isNumeric(value) )\r\n return 0;\r\n }\r\n\r\n let n = Number.parseFloat(value);\r\n return n;\r\n }\r\n\r\n public static addDays(date : Date, days : number) : Date{\r\n var date = new Date(date.valueOf());\r\n date.setDate(date.getDate() + days);\r\n return date;\r\n }\r\n\r\n public static getFormattedParams(params: any): any {\r\n\r\n // Dans le cas d'un tableau, parcours tous les éléments du tableau pour formatter les\r\n let result: any;\r\n\r\n\r\n if (Array.isArray(params)) {\r\n if (params.length > 0 && typeof (params[0]) === 'number')\r\n return JSON.stringify(params);\r\n\r\n result = [];\r\n params.forEach(entity => {\r\n result.push(this.getFormattedParams(entity));\r\n });\r\n return JSON.stringify(result);\r\n }\r\n result = {};\r\n for (let key in params) {\r\n if (params.hasOwnProperty(key)) {\r\n let val = params[key];\r\n if (val !== undefined && val !== null) {\r\n //Handle the Date javascript object\r\n if (val instanceof Date) {\r\n val = `${Utilities.Format2Digits(val.getFullYear())}-${Utilities.Format2Digits(val.getMonth() + 1)}-${Utilities.Format2Digits(val.getDate())}T00:00:00.000Z`;\r\n }\r\n result[key] = val;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n}\r\n","export type valueOf<T> = T[keyof T];\r\nexport function nameof<T, V extends T[keyof T]>(f: (x: T) => V): valueOf<{ [K in keyof T]: T[K] extends V ? K : never }>;\r\nexport function nameof(f: (x: any) => any): keyof any {\r\n var p = new Proxy({}, {\r\n get: (target, key) => key\r\n })\r\n return f(p);\r\n}","// export function groupBy<TItem>(xs: TItem[], key: string) : {[key: string]: TItem[]}{\r\n// return xs.reduce(function(rv, x) {\r\n// (rv[x[key]] = rv[x[key]] || []).push(x);\r\n// return rv;\r\n// }, {});\r\n// };\r\n\r\n\r\n export function groupBy<TItem>(xs: TItem[], key: Extract<keyof TItem,string>) : {[key: string]: TItem[]}{\r\n return xs.reduce(function(rv, x) {\r\n (rv[x[key]as any] = rv[x[key]as any] || []).push(x);\r\n return rv;\r\n }, {});\r\n };\r\n\r\n export function groupByFunc<TItem,TKey>(xs: TItem[], func:((i:TItem)=>string)) : {[key: string]: TItem[]}{\r\n return xs.reduce(function(rv, x) {\r\n let k = func(x);\r\n (rv[k] = rv[k] || []).push(x);\r\n return rv;\r\n }, {});\r\n };\r\n\r\n export function sumOf<TItem>(xs:TItem[],func:((i:TItem)=>number)) : number{\r\n return xs.map(func).reduce((a,b)=>a+b);\r\n }\r\n\r\n // https://codereview.stackexchange.com/a/100843\r\n export function distinct(array:(number|string)[]) : (number|string)[]{\r\n return array.reduce(function(carry, item){\r\n if(item && !~carry.indexOf(item))\r\n carry.push(item);\r\n return carry;\r\n }, []);\r\n }\r\n ","export abstract class EnvironmentBase {\r\n abstract readonly production: boolean;\r\n abstract readonly fileUrl: string;\r\n abstract readonly baseUrl: string;\r\n abstract readonly apiUrl: string;\r\n abstract readonly hubUrl: string;\r\n\r\n /**\r\n * Nom de l'application, affiché dans la barre supérieure et sur la page d'accueil.\r\n * \"DFlat\" par défaut.\r\n */\r\n readonly appName?: string;\r\n\r\n /**\r\n * Logo affiché à côté du nom de l'application.\r\n * \"assets/images/dflat-icone-positif.svg\" (fourni par le package) par défaut.\r\n */\r\n readonly appLogoUrl?: string;\r\n\r\n /**\r\n * Logo affiché sur la page d'accueil, au-dessus de la barre de recherche.\r\n * \"assets/images/dflat-icone.svg\" (fourni par le package) par défaut.\r\n */\r\n readonly appHomeLogoUrl?: string;\r\n\r\n /**\r\n * Version affichée sur la page d'accueil, qui renvoie vers la page des nouveautés.\r\n * Masquée si elle n'est pas renseignée.\r\n */\r\n readonly appVersion?: string;\r\n};\r\n"],"mappings":"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"}
|
|
@@ -1437,11 +1437,46 @@ var PresentationProfileDataService = class PresentationProfileDataService extend
|
|
|
1437
1437
|
super(dataService);
|
|
1438
1438
|
this.dataService = dataService;
|
|
1439
1439
|
}
|
|
1440
|
+
deleteView(request) {
|
|
1441
|
+
const _url = this.dataService.baseUrl + "/" + this.getEntityKey() + "/DeleteView";
|
|
1442
|
+
const requestParams = this.dataService.getFormattedParams(request);
|
|
1443
|
+
return this.dataService.httpClient.post(_url, requestParams);
|
|
1444
|
+
}
|
|
1445
|
+
duplicateView(request) {
|
|
1446
|
+
const _url = this.dataService.baseUrl + "/" + this.getEntityKey() + "/DuplicateView";
|
|
1447
|
+
const requestParams = this.dataService.getFormattedParams(request);
|
|
1448
|
+
return this.dataService.httpClient.post(_url, requestParams);
|
|
1449
|
+
}
|
|
1450
|
+
getCardView(request) {
|
|
1451
|
+
const _url = this.dataService.baseUrl + "/" + this.getEntityKey() + "/GetCardView";
|
|
1452
|
+
const requestParams = this.dataService.getFormattedParams(request);
|
|
1453
|
+
return this.dataService.httpClient.post(_url, requestParams);
|
|
1454
|
+
}
|
|
1455
|
+
getUserViews(request) {
|
|
1456
|
+
const _url = this.dataService.baseUrl + "/" + this.getEntityKey() + "/GetUserViews";
|
|
1457
|
+
const requestParams = this.dataService.getFormattedParams(request);
|
|
1458
|
+
return this.dataService.httpClient.post(_url, requestParams);
|
|
1459
|
+
}
|
|
1460
|
+
linkCardView(request) {
|
|
1461
|
+
const _url = this.dataService.baseUrl + "/" + this.getEntityKey() + "/LinkCardView";
|
|
1462
|
+
const requestParams = this.dataService.getFormattedParams(request);
|
|
1463
|
+
return this.dataService.httpClient.post(_url, requestParams);
|
|
1464
|
+
}
|
|
1465
|
+
renameView(request) {
|
|
1466
|
+
const _url = this.dataService.baseUrl + "/" + this.getEntityKey() + "/RenameView";
|
|
1467
|
+
const requestParams = this.dataService.getFormattedParams(request);
|
|
1468
|
+
return this.dataService.httpClient.post(_url, requestParams);
|
|
1469
|
+
}
|
|
1440
1470
|
savePresentationProfile(model) {
|
|
1441
1471
|
const _url = this.dataService.baseUrl + "/" + this.getEntityKey() + "/SavePresentationProfile";
|
|
1442
1472
|
const requestParams = this.dataService.getFormattedParams(model);
|
|
1443
1473
|
return this.dataService.httpClient.post(_url, requestParams);
|
|
1444
1474
|
}
|
|
1475
|
+
selectView(request) {
|
|
1476
|
+
const _url = this.dataService.baseUrl + "/" + this.getEntityKey() + "/SelectView";
|
|
1477
|
+
const requestParams = this.dataService.getFormattedParams(request);
|
|
1478
|
+
return this.dataService.httpClient.post(_url, requestParams);
|
|
1479
|
+
}
|
|
1445
1480
|
static {
|
|
1446
1481
|
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
1447
1482
|
minVersion: "12.0.0",
|