cats-data-grid 0.0.2 → 0.0.5
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 +63 -63
- package/ng-package.json +20 -0
- package/package.json +5 -16
- package/src/lib/assets/images/check-white.svg +3 -0
- package/src/lib/assets/images/filter-icon.svg +1 -0
- package/src/lib/assets/images/gripper.svg +8 -0
- package/src/lib/assets/images/minus-blue.svg +3 -0
- package/src/lib/assets/images/pin.svg +4 -0
- package/src/lib/assets/images/t-arrow-down.svg +4 -0
- package/src/lib/assets/images/t-arrow-up.svg +4 -0
- package/src/lib/assets/images/t-choose-column.svg +3 -0
- package/src/lib/assets/images/t-data-pipeline.svg +13 -0
- package/src/lib/assets/images/t-filter-applied.svg +4 -0
- package/src/lib/assets/images/t-filter.svg +3 -0
- package/src/lib/assets/images/t-gripper.svg +8 -0
- package/src/lib/assets/images/t-group-by-name.svg +3 -0
- package/src/lib/assets/images/t-more-vertical.svg +5 -0
- package/src/lib/assets/images/t-move.svg +15 -0
- package/src/lib/assets/images/t-x.svg +4 -0
- package/src/lib/cats-data-grid.component.html +1389 -0
- package/src/lib/cats-data-grid.component.scss +736 -0
- package/src/lib/cats-data-grid.component.ts +1756 -0
- package/src/lib/common-components/common-calendar/common-calendar.component.html +228 -0
- package/src/lib/common-components/common-calendar/common-calendar.component.scss +279 -0
- package/src/lib/common-components/common-calendar/common-calendar.component.spec.ts +23 -0
- package/src/lib/common-components/common-calendar/common-calendar.component.ts +606 -0
- package/src/lib/common-components/common-input/common-input.component.html +36 -0
- package/src/lib/common-components/common-input/common-input.component.scss +3 -0
- package/src/lib/common-components/common-input/common-input.component.spec.ts +23 -0
- package/src/lib/common-components/common-input/common-input.component.ts +51 -0
- package/src/lib/directives/adaptive-position.directive.ts +192 -0
- package/src/lib/directives/outside-click.directive.ts +32 -0
- package/src/lib/directives/renderer-parser.directive.ts +51 -0
- package/src/lib/pipes/add-class.pipe.ts +18 -0
- package/src/lib/renderers/common-renderer/common-renderer.component.html +129 -0
- package/src/lib/renderers/common-renderer/common-renderer.component.scss +256 -0
- package/src/lib/renderers/common-renderer/common-renderer.component.spec.ts +23 -0
- package/src/lib/renderers/common-renderer/common-renderer.component.ts +302 -0
- package/src/lib/services/cats-data-grid.service.spec.ts +16 -0
- package/src/lib/services/cats-data-grid.service.ts +9 -0
- package/{styles → src/lib/styles}/_index.scss +3 -3
- package/{styles → src/lib/styles}/base/_fonts.scss +74 -74
- package/{styles → src/lib/styles}/base/_index.scss +1 -1
- package/{styles → src/lib/styles}/base/_reset.scss +60 -60
- package/src/lib/styles/component/_form.scss +371 -0
- package/{styles → src/lib/styles}/component/_index.scss +1 -1
- package/{styles → src/lib/styles}/sass-utils/_function.scss +14 -14
- package/{styles → src/lib/styles}/sass-utils/_index.scss +3 -3
- package/{styles → src/lib/styles}/sass-utils/_mixin.scss +87 -56
- package/src/lib/styles/sass-utils/_variable.scss +77 -0
- package/src/public-api.ts +7 -0
- package/tsconfig.lib.json +15 -0
- package/tsconfig.lib.prod.json +11 -0
- package/tsconfig.spec.json +15 -0
- package/fesm2022/cats-data-grid.mjs +0 -530
- package/fesm2022/cats-data-grid.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/cats-data-grid.component.d.ts +0 -148
- package/lib/directives/outside-click.directive.d.ts +0 -10
- package/lib/directives/renderer-parser.directive.d.ts +0 -15
- package/lib/pipes/add-class.pipe.d.ts +0 -7
- package/lib/services/cats-data-grid.service.d.ts +0 -6
- package/public-api.d.ts +0 -2
- package/styles/component/_form.scss +0 -246
- package/styles/sass-utils/_variable.scss +0 -66
- /package/{assets → src/lib/assets}/images/activity.svg +0 -0
- /package/{assets → src/lib/assets}/images/airplay.svg +0 -0
- /package/{assets → src/lib/assets}/images/alert-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/alert-octagon.svg +0 -0
- /package/{assets → src/lib/assets}/images/alert-triangle.svg +0 -0
- /package/{assets → src/lib/assets}/images/align-center.svg +0 -0
- /package/{assets → src/lib/assets}/images/align-justify.svg +0 -0
- /package/{assets → src/lib/assets}/images/align-left.svg +0 -0
- /package/{assets → src/lib/assets}/images/align-right.svg +0 -0
- /package/{assets → src/lib/assets}/images/anchor.svg +0 -0
- /package/{assets → src/lib/assets}/images/aperture.svg +0 -0
- /package/{assets → src/lib/assets}/images/archive.svg +0 -0
- /package/{assets → src/lib/assets}/images/arrow-down-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/arrow-down-left.svg +0 -0
- /package/{assets → src/lib/assets}/images/arrow-down-right.svg +0 -0
- /package/{assets → src/lib/assets}/images/arrow-down.svg +0 -0
- /package/{assets → src/lib/assets}/images/arrow-left-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/arrow-left.svg +0 -0
- /package/{assets → src/lib/assets}/images/arrow-right-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/arrow-right.svg +0 -0
- /package/{assets → src/lib/assets}/images/arrow-up-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/arrow-up-left.svg +0 -0
- /package/{assets → src/lib/assets}/images/arrow-up-right.svg +0 -0
- /package/{assets → src/lib/assets}/images/arrow-up.svg +0 -0
- /package/{assets → src/lib/assets}/images/at-sign.svg +0 -0
- /package/{assets → src/lib/assets}/images/award.svg +0 -0
- /package/{assets → src/lib/assets}/images/bar-chart-2.svg +0 -0
- /package/{assets → src/lib/assets}/images/bar-chart.svg +0 -0
- /package/{assets → src/lib/assets}/images/battery-charging.svg +0 -0
- /package/{assets → src/lib/assets}/images/battery.svg +0 -0
- /package/{assets → src/lib/assets}/images/bell-off.svg +0 -0
- /package/{assets → src/lib/assets}/images/bell.svg +0 -0
- /package/{assets → src/lib/assets}/images/bluetooth.svg +0 -0
- /package/{assets → src/lib/assets}/images/bold.svg +0 -0
- /package/{assets → src/lib/assets}/images/book-open.svg +0 -0
- /package/{assets → src/lib/assets}/images/book.svg +0 -0
- /package/{assets → src/lib/assets}/images/bookmark.svg +0 -0
- /package/{assets → src/lib/assets}/images/box.svg +0 -0
- /package/{assets → src/lib/assets}/images/briefcase.svg +0 -0
- /package/{assets → src/lib/assets}/images/calendar.svg +0 -0
- /package/{assets → src/lib/assets}/images/camera-off.svg +0 -0
- /package/{assets → src/lib/assets}/images/camera.svg +0 -0
- /package/{assets → src/lib/assets}/images/cast.svg +0 -0
- /package/{assets → src/lib/assets}/images/check-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/check-square.svg +0 -0
- /package/{assets → src/lib/assets}/images/check.svg +0 -0
- /package/{assets → src/lib/assets}/images/chevron-down.svg +0 -0
- /package/{assets → src/lib/assets}/images/chevron-left.svg +0 -0
- /package/{assets → src/lib/assets}/images/chevron-right.svg +0 -0
- /package/{assets → src/lib/assets}/images/chevron-up.svg +0 -0
- /package/{assets → src/lib/assets}/images/chevrons-down.svg +0 -0
- /package/{assets → src/lib/assets}/images/chevrons-left.svg +0 -0
- /package/{assets → src/lib/assets}/images/chevrons-right.svg +0 -0
- /package/{assets → src/lib/assets}/images/chevrons-up.svg +0 -0
- /package/{assets → src/lib/assets}/images/chrome.svg +0 -0
- /package/{assets → src/lib/assets}/images/circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/clipboard.svg +0 -0
- /package/{assets → src/lib/assets}/images/clock.svg +0 -0
- /package/{assets → src/lib/assets}/images/cloud-drizzle.svg +0 -0
- /package/{assets → src/lib/assets}/images/cloud-lightning.svg +0 -0
- /package/{assets → src/lib/assets}/images/cloud-off.svg +0 -0
- /package/{assets → src/lib/assets}/images/cloud-rain.svg +0 -0
- /package/{assets → src/lib/assets}/images/cloud-snow.svg +0 -0
- /package/{assets → src/lib/assets}/images/cloud.svg +0 -0
- /package/{assets → src/lib/assets}/images/code.svg +0 -0
- /package/{assets → src/lib/assets}/images/codepen.svg +0 -0
- /package/{assets → src/lib/assets}/images/codesandbox.svg +0 -0
- /package/{assets → src/lib/assets}/images/coffee.svg +0 -0
- /package/{assets → src/lib/assets}/images/columns.svg +0 -0
- /package/{assets → src/lib/assets}/images/command.svg +0 -0
- /package/{assets → src/lib/assets}/images/compass.svg +0 -0
- /package/{assets → src/lib/assets}/images/copy.svg +0 -0
- /package/{assets → src/lib/assets}/images/corner-down-left.svg +0 -0
- /package/{assets → src/lib/assets}/images/corner-down-right.svg +0 -0
- /package/{assets → src/lib/assets}/images/corner-left-down.svg +0 -0
- /package/{assets → src/lib/assets}/images/corner-left-up.svg +0 -0
- /package/{assets → src/lib/assets}/images/corner-right-down.svg +0 -0
- /package/{assets → src/lib/assets}/images/corner-right-up.svg +0 -0
- /package/{assets → src/lib/assets}/images/corner-up-left.svg +0 -0
- /package/{assets → src/lib/assets}/images/corner-up-right.svg +0 -0
- /package/{assets → src/lib/assets}/images/cpu.svg +0 -0
- /package/{assets → src/lib/assets}/images/credit-card.svg +0 -0
- /package/{assets → src/lib/assets}/images/crop.svg +0 -0
- /package/{assets → src/lib/assets}/images/crosshair.svg +0 -0
- /package/{assets → src/lib/assets}/images/database.svg +0 -0
- /package/{assets → src/lib/assets}/images/delete.svg +0 -0
- /package/{assets → src/lib/assets}/images/disc.svg +0 -0
- /package/{assets → src/lib/assets}/images/divide-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/divide-square.svg +0 -0
- /package/{assets → src/lib/assets}/images/divide.svg +0 -0
- /package/{assets → src/lib/assets}/images/dollar-sign.svg +0 -0
- /package/{assets → src/lib/assets}/images/download-cloud.svg +0 -0
- /package/{assets → src/lib/assets}/images/download.svg +0 -0
- /package/{assets → src/lib/assets}/images/dribbble.svg +0 -0
- /package/{assets → src/lib/assets}/images/droplet.svg +0 -0
- /package/{assets → src/lib/assets}/images/edit-2.svg +0 -0
- /package/{assets → src/lib/assets}/images/edit-3.svg +0 -0
- /package/{assets → src/lib/assets}/images/edit.svg +0 -0
- /package/{assets → src/lib/assets}/images/external-link.svg +0 -0
- /package/{assets → src/lib/assets}/images/eye-off.svg +0 -0
- /package/{assets → src/lib/assets}/images/eye.svg +0 -0
- /package/{assets → src/lib/assets}/images/facebook.svg +0 -0
- /package/{assets → src/lib/assets}/images/fast-forward.svg +0 -0
- /package/{assets → src/lib/assets}/images/feather.svg +0 -0
- /package/{assets → src/lib/assets}/images/figma.svg +0 -0
- /package/{assets → src/lib/assets}/images/file-minus.svg +0 -0
- /package/{assets → src/lib/assets}/images/file-plus.svg +0 -0
- /package/{assets → src/lib/assets}/images/file-text.svg +0 -0
- /package/{assets → src/lib/assets}/images/file.svg +0 -0
- /package/{assets → src/lib/assets}/images/film.svg +0 -0
- /package/{assets → src/lib/assets}/images/filter.svg +0 -0
- /package/{assets → src/lib/assets}/images/flag.svg +0 -0
- /package/{assets → src/lib/assets}/images/folder-minus.svg +0 -0
- /package/{assets → src/lib/assets}/images/folder-plus.svg +0 -0
- /package/{assets → src/lib/assets}/images/folder.svg +0 -0
- /package/{assets → src/lib/assets}/images/framer.svg +0 -0
- /package/{assets → src/lib/assets}/images/frown.svg +0 -0
- /package/{assets → src/lib/assets}/images/gift.svg +0 -0
- /package/{assets → src/lib/assets}/images/git-branch.svg +0 -0
- /package/{assets → src/lib/assets}/images/git-commit.svg +0 -0
- /package/{assets → src/lib/assets}/images/git-merge.svg +0 -0
- /package/{assets → src/lib/assets}/images/git-pull-request.svg +0 -0
- /package/{assets → src/lib/assets}/images/github.svg +0 -0
- /package/{assets → src/lib/assets}/images/gitlab.svg +0 -0
- /package/{assets → src/lib/assets}/images/globe.svg +0 -0
- /package/{assets → src/lib/assets}/images/grid.svg +0 -0
- /package/{assets → src/lib/assets}/images/hard-drive.svg +0 -0
- /package/{assets → src/lib/assets}/images/hash.svg +0 -0
- /package/{assets → src/lib/assets}/images/headphones.svg +0 -0
- /package/{assets → src/lib/assets}/images/heart.svg +0 -0
- /package/{assets → src/lib/assets}/images/help-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/hexagon.svg +0 -0
- /package/{assets → src/lib/assets}/images/home.svg +0 -0
- /package/{assets → src/lib/assets}/images/image.svg +0 -0
- /package/{assets → src/lib/assets}/images/inbox.svg +0 -0
- /package/{assets → src/lib/assets}/images/info.svg +0 -0
- /package/{assets → src/lib/assets}/images/instagram.svg +0 -0
- /package/{assets → src/lib/assets}/images/italic.svg +0 -0
- /package/{assets → src/lib/assets}/images/key.svg +0 -0
- /package/{assets → src/lib/assets}/images/layers.svg +0 -0
- /package/{assets → src/lib/assets}/images/layout.svg +0 -0
- /package/{assets → src/lib/assets}/images/life-buoy.svg +0 -0
- /package/{assets → src/lib/assets}/images/link-2.svg +0 -0
- /package/{assets → src/lib/assets}/images/link.svg +0 -0
- /package/{assets → src/lib/assets}/images/linkedin.svg +0 -0
- /package/{assets → src/lib/assets}/images/list.svg +0 -0
- /package/{assets → src/lib/assets}/images/loader.svg +0 -0
- /package/{assets → src/lib/assets}/images/lock.svg +0 -0
- /package/{assets → src/lib/assets}/images/log-in.svg +0 -0
- /package/{assets → src/lib/assets}/images/log-out.svg +0 -0
- /package/{assets → src/lib/assets}/images/mail.svg +0 -0
- /package/{assets → src/lib/assets}/images/map-pin.svg +0 -0
- /package/{assets → src/lib/assets}/images/map.svg +0 -0
- /package/{assets → src/lib/assets}/images/maximize-2.svg +0 -0
- /package/{assets → src/lib/assets}/images/maximize.svg +0 -0
- /package/{assets → src/lib/assets}/images/meh.svg +0 -0
- /package/{assets → src/lib/assets}/images/menu.svg +0 -0
- /package/{assets → src/lib/assets}/images/message-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/message-square.svg +0 -0
- /package/{assets → src/lib/assets}/images/mic-off.svg +0 -0
- /package/{assets → src/lib/assets}/images/mic.svg +0 -0
- /package/{assets → src/lib/assets}/images/minimize-2.svg +0 -0
- /package/{assets → src/lib/assets}/images/minimize.svg +0 -0
- /package/{assets → src/lib/assets}/images/minus-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/minus-square.svg +0 -0
- /package/{assets → src/lib/assets}/images/minus.svg +0 -0
- /package/{assets → src/lib/assets}/images/monitor.svg +0 -0
- /package/{assets → src/lib/assets}/images/moon.svg +0 -0
- /package/{assets → src/lib/assets}/images/more-horizontal.svg +0 -0
- /package/{assets → src/lib/assets}/images/more-vertical.svg +0 -0
- /package/{assets → src/lib/assets}/images/mouse-pointer.svg +0 -0
- /package/{assets → src/lib/assets}/images/move.svg +0 -0
- /package/{assets → src/lib/assets}/images/music.svg +0 -0
- /package/{assets → src/lib/assets}/images/navigation-2.svg +0 -0
- /package/{assets → src/lib/assets}/images/navigation.svg +0 -0
- /package/{assets → src/lib/assets}/images/octagon.svg +0 -0
- /package/{assets → src/lib/assets}/images/package.svg +0 -0
- /package/{assets → src/lib/assets}/images/paperclip.svg +0 -0
- /package/{assets → src/lib/assets}/images/pause-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/pause.svg +0 -0
- /package/{assets → src/lib/assets}/images/pen-tool.svg +0 -0
- /package/{assets → src/lib/assets}/images/percent.svg +0 -0
- /package/{assets → src/lib/assets}/images/phone-call.svg +0 -0
- /package/{assets → src/lib/assets}/images/phone-forwarded.svg +0 -0
- /package/{assets → src/lib/assets}/images/phone-incoming.svg +0 -0
- /package/{assets → src/lib/assets}/images/phone-missed.svg +0 -0
- /package/{assets → src/lib/assets}/images/phone-off.svg +0 -0
- /package/{assets → src/lib/assets}/images/phone-outgoing.svg +0 -0
- /package/{assets → src/lib/assets}/images/phone.svg +0 -0
- /package/{assets → src/lib/assets}/images/pie-chart.svg +0 -0
- /package/{assets → src/lib/assets}/images/play-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/play.svg +0 -0
- /package/{assets → src/lib/assets}/images/plus-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/plus-square.svg +0 -0
- /package/{assets → src/lib/assets}/images/plus.svg +0 -0
- /package/{assets → src/lib/assets}/images/pocket.svg +0 -0
- /package/{assets → src/lib/assets}/images/power.svg +0 -0
- /package/{assets → src/lib/assets}/images/printer.svg +0 -0
- /package/{assets → src/lib/assets}/images/radio.svg +0 -0
- /package/{assets → src/lib/assets}/images/refresh-ccw.svg +0 -0
- /package/{assets → src/lib/assets}/images/refresh-cw.svg +0 -0
- /package/{assets → src/lib/assets}/images/repeat.svg +0 -0
- /package/{assets → src/lib/assets}/images/rewind.svg +0 -0
- /package/{assets → src/lib/assets}/images/rotate-ccw.svg +0 -0
- /package/{assets → src/lib/assets}/images/rotate-cw.svg +0 -0
- /package/{assets → src/lib/assets}/images/rss.svg +0 -0
- /package/{assets → src/lib/assets}/images/save.svg +0 -0
- /package/{assets → src/lib/assets}/images/scissors.svg +0 -0
- /package/{assets → src/lib/assets}/images/search.svg +0 -0
- /package/{assets → src/lib/assets}/images/send.svg +0 -0
- /package/{assets → src/lib/assets}/images/server.svg +0 -0
- /package/{assets → src/lib/assets}/images/settings.svg +0 -0
- /package/{assets → src/lib/assets}/images/share-2.svg +0 -0
- /package/{assets → src/lib/assets}/images/share.svg +0 -0
- /package/{assets → src/lib/assets}/images/shield-off.svg +0 -0
- /package/{assets → src/lib/assets}/images/shield.svg +0 -0
- /package/{assets → src/lib/assets}/images/shopping-bag.svg +0 -0
- /package/{assets → src/lib/assets}/images/shopping-cart.svg +0 -0
- /package/{assets → src/lib/assets}/images/shuffle.svg +0 -0
- /package/{assets → src/lib/assets}/images/sidebar.svg +0 -0
- /package/{assets → src/lib/assets}/images/skip-back.svg +0 -0
- /package/{assets → src/lib/assets}/images/skip-forward.svg +0 -0
- /package/{assets → src/lib/assets}/images/slack.svg +0 -0
- /package/{assets → src/lib/assets}/images/slash.svg +0 -0
- /package/{assets → src/lib/assets}/images/sliders.svg +0 -0
- /package/{assets → src/lib/assets}/images/smartphone.svg +0 -0
- /package/{assets → src/lib/assets}/images/smile.svg +0 -0
- /package/{assets → src/lib/assets}/images/sort_down.svg +0 -0
- /package/{assets → src/lib/assets}/images/sort_up.svg +0 -0
- /package/{assets → src/lib/assets}/images/speaker.svg +0 -0
- /package/{assets → src/lib/assets}/images/square.svg +0 -0
- /package/{assets → src/lib/assets}/images/star.svg +0 -0
- /package/{assets → src/lib/assets}/images/stop-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/sun.svg +0 -0
- /package/{assets → src/lib/assets}/images/sunrise.svg +0 -0
- /package/{assets → src/lib/assets}/images/sunset.svg +0 -0
- /package/{assets → src/lib/assets}/images/table.svg +0 -0
- /package/{assets → src/lib/assets}/images/tablet.svg +0 -0
- /package/{assets → src/lib/assets}/images/tag.svg +0 -0
- /package/{assets → src/lib/assets}/images/target.svg +0 -0
- /package/{assets → src/lib/assets}/images/terminal.svg +0 -0
- /package/{assets → src/lib/assets}/images/thermometer.svg +0 -0
- /package/{assets → src/lib/assets}/images/thumbs-down.svg +0 -0
- /package/{assets → src/lib/assets}/images/thumbs-up.svg +0 -0
- /package/{assets → src/lib/assets}/images/toggle-left.svg +0 -0
- /package/{assets → src/lib/assets}/images/toggle-right.svg +0 -0
- /package/{assets → src/lib/assets}/images/tool.svg +0 -0
- /package/{assets → src/lib/assets}/images/trash-2.svg +0 -0
- /package/{assets → src/lib/assets}/images/trash.svg +0 -0
- /package/{assets → src/lib/assets}/images/trello.svg +0 -0
- /package/{assets → src/lib/assets}/images/trending-down.svg +0 -0
- /package/{assets → src/lib/assets}/images/trending-up.svg +0 -0
- /package/{assets → src/lib/assets}/images/triangle.svg +0 -0
- /package/{assets → src/lib/assets}/images/truck.svg +0 -0
- /package/{assets → src/lib/assets}/images/tv.svg +0 -0
- /package/{assets → src/lib/assets}/images/twitch.svg +0 -0
- /package/{assets → src/lib/assets}/images/twitter.svg +0 -0
- /package/{assets → src/lib/assets}/images/type.svg +0 -0
- /package/{assets → src/lib/assets}/images/umbrella.svg +0 -0
- /package/{assets → src/lib/assets}/images/underline.svg +0 -0
- /package/{assets → src/lib/assets}/images/unlock.svg +0 -0
- /package/{assets → src/lib/assets}/images/upload-cloud.svg +0 -0
- /package/{assets → src/lib/assets}/images/upload.svg +0 -0
- /package/{assets → src/lib/assets}/images/user-check.svg +0 -0
- /package/{assets → src/lib/assets}/images/user-minus.svg +0 -0
- /package/{assets → src/lib/assets}/images/user-plus.svg +0 -0
- /package/{assets → src/lib/assets}/images/user-x.svg +0 -0
- /package/{assets → src/lib/assets}/images/user.svg +0 -0
- /package/{assets → src/lib/assets}/images/users.svg +0 -0
- /package/{assets → src/lib/assets}/images/video-off.svg +0 -0
- /package/{assets → src/lib/assets}/images/video.svg +0 -0
- /package/{assets → src/lib/assets}/images/voicemail.svg +0 -0
- /package/{assets → src/lib/assets}/images/volume-1.svg +0 -0
- /package/{assets → src/lib/assets}/images/volume-2.svg +0 -0
- /package/{assets → src/lib/assets}/images/volume-x.svg +0 -0
- /package/{assets → src/lib/assets}/images/volume.svg +0 -0
- /package/{assets → src/lib/assets}/images/watch.svg +0 -0
- /package/{assets → src/lib/assets}/images/wifi-off.svg +0 -0
- /package/{assets → src/lib/assets}/images/wifi.svg +0 -0
- /package/{assets → src/lib/assets}/images/wind.svg +0 -0
- /package/{assets → src/lib/assets}/images/x-circle.svg +0 -0
- /package/{assets → src/lib/assets}/images/x-octagon.svg +0 -0
- /package/{assets → src/lib/assets}/images/x-square.svg +0 -0
- /package/{assets → src/lib/assets}/images/x.svg +0 -0
- /package/{assets → src/lib/assets}/images/youtube.svg +0 -0
- /package/{assets → src/lib/assets}/images/zap-off.svg +0 -0
- /package/{assets → src/lib/assets}/images/zap.svg +0 -0
- /package/{assets → src/lib/assets}/images/zoom-in.svg +0 -0
- /package/{assets → src/lib/assets}/images/zoom-out.svg +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import {
|
|
3
|
+
Component,
|
|
4
|
+
EventEmitter,
|
|
5
|
+
HostListener,
|
|
6
|
+
Input,
|
|
7
|
+
Output,
|
|
8
|
+
} from '@angular/core';
|
|
9
|
+
|
|
10
|
+
@Component({
|
|
11
|
+
selector: 'lib-common-input',
|
|
12
|
+
imports: [CommonModule],
|
|
13
|
+
templateUrl: './common-input.component.html',
|
|
14
|
+
styleUrl: './common-input.component.scss',
|
|
15
|
+
})
|
|
16
|
+
export class CommonInputComponent {
|
|
17
|
+
@Input() options: { label: string; value: any }[] = [];
|
|
18
|
+
@Input() selectedValue: any;
|
|
19
|
+
@Input() placeholder = 'Select';
|
|
20
|
+
@Input() elementType = 'dropdown';
|
|
21
|
+
|
|
22
|
+
@Output() valueChange = new EventEmitter<any>();
|
|
23
|
+
|
|
24
|
+
showDropdown = false;
|
|
25
|
+
|
|
26
|
+
toggleDropdown(): void {
|
|
27
|
+
this.showDropdown = !this.showDropdown;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
selectOption(option: any): void {
|
|
31
|
+
this.selectedValue = option.value;
|
|
32
|
+
this.valueChange.emit(option.value);
|
|
33
|
+
this.showDropdown = false;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
get selectedLabel(): string {
|
|
37
|
+
return (
|
|
38
|
+
this.options.find((o) => o.value === this.selectedValue)?.label ||
|
|
39
|
+
this.placeholder
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// optional: close on outside click
|
|
44
|
+
@HostListener('document:click', ['$event'])
|
|
45
|
+
closeOnOutsideClick(event: MouseEvent): void {
|
|
46
|
+
const target = event.target as HTMLElement;
|
|
47
|
+
if (!target.closest('.text_filter_section')) {
|
|
48
|
+
this.showDropdown = false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Directive,
|
|
3
|
+
ElementRef,
|
|
4
|
+
Input,
|
|
5
|
+
Renderer2,
|
|
6
|
+
HostListener,
|
|
7
|
+
OnDestroy,
|
|
8
|
+
AfterViewInit,
|
|
9
|
+
} from '@angular/core';
|
|
10
|
+
|
|
11
|
+
@Directive({
|
|
12
|
+
selector: '[adaptivePosition]',
|
|
13
|
+
})
|
|
14
|
+
export class AdaptivePositionDirective implements AfterViewInit, OnDestroy {
|
|
15
|
+
@Input('adaptive') dropdown!: HTMLElement;
|
|
16
|
+
@Input() trigger!: HTMLElement;
|
|
17
|
+
@Input() parentContainer!: HTMLElement;
|
|
18
|
+
@Input() matchWidth: boolean = true;
|
|
19
|
+
@Input() closeOnOutside: boolean = true;
|
|
20
|
+
@Input() isAction: boolean = false;
|
|
21
|
+
@Input() isColumnActionMenu: boolean = false;
|
|
22
|
+
|
|
23
|
+
resizeObserver!: ResizeObserver;
|
|
24
|
+
isOpen = false;
|
|
25
|
+
menuItems: HTMLElement[] = [];
|
|
26
|
+
focusedIndex = -1;
|
|
27
|
+
|
|
28
|
+
constructor(private host: ElementRef) {}
|
|
29
|
+
|
|
30
|
+
ngAfterViewInit(): void {
|
|
31
|
+
this.setupBaseStyles();
|
|
32
|
+
this.observeResize();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// @HostListener('click', ['$event'])
|
|
36
|
+
// toggle(event: Event) {
|
|
37
|
+
// event.stopPropagation();
|
|
38
|
+
// this.isOpen ? this.close() : this.open();
|
|
39
|
+
// }
|
|
40
|
+
|
|
41
|
+
open() {
|
|
42
|
+
this.isOpen = true;
|
|
43
|
+
this.dropdown.classList.remove('hidden');
|
|
44
|
+
this.dropdown.setAttribute('role', 'listbox');
|
|
45
|
+
this.host.nativeElement.setAttribute('aria-expanded', 'true');
|
|
46
|
+
this.prepareItems();
|
|
47
|
+
this.positionDropdown();
|
|
48
|
+
|
|
49
|
+
if (this.closeOnOutside)
|
|
50
|
+
document.addEventListener('click', this.handleOutsideClick);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
close() {
|
|
54
|
+
this.isOpen = false;
|
|
55
|
+
this.dropdown.classList.add('hidden');
|
|
56
|
+
this.host.nativeElement.setAttribute('aria-expanded', 'false');
|
|
57
|
+
document.removeEventListener('click', this.handleOutsideClick);
|
|
58
|
+
this.focusedIndex = -1;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
positionDropdown() {
|
|
62
|
+
if (!this.trigger) return;
|
|
63
|
+
|
|
64
|
+
const dropdown = this.host.nativeElement;
|
|
65
|
+
const parent =
|
|
66
|
+
this.parentContainer ||
|
|
67
|
+
this.trigger.closest('.table_wrapper') ||
|
|
68
|
+
document.body ||
|
|
69
|
+
this.trigger.offsetParent!;
|
|
70
|
+
if (!parent) return;
|
|
71
|
+
|
|
72
|
+
const t = this.trigger.getBoundingClientRect();
|
|
73
|
+
const p = parent.getBoundingClientRect();
|
|
74
|
+
const dH = dropdown.offsetHeight;
|
|
75
|
+
const dW = dropdown.offsetWidth;
|
|
76
|
+
|
|
77
|
+
const spaceBelow = p.bottom - t.bottom;
|
|
78
|
+
const spaceAbove = t.top - p.top;
|
|
79
|
+
const spaceRight = p.right - t.left;
|
|
80
|
+
const spaceLeft = t.right - p.left;
|
|
81
|
+
|
|
82
|
+
if (spaceBelow < dH && spaceAbove > dH) {
|
|
83
|
+
dropdown.style.bottom = `${this.trigger.offsetHeight}px`;
|
|
84
|
+
dropdown.style.top = 'auto';
|
|
85
|
+
dropdown.classList.add('drop-up');
|
|
86
|
+
dropdown.classList.remove('drop-down');
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (spaceRight < dW && spaceLeft > dW) {
|
|
90
|
+
dropdown.style.right = '0';
|
|
91
|
+
dropdown.style.left = 'auto';
|
|
92
|
+
dropdown.classList.add('align-right');
|
|
93
|
+
if (this.isColumnActionMenu) dropdown.style.right = '0';
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (this.isAction) dropdown.style.right = '70px';
|
|
97
|
+
if (this.matchWidth) dropdown.style.width = `${this.trigger.offsetWidth}px`;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@HostListener('keydown', ['$event'])
|
|
101
|
+
handleKeys(e: KeyboardEvent) {
|
|
102
|
+
if (!this.isOpen) return;
|
|
103
|
+
|
|
104
|
+
switch (e.key) {
|
|
105
|
+
case 'ArrowDown':
|
|
106
|
+
this.moveFocus(1);
|
|
107
|
+
e.preventDefault();
|
|
108
|
+
break;
|
|
109
|
+
case 'ArrowUp':
|
|
110
|
+
this.moveFocus(-1);
|
|
111
|
+
e.preventDefault();
|
|
112
|
+
break;
|
|
113
|
+
case 'Home':
|
|
114
|
+
this.focusItem(0);
|
|
115
|
+
e.preventDefault();
|
|
116
|
+
break;
|
|
117
|
+
case 'End':
|
|
118
|
+
this.focusItem(this.menuItems.length - 1);
|
|
119
|
+
e.preventDefault();
|
|
120
|
+
break;
|
|
121
|
+
case 'Enter':
|
|
122
|
+
case ' ':
|
|
123
|
+
this.selectFocused();
|
|
124
|
+
e.preventDefault();
|
|
125
|
+
break;
|
|
126
|
+
case 'Escape':
|
|
127
|
+
this.close();
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
moveFocus(delta: number) {
|
|
133
|
+
this.focusedIndex =
|
|
134
|
+
(this.focusedIndex + delta + this.menuItems.length) %
|
|
135
|
+
this.menuItems.length;
|
|
136
|
+
this.focusItem(this.focusedIndex);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
focusItem(index: number) {
|
|
140
|
+
this.focusedIndex = index;
|
|
141
|
+
this.menuItems.forEach((i) => i.classList.remove('focused'));
|
|
142
|
+
|
|
143
|
+
const item = this.menuItems[index];
|
|
144
|
+
item.classList.add('focused');
|
|
145
|
+
item.scrollIntoView({ block: 'nearest' });
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
selectFocused() {
|
|
149
|
+
if (this.focusedIndex >= 0) this.menuItems[this.focusedIndex].click();
|
|
150
|
+
this.close();
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
prepareItems() {
|
|
154
|
+
this.menuItems = Array.from(
|
|
155
|
+
this.dropdown.querySelectorAll('[role="option"], li, div'),
|
|
156
|
+
);
|
|
157
|
+
this.menuItems.forEach((el) => el.setAttribute('tabindex', '-1'));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
handleOutsideClick = (e: Event) => {
|
|
161
|
+
const target = e.target;
|
|
162
|
+
if (
|
|
163
|
+
!(target instanceof Node) ||
|
|
164
|
+
(!this.host.nativeElement.contains(target) &&
|
|
165
|
+
!this.dropdown.contains(target))
|
|
166
|
+
) {
|
|
167
|
+
this.close();
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
setupBaseStyles() {
|
|
172
|
+
const dropdown = this.host.nativeElement;
|
|
173
|
+
dropdown.style.position = 'absolute';
|
|
174
|
+
this.host.nativeElement.setAttribute('role', 'button');
|
|
175
|
+
this.positionDropdown();
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
observeResize() {
|
|
179
|
+
const parent = this.parentContainer || this.host.nativeElement.offsetParent;
|
|
180
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
181
|
+
if (this.isOpen) this.positionDropdown();
|
|
182
|
+
});
|
|
183
|
+
this.resizeObserver.observe(this.host.nativeElement);
|
|
184
|
+
this.resizeObserver.observe(this.trigger);
|
|
185
|
+
if (parent) this.resizeObserver.observe(parent);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
ngOnDestroy() {
|
|
189
|
+
this.resizeObserver?.disconnect();
|
|
190
|
+
document.removeEventListener('click', this.handleOutsideClick);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Directive,
|
|
3
|
+
ElementRef,
|
|
4
|
+
EventEmitter,
|
|
5
|
+
HostListener,
|
|
6
|
+
OnDestroy,
|
|
7
|
+
OnInit,
|
|
8
|
+
Output,
|
|
9
|
+
} from '@angular/core';
|
|
10
|
+
|
|
11
|
+
@Directive({
|
|
12
|
+
selector: '[appOutsideClick]',
|
|
13
|
+
standalone: true,
|
|
14
|
+
})
|
|
15
|
+
export class OutsideClickDirective implements OnInit, OnDestroy {
|
|
16
|
+
@Output() clickOutside = new EventEmitter();
|
|
17
|
+
constructor(private elementRef: ElementRef) {}
|
|
18
|
+
private onClick = (event: MouseEvent) => {
|
|
19
|
+
const target = event.target as HTMLElement;
|
|
20
|
+
if (!this.elementRef.nativeElement.contains(target)) {
|
|
21
|
+
this.clickOutside.emit(event);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
document.addEventListener('click', this.onClick, true);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
ngOnDestroy() {
|
|
30
|
+
document.removeEventListener('click', this.onClick, true);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Component,
|
|
3
|
+
Directive,
|
|
4
|
+
ElementRef,
|
|
5
|
+
Input,
|
|
6
|
+
OnInit,
|
|
7
|
+
ViewContainerRef,
|
|
8
|
+
} from '@angular/core';
|
|
9
|
+
|
|
10
|
+
@Directive({
|
|
11
|
+
selector: '[appRendererParser]',
|
|
12
|
+
})
|
|
13
|
+
export class RendererParserDirective implements OnInit {
|
|
14
|
+
@Input() rowParam: any;
|
|
15
|
+
@Input() col: any;
|
|
16
|
+
@Input() api: any;
|
|
17
|
+
@Input() currentValue: any;
|
|
18
|
+
ref: any;
|
|
19
|
+
constructor(private el: ViewContainerRef, private er: ElementRef) {}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.el?.clear();
|
|
22
|
+
let params: any = {
|
|
23
|
+
data: this.rowParam,
|
|
24
|
+
value: this.currentValue,
|
|
25
|
+
cellParams: this.col?.cellRendererParams,
|
|
26
|
+
col: this.col,
|
|
27
|
+
};
|
|
28
|
+
if (
|
|
29
|
+
this.col?.cellRenderer?.prototype &&
|
|
30
|
+
this.col.cellRenderer.prototype?.constructor == this.col.cellRenderer
|
|
31
|
+
) {
|
|
32
|
+
this.ref = this.el.createComponent(this.col?.cellRenderer);
|
|
33
|
+
this.ref.instance?.cellInit(params, this.api);
|
|
34
|
+
} else if (typeof this.col?.cellRenderer == 'function') {
|
|
35
|
+
let newDiv = document.createElement('div');
|
|
36
|
+
newDiv.className = 'more_data_wrapper';
|
|
37
|
+
newDiv.innerHTML = this.col.cellRenderer(params);
|
|
38
|
+
let toltipDiv = document.createElement('div');
|
|
39
|
+
let itemDiv = document.createElement('div');
|
|
40
|
+
let descDiv = document.createElement('div');
|
|
41
|
+
toltipDiv.className = 'see_more_data';
|
|
42
|
+
itemDiv.className = 'item';
|
|
43
|
+
descDiv.className = 'desc';
|
|
44
|
+
descDiv.innerHTML = newDiv.innerText;
|
|
45
|
+
itemDiv.appendChild(descDiv);
|
|
46
|
+
toltipDiv.appendChild(itemDiv);
|
|
47
|
+
this.er.nativeElement.appendChild(newDiv);
|
|
48
|
+
this.er.nativeElement.appendChild(toltipDiv);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Pipe, PipeTransform } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Pipe({
|
|
4
|
+
name: 'addClass'
|
|
5
|
+
})
|
|
6
|
+
export class AddClassPipe implements PipeTransform {
|
|
7
|
+
|
|
8
|
+
transform(value: any, context: any): string {
|
|
9
|
+
if (context?.addClasses) {
|
|
10
|
+
return context.addClasses(value)
|
|
11
|
+
}
|
|
12
|
+
else if(context?.cellValueClass) {
|
|
13
|
+
return context.cellValueClass(value)
|
|
14
|
+
}
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
<!-- Switch -->
|
|
2
|
+
@if (type === "switch") {
|
|
3
|
+
<div class="table_switch_wrapper">
|
|
4
|
+
<label class="switch">
|
|
5
|
+
<input type="checkbox" [checked]="value" (change)="onToggle($event)" />
|
|
6
|
+
<span class="slider"></span>
|
|
7
|
+
</label>
|
|
8
|
+
</div>
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
<!-- Action Menu -->
|
|
12
|
+
|
|
13
|
+
@if (type === "action-menu") {
|
|
14
|
+
<div class="action-menu">
|
|
15
|
+
<button class="action_dots" (click)="onThreeDotsMenuClick()" #tagTrigger>
|
|
16
|
+
<img src="images/more-{{ actionSubType || 'vertical' }}.svg" />
|
|
17
|
+
</button>
|
|
18
|
+
|
|
19
|
+
@if (openActionMenu) {
|
|
20
|
+
<div
|
|
21
|
+
class="menu"
|
|
22
|
+
appOutsideClick
|
|
23
|
+
(clickOutside)="clickOutside($event)"
|
|
24
|
+
adaptivePosition
|
|
25
|
+
[trigger]="tagTrigger"
|
|
26
|
+
[isAction]="true"
|
|
27
|
+
[matchWidth]="false"
|
|
28
|
+
>
|
|
29
|
+
<div class="item_wrapper" id="table_scroll">
|
|
30
|
+
@for (act of actions; track $index) {
|
|
31
|
+
<div
|
|
32
|
+
class="{{ 'menu_item' + ' ' + act.class }}"
|
|
33
|
+
[ngClass]="{
|
|
34
|
+
disabled_item:
|
|
35
|
+
params?.data?.disabledActions?.includes(act.label) ||
|
|
36
|
+
act.disabled,
|
|
37
|
+
}"
|
|
38
|
+
(click)="onActionClick(act)"
|
|
39
|
+
>
|
|
40
|
+
@if (act.icon) {
|
|
41
|
+
<img src="images/{{ act.icon }}.svg" />
|
|
42
|
+
} @else {
|
|
43
|
+
<img src="{{ act?.image }}" />
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
<span class="ellipsis">{{ act.label }}</span>
|
|
47
|
+
</div>
|
|
48
|
+
}
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
}
|
|
52
|
+
</div>
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
<!-- Tags -->
|
|
56
|
+
|
|
57
|
+
@if (type === "tag") {
|
|
58
|
+
<div
|
|
59
|
+
class="tag_wrapper"
|
|
60
|
+
(mouseover)="toggleDropdown($event)"
|
|
61
|
+
(mouseout)="closeDropdown($event)"
|
|
62
|
+
#tagTrigger
|
|
63
|
+
>
|
|
64
|
+
@for (tag of visibleTags; track $index) {
|
|
65
|
+
<div
|
|
66
|
+
class="{{ 'tag_chip' + ' ' + tag.class }}"
|
|
67
|
+
[ngClass]="tag.tagValue | addClass: params.cellParams"
|
|
68
|
+
>
|
|
69
|
+
<!-- <span class="circle"></span>
|
|
70
|
+
<img src="images/home.svg" alt="" class="icon" /> -->
|
|
71
|
+
|
|
72
|
+
<div class="more_data_section">
|
|
73
|
+
<!-- <span class="textTruncate"> {{ tag.tagValue }}</span> -->
|
|
74
|
+
<div class="cell-value ellipsis">
|
|
75
|
+
<div class="more_data_wrapper textTruncate">
|
|
76
|
+
{{ tag.tagValue }}
|
|
77
|
+
</div>
|
|
78
|
+
<div class="see_more_data" id="table_scroll">
|
|
79
|
+
<div class="item">
|
|
80
|
+
<span class="desc"> {{ tag.tagValue }}</span>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
}
|
|
87
|
+
@if (hiddenCount > 0) {
|
|
88
|
+
<div class="hidden_list">
|
|
89
|
+
<span class="tag_more">+{{ hiddenCount }}</span>
|
|
90
|
+
@if (openDropdown) {
|
|
91
|
+
<div
|
|
92
|
+
class="tag_dropdown"
|
|
93
|
+
id="table_scroll"
|
|
94
|
+
adaptivePosition
|
|
95
|
+
[trigger]="tagTrigger"
|
|
96
|
+
[matchWidth]="false"
|
|
97
|
+
>
|
|
98
|
+
@for (tag of allTags; track $index) {
|
|
99
|
+
<div class="{{ 'dropdown_item' + ' ' + tag.class }}">
|
|
100
|
+
{{ tag.tagValue }}
|
|
101
|
+
</div>
|
|
102
|
+
}
|
|
103
|
+
</div>
|
|
104
|
+
}
|
|
105
|
+
</div>
|
|
106
|
+
}
|
|
107
|
+
</div>
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
@if (type === "link") {
|
|
111
|
+
<div class="more_data_section cell-value ellipsis">
|
|
112
|
+
@for (link of linkVal; track $index) {
|
|
113
|
+
<div class="more_data_wrapper textTruncate">
|
|
114
|
+
<span
|
|
115
|
+
class="grid-link"
|
|
116
|
+
(click)="linkSingleClick()"
|
|
117
|
+
(dblclick)="linkDoubleClick()"
|
|
118
|
+
>
|
|
119
|
+
{{ link?.linkValue }}
|
|
120
|
+
</span>
|
|
121
|
+
</div>
|
|
122
|
+
<div class="see_more_data" id="table_scroll">
|
|
123
|
+
<div class="item">
|
|
124
|
+
<span class="desc"> {{ link?.linkValue }}</span>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
}
|
|
128
|
+
</div>
|
|
129
|
+
}
|