@f1falcha/stimulus 1.0.0
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/accordion/accordion-config.scss +18 -0
- package/accordion/accordion-item/accordion-item.component.d.ts +11 -0
- package/accordion/accordion-item-body/accordion-item-body.component.d.ts +10 -0
- package/accordion/accordion-item-header/accordion-item-header.component.d.ts +15 -0
- package/accordion/accordion.d.ts +12 -0
- package/accordion/accordion.icon.d.ts +3 -0
- package/accordion/accordion.scss +41 -0
- package/account-card/account-card-config.scss +36 -0
- package/account-card/account-card-header/account-card-header-config.scss +9 -0
- package/account-card/account-card-header/account-card-header.component.d.ts +12 -0
- package/account-card/account-card-header/account-card-header.scss +11 -0
- package/account-card/account-card.component.d.ts +16 -0
- package/account-card/account-card.scss +19 -0
- package/alert/alert-animation.d.ts +6 -0
- package/alert/alert-config.d.ts +26 -0
- package/alert/alert-config.scss +43 -0
- package/alert/alert-icon.d.ts +3 -0
- package/alert/alert-ref.d.ts +11 -0
- package/alert/alert.d.ts +23 -0
- package/alert/alert.scss +91 -0
- package/alert/alert.service.d.ts +31 -0
- package/avatar/avatar-config.scss +12 -0
- package/avatar/avatar.d.ts +21 -0
- package/avatar/avatar.scss +2 -0
- package/badge/badge-config.scss +68 -0
- package/badge/badge.d.ts +17 -0
- package/badge/badge.scss +21 -0
- package/bank-logo.provider.d.ts +7 -0
- package/bordered-section/bordered-section-config.scss +24 -0
- package/bordered-section/bordered-section.d.ts +15 -0
- package/bordered-section/bordered-section.scss +22 -0
- package/box-shadow/box-shadow-config.scss +18 -0
- package/button/button-config.scss +342 -0
- package/button/button.d.ts +10 -0
- package/button/button.scss +62 -0
- package/button-group/button-group-config.scss +12 -0
- package/button-group/button-group-header/button-group-header-config.scss +9 -0
- package/button-group/button-group-header/button-group-header.d.ts +8 -0
- package/button-group/button-group-header/button-group-header.scss +5 -0
- package/button-group/button-group.d.ts +11 -0
- package/button-group/buttton-group.scss +19 -0
- package/button-spinner/button-spinner-config.scss +15 -0
- package/button-spinner/button-spinner.scss +30 -0
- package/card/card-config.scss +15 -0
- package/card/card.component.d.ts +8 -0
- package/card/card.scss +14 -0
- package/chart/chart-config.scss +21 -0
- package/chart/chart.component.d.ts +21 -0
- package/chart/chart.component.scss +34 -0
- package/checkbox/checkbox-config.scss +62 -0
- package/checkbox/checkbox.scss +45 -0
- package/checkbox-dropdown/checkbox-dropdown.component.d.ts +139 -0
- package/checkbox-dropdown/checkbox-dropdown.component.scss +11 -0
- package/checkbox-dropdown/checkbox-dropdown.icon.d.ts +3 -0
- package/clipboard/clipboard-config.scss +23 -0
- package/clipboard/clipboard.component.d.ts +15 -0
- package/clipboard/clipboard.component.scss +37 -0
- package/clipboard/clipboard.icon.d.ts +3 -0
- package/color/cherry.scss +19 -0
- package/color/chilli.scss +19 -0
- package/color/comet.scss +19 -0
- package/color/cotton-candy.scss +19 -0
- package/color/default.scss +154 -0
- package/color/emerald.scss +19 -0
- package/color/goblin.scss +19 -0
- package/color/jacaranda.scss +19 -0
- package/color/mars.scss +19 -0
- package/color/orchid.scss +19 -0
- package/color/spaceship.scss +19 -0
- package/color/summer.scss +19 -0
- package/color/tiger-lily.scss +19 -0
- package/color-wrapper/color-wrapper-config.scss +37 -0
- package/color-wrapper/color-wrapper.d.ts +17 -0
- package/color-wrapper/color-wrapper.scss +23 -0
- package/column-seperator/column-separator-config.scss +16 -0
- package/column-seperator/column-separator.d.ts +14 -0
- package/column-seperator/column-separator.scss +25 -0
- package/column-text/column-text.config.scss +12 -0
- package/column-text/column-text.d.ts +11 -0
- package/column-text/column-text.scss +22 -0
- package/container/container-config.scss +12 -0
- package/container/container.component.d.ts +12 -0
- package/container/container.scss +19 -0
- package/custom-datepicker/custom-datepicker-config.scss +50 -0
- package/custom-datepicker/custom-datepicker.component.d.ts +80 -0
- package/custom-datepicker/custom-datepicker.component.scss +127 -0
- package/custom-datepicker/custom-datepicker.model.d.ts +18 -0
- package/custom-datepicker/datepicker.icon.d.ts +3 -0
- package/custom-datepicker/timepicker/timepicker.component.d.ts +37 -0
- package/custom-datepicker/timepicker/timepicker.component.scss +79 -0
- package/data-list/data-list.config.scss +35 -0
- package/data-list/data-list.d.ts +13 -0
- package/data-list/data-list.scss +67 -0
- package/date-range-picker/date-range-picker.d.ts +40 -0
- package/datepicker/datepicker.config.scss +0 -0
- package/datepicker/datepicker.d.ts +45 -0
- package/datepicker/datepicker.scss +0 -0
- package/datepicker-icon/datepicker-icon-config.scss +10 -0
- package/datepicker-icon/datepicker-icon.d.ts +6 -0
- package/datepicker-icon/datepicker-icon.scss +7 -0
- package/datepicker.provider.d.ts +2 -0
- package/detail-panel/detail-panel-config.scss +16 -0
- package/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column-config.scss +11 -0
- package/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column.d.ts +6 -0
- package/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column.scss +15 -0
- package/detail-panel/detail-panel-row/detail-panel-row.d.ts +6 -0
- package/detail-panel/detail-panel-row/detail-panel-row.scss +5 -0
- package/detail-panel/detail-panel-title/detail-panel-title-config.scss +14 -0
- package/detail-panel/detail-panel-title/detail-panel-title.d.ts +7 -0
- package/detail-panel/detail-panel-title/detail-panel-title.scss +16 -0
- package/detail-panel/detail-panel.d.ts +11 -0
- package/detail-panel/detail-panel.scss +50 -0
- package/dialog/dialog-body/dialog-body.component.d.ts +6 -0
- package/dialog/dialog-config.scss +24 -0
- package/dialog/dialog-container/dialog-container-config.scss +9 -0
- package/dialog/dialog-container/dialog-container.component.d.ts +6 -0
- package/dialog/dialog-container/dialog-container.scss +6 -0
- package/dialog/dialog-footer/dialog-footer.component.d.ts +6 -0
- package/dialog/dialog-footer/dialog-footer.scss +6 -0
- package/dialog/dialog-header/dialog-header-config.scss +14 -0
- package/dialog/dialog-header/dialog-header.component.d.ts +10 -0
- package/dialog/dialog-header/dialog-header.scss +16 -0
- package/dialog/dialog-icon.d.ts +3 -0
- package/dialog/dialog.component.d.ts +12 -0
- package/dialog/dialog.scss +27 -0
- package/dialog.provider.d.ts +3 -0
- package/dialog.ref.d.ts +4 -0
- package/dialog.service.d.ts +7 -0
- package/dropdown/context-menu-config.scss +23 -0
- package/dropdown/context-menu-content/context-menu-content.d.ts +9 -0
- package/dropdown/context-menu-item.d.ts +10 -0
- package/dropdown/context-menu-list/context-menu-list.d.ts +9 -0
- package/dropdown/context-menu.d.ts +19 -0
- package/dropdown/context-menu.scss +41 -0
- package/error-page-container/error-content/error-content-config.scss +29 -0
- package/error-page-container/error-content/error-content.d.ts +24 -0
- package/error-page-container/error-content/error-content.scss +58 -0
- package/error-page-container/error-page-container.d.ts +6 -0
- package/error-page-container/error-page-container.scss +15 -0
- package/esm2022/accordion/accordion-item/accordion-item.component.mjs +23 -0
- package/esm2022/accordion/accordion-item-body/accordion-item-body.component.mjs +18 -0
- package/esm2022/accordion/accordion-item-header/accordion-item-header.component.mjs +41 -0
- package/esm2022/accordion/accordion.icon.mjs +25 -0
- package/esm2022/accordion/accordion.mjs +14 -0
- package/esm2022/account-card/account-card-header/account-card-header.component.mjs +30 -0
- package/esm2022/account-card/account-card.component.mjs +64 -0
- package/esm2022/alert/alert-animation.mjs +9 -0
- package/esm2022/alert/alert-config.mjs +13 -0
- package/esm2022/alert/alert-icon.mjs +33 -0
- package/esm2022/alert/alert-ref.mjs +23 -0
- package/esm2022/alert/alert.mjs +50 -0
- package/esm2022/alert/alert.service.mjs +112 -0
- package/esm2022/avatar/avatar.mjs +91 -0
- package/esm2022/badge/badge.mjs +77 -0
- package/esm2022/bank-logo.provider.mjs +12 -0
- package/esm2022/bordered-section/bordered-section.mjs +70 -0
- package/esm2022/button/button.mjs +26 -0
- package/esm2022/button-group/button-group-header/button-group-header.mjs +24 -0
- package/esm2022/button-group/button-group.mjs +41 -0
- package/esm2022/card/card.component.mjs +28 -0
- package/esm2022/chart/chart.component.mjs +70 -0
- package/esm2022/checkbox-dropdown/checkbox-dropdown.component.mjs +232 -0
- package/esm2022/checkbox-dropdown/checkbox-dropdown.icon.mjs +14 -0
- package/esm2022/clipboard/clipboard.component.mjs +36 -0
- package/esm2022/clipboard/clipboard.icon.mjs +6 -0
- package/esm2022/color-wrapper/color-wrapper.mjs +82 -0
- package/esm2022/column-seperator/column-separator.mjs +62 -0
- package/esm2022/column-text/column-text.mjs +38 -0
- package/esm2022/container/container.component.mjs +46 -0
- package/esm2022/custom-datepicker/custom-datepicker.component.mjs +364 -0
- package/esm2022/custom-datepicker/custom-datepicker.model.mjs +12 -0
- package/esm2022/custom-datepicker/datepicker.icon.mjs +7 -0
- package/esm2022/custom-datepicker/timepicker/timepicker.component.mjs +195 -0
- package/esm2022/data-list/data-list.mjs +46 -0
- package/esm2022/date-range-picker/date-range-picker.mjs +207 -0
- package/esm2022/datepicker/datepicker.mjs +153 -0
- package/esm2022/datepicker-icon/datepicker-icon.mjs +18 -0
- package/esm2022/datepicker.provider.mjs +6 -0
- package/esm2022/detail-panel/detail-panel-row/detail-panel-column/detail-panel-column.mjs +15 -0
- package/esm2022/detail-panel/detail-panel-row/detail-panel-row.mjs +15 -0
- package/esm2022/detail-panel/detail-panel-title/detail-panel-title.mjs +19 -0
- package/esm2022/detail-panel/detail-panel.mjs +36 -0
- package/esm2022/dialog/dialog-body/dialog-body.component.mjs +16 -0
- package/esm2022/dialog/dialog-container/dialog-container.component.mjs +16 -0
- package/esm2022/dialog/dialog-footer/dialog-footer.component.mjs +16 -0
- package/esm2022/dialog/dialog-header/dialog-header.component.mjs +25 -0
- package/esm2022/dialog/dialog-icon.mjs +8 -0
- package/esm2022/dialog/dialog.component.mjs +36 -0
- package/esm2022/dialog.provider.mjs +5 -0
- package/esm2022/dialog.ref.mjs +4 -0
- package/esm2022/dialog.service.mjs +15 -0
- package/esm2022/dropdown/context-menu-content/context-menu-content.mjs +18 -0
- package/esm2022/dropdown/context-menu-item.mjs +28 -0
- package/esm2022/dropdown/context-menu-list/context-menu-list.mjs +18 -0
- package/esm2022/dropdown/context-menu.mjs +61 -0
- package/esm2022/error-page-container/error-content/error-content.mjs +49 -0
- package/esm2022/error-page-container/error-page-container.mjs +18 -0
- package/esm2022/extract-inital/extract-initial.mjs +21 -0
- package/esm2022/f1softinternational-stimulus.mjs +5 -0
- package/esm2022/file-uploader/file-uploader-icon.mjs +13 -0
- package/esm2022/file-uploader/file-uploader.mjs +274 -0
- package/esm2022/file-uploader/file-uploader.ref.mjs +3 -0
- package/esm2022/file-uploader/file-uploader.service.mjs +26 -0
- package/esm2022/filter/filter.mjs +173 -0
- package/esm2022/form/form-control/form-control-action.mjs +18 -0
- package/esm2022/form/form-control/form-control-icon.mjs +18 -0
- package/esm2022/form/form-control/form-field.mjs +86 -0
- package/esm2022/form/form-control-wrapper/form-control-wrapper.component.mjs +22 -0
- package/esm2022/form/form-error-messages.mjs +43 -0
- package/esm2022/form/form-message/form-message.mjs +30 -0
- package/esm2022/form/select-input-field/select-input-field.mjs +14 -0
- package/esm2022/form/validate-and-submit.mjs +54 -0
- package/esm2022/full-container/full-container.component.mjs +30 -0
- package/esm2022/grid/grid-item.component.mjs +24 -0
- package/esm2022/grid/grid.component.mjs +56 -0
- package/esm2022/grid-row/grid-row.mjs +18 -0
- package/esm2022/icon/icons.mjs +619 -0
- package/esm2022/image-card/illustration.pipe.mjs +57 -0
- package/esm2022/image-card/image-card.component.mjs +22 -0
- package/esm2022/image-panel/image-panel.component.mjs +88 -0
- package/esm2022/info-column/info-column.mjs +18 -0
- package/esm2022/info-slider/info-slider.component.mjs +50 -0
- package/esm2022/inline-alert/inline-alert.mjs +51 -0
- package/esm2022/inline-group/inline-group.component.mjs +32 -0
- package/esm2022/input/input.mjs +25 -0
- package/esm2022/label/label.mjs +18 -0
- package/esm2022/layout/layout.component.mjs +23 -0
- package/esm2022/link/link.mjs +79 -0
- package/esm2022/media-preview/media-preview-icon.mjs +41 -0
- package/esm2022/media-preview/media-preview-modal/media-preview-modal.mjs +128 -0
- package/esm2022/media-preview/media-preview.mjs +131 -0
- package/esm2022/media-preview/media_preview.service.mjs +31 -0
- package/esm2022/menu/menu-icon.mjs +29 -0
- package/esm2022/menu/menu.component.mjs +151 -0
- package/esm2022/nebular-icon.mjs +179 -0
- package/esm2022/otp-input/otp-input.component.mjs +106 -0
- package/esm2022/otp-input/otp-input.icon.mjs +13 -0
- package/esm2022/page-container/page-container-info/page-container-info.component.mjs +28 -0
- package/esm2022/page-container/page-container.component.mjs +63 -0
- package/esm2022/page-header/page-header.component.mjs +47 -0
- package/esm2022/page-header/page-header.icons.mjs +8 -0
- package/esm2022/page-header/page-sub-heading/page-sub-heading.component.mjs +12 -0
- package/esm2022/page-loader/page-loader.component.mjs +47 -0
- package/esm2022/pagination/pagination.icon.mjs +11 -0
- package/esm2022/pagination/pagination.mjs +170 -0
- package/esm2022/popover-content/popover-content-item/popover-content-item.component.mjs +15 -0
- package/esm2022/popover-content/popover-content.component.mjs +23 -0
- package/esm2022/preview-box/preview-box.component.mjs +73 -0
- package/esm2022/progress-bar/progress-bar.component.mjs +31 -0
- package/esm2022/progress-chart/progress-chart.component.mjs +87 -0
- package/esm2022/public-api.mjs +141 -0
- package/esm2022/radio-card-group/radio-card/radio-card.component.mjs +86 -0
- package/esm2022/radio-card-group/radio-card-group.component.mjs +61 -0
- package/esm2022/regex-checker/regex-checker-icon.mjs +18 -0
- package/esm2022/regex-checker/regex-checker.mjs +77 -0
- package/esm2022/regex-checker/regex-validity-icon.pipe.mjs +25 -0
- package/esm2022/ribbon/ribbon-icon.mjs +8 -0
- package/esm2022/ribbon/ribbon.mjs +37 -0
- package/esm2022/round-checkbox/round-checkbox.component.mjs +43 -0
- package/esm2022/row/column/column.component.mjs +19 -0
- package/esm2022/row/row.component.mjs +32 -0
- package/esm2022/scrollable-content/scrollable-content.component.mjs +22 -0
- package/esm2022/section-header/section-header.component.mjs +29 -0
- package/esm2022/section-row/section-row.mjs +35 -0
- package/esm2022/section-separator/section-separator.mjs +69 -0
- package/esm2022/section-shell/section-shell.component.mjs +45 -0
- package/esm2022/select/select.component.mjs +137 -0
- package/esm2022/select-card/select-card-icon.mjs +24 -0
- package/esm2022/select-card/select-card.component.mjs +117 -0
- package/esm2022/select-country/select-country.component.mjs +86 -0
- package/esm2022/shell/checker-sidebar/checker-sidebar.component.mjs +19 -0
- package/esm2022/shell/maker-sidebar/maker-sidebar.component.mjs +19 -0
- package/esm2022/shell/nebular-icons.mjs +180 -0
- package/esm2022/shell/shell-icons.mjs +474 -0
- package/esm2022/shell/shell-sidebar/shell-sidebar.component.mjs +38 -0
- package/esm2022/shell/shell.component.mjs +77 -0
- package/esm2022/side-drawer/side-drawer.mjs +15 -0
- package/esm2022/side-drawer/side-drawer.service.mjs +71 -0
- package/esm2022/size/component-size.mjs +2 -0
- package/esm2022/spinner/spinner.mjs +32 -0
- package/esm2022/stepper/step/step.mjs +20 -0
- package/esm2022/stepper/step/step.pipe.mjs +21 -0
- package/esm2022/stepper/step-header/step-header.mjs +29 -0
- package/esm2022/stepper/stepper-button/stepper-next.mjs +21 -0
- package/esm2022/stepper/stepper-button/stepper-previous.mjs +21 -0
- package/esm2022/stepper/stepper.mjs +56 -0
- package/esm2022/stimulus.module.mjs +891 -0
- package/esm2022/table/table-column/scl-table-column.mjs +54 -0
- package/esm2022/table/table-icon.mjs +13 -0
- package/esm2022/table/table-text/scl-table-text.mjs +51 -0
- package/esm2022/table/table.config.mjs +15 -0
- package/esm2022/table/table.mjs +186 -0
- package/esm2022/table-action-control/table-action-control.component.mjs +20 -0
- package/esm2022/tabset/tab/tab.component.mjs +29 -0
- package/esm2022/tabset/tab-directive/tabset.directive.mjs +22 -0
- package/esm2022/tabset/tabset.component.mjs +40 -0
- package/esm2022/taglist/tag/tag.component.mjs +51 -0
- package/esm2022/taglist/tag/tag.directive.mjs +30 -0
- package/esm2022/taglist/taglist.component.mjs +39 -0
- package/esm2022/text-decoration/text-decoration.component.mjs +26 -0
- package/esm2022/text-editor/text-editor.mjs +263 -0
- package/esm2022/theme.provider.mjs +9 -0
- package/esm2022/timeline/timeline.component.mjs +66 -0
- package/esm2022/timepicker/timepicker.component.mjs +377 -0
- package/esm2022/timepicker/timepicker.icon.mjs +7 -0
- package/esm2022/timepicker/timepicker.model.mjs +6 -0
- package/esm2022/toggle/toggle-description/toggle-description.mjs +18 -0
- package/esm2022/toggle/toggle.mjs +75 -0
- package/esm2022/toggle-password/toggle-password.component.mjs +54 -0
- package/esm2022/toggle-password/toggle-password.directive.mjs +26 -0
- package/esm2022/toggle-password/toggle-password.icon.mjs +13 -0
- package/esm2022/treeview/treeview-header/treeview-header.mjs +26 -0
- package/esm2022/treeview/treeview.icon.mjs +53 -0
- package/esm2022/treeview/treeview.mjs +319 -0
- package/esm2022/truncate/truncate.component.mjs +53 -0
- package/esm2022/typography/typography.mjs +168 -0
- package/extract-inital/extract-initial.d.ts +8 -0
- package/f1softinternational-stimulus-1.0.0.tgz +0 -0
- package/fesm2022/f1softinternational-stimulus.mjs +10275 -0
- package/file-uploader/file-upload-config.scss +48 -0
- package/file-uploader/file-upload.scss +77 -0
- package/file-uploader/file-uploader-icon.d.ts +3 -0
- package/file-uploader/file-uploader.d.ts +84 -0
- package/file-uploader/file-uploader.ref.d.ts +6 -0
- package/file-uploader/file-uploader.service.d.ts +11 -0
- package/filter/filter.d.ts +48 -0
- package/flag/_flags.scss +9 -0
- package/form/form-config.scss +14 -0
- package/form/form-control/form-control-action.d.ts +6 -0
- package/form/form-control/form-control-config.scss +9 -0
- package/form/form-control/form-control-icon.d.ts +6 -0
- package/form/form-control/form-control.scss +17 -0
- package/form/form-control/form-field.d.ts +26 -0
- package/form/form-control-wrapper/form-control-wrapper-config.scss +11 -0
- package/form/form-control-wrapper/form-control-wrapper.component.d.ts +8 -0
- package/form/form-control-wrapper/form-control-wrapper.scss +17 -0
- package/form/form-error-messages.d.ts +8 -0
- package/form/form-message/form-message-config.scss +7 -0
- package/form/form-message/form-message.d.ts +15 -0
- package/form/form-message/form-message.scss +6 -0
- package/form/form.scss +22 -0
- package/form/select-input-field/select-input-field-config.scss +13 -0
- package/form/select-input-field/select-input-field.d.ts +6 -0
- package/form/select-input-field/select-input-field.scss +43 -0
- package/form/validate-and-submit.d.ts +14 -0
- package/full-container/full-container-config.scss +16 -0
- package/full-container/full-container.component.d.ts +11 -0
- package/full-container/full-container.component.scss +54 -0
- package/grid/grid-config.scss +14 -0
- package/grid/grid-item.component.d.ts +8 -0
- package/grid/grid.component.d.ts +10 -0
- package/grid/grid.component.scss +26 -0
- package/grid-row/grid-row.config.scss +9 -0
- package/grid-row/grid-row.d.ts +6 -0
- package/grid-row/grid-row.scss +7 -0
- package/icon/icon.config.scss +9 -0
- package/icon/icon.scss +9 -0
- package/icon/icons.d.ts +3 -0
- package/image-card/illustration.pipe.d.ts +8 -0
- package/image-card/image-card-config.scss +29 -0
- package/image-card/image-card.component.d.ts +8 -0
- package/image-card/image-card.scss +37 -0
- package/image-panel/image-panel-config.scss +30 -0
- package/image-panel/image-panel.component.d.ts +26 -0
- package/image-panel/image-panel.component.scss +80 -0
- package/index.d.ts +6 -0
- package/info-column/info-column-config.scss +14 -0
- package/info-column/info-column.d.ts +7 -0
- package/info-column/info-column.scss +17 -0
- package/info-slider/info-slider-config.scss +10 -0
- package/info-slider/info-slider.component.d.ts +16 -0
- package/info-slider/info-slider.component.scss +21 -0
- package/inline-alert/inline-alert-config.scss +12 -0
- package/inline-alert/inline-alert.d.ts +20 -0
- package/inline-alert/inline-alert.scss +16 -0
- package/inline-group/inline-group.component.d.ts +10 -0
- package/inline-group/inline-group.component.scss +15 -0
- package/input/input-config.scss +57 -0
- package/input/input.d.ts +10 -0
- package/input/input.scss +68 -0
- package/label/label-config.scss +13 -0
- package/label/label.d.ts +6 -0
- package/label/label.scss +10 -0
- package/layout/layout.component.d.ts +9 -0
- package/link/link-config.scss +89 -0
- package/link/link.d.ts +19 -0
- package/link/link.scss +157 -0
- package/media-preview/media-preview-config.scss +15 -0
- package/media-preview/media-preview-icon.d.ts +3 -0
- package/media-preview/media-preview-modal/media-preview-modal.d.ts +31 -0
- package/media-preview/media-preview-modal/media-preview-modal.scss +148 -0
- package/media-preview/media-preview-modal/media-previw-modal-config.scss +44 -0
- package/media-preview/media-preview.d.ts +48 -0
- package/media-preview/media-preview.scss +59 -0
- package/media-preview/media_preview.service.d.ts +16 -0
- package/menu/menu-config.scss +33 -0
- package/menu/menu-icon.d.ts +3 -0
- package/menu/menu.component.d.ts +47 -0
- package/menu/menu.component.scss +80 -0
- package/nebular-icon.d.ts +3 -0
- package/otp-input/otp-input-config.scss +22 -0
- package/otp-input/otp-input.component.d.ts +33 -0
- package/otp-input/otp-input.component.scss +52 -0
- package/otp-input/otp-input.icon.d.ts +3 -0
- package/package.json +57 -0
- package/page-container/page-container-config.scss +9 -0
- package/page-container/page-container-info/page-container-info-config.scss +9 -0
- package/page-container/page-container-info/page-container-info.component.d.ts +10 -0
- package/page-container/page-container-info/page-container-info.scss +6 -0
- package/page-container/page-container.component.d.ts +14 -0
- package/page-container/page-container.component.scss +11 -0
- package/page-header/page-header-config.scss +28 -0
- package/page-header/page-header.component.d.ts +18 -0
- package/page-header/page-header.component.scss +37 -0
- package/page-header/page-header.icons.d.ts +3 -0
- package/page-header/page-sub-heading/page-sub-heading.component.d.ts +6 -0
- package/page-loader/page-loader-config.scss +23 -0
- package/page-loader/page-loader.component.d.ts +13 -0
- package/page-loader/page-loader.component.scss +44 -0
- package/pagination/pagination-config.scss +24 -0
- package/pagination/pagination.d.ts +47 -0
- package/pagination/pagination.icon.d.ts +3 -0
- package/pagination/pagination.scss +67 -0
- package/popover-content/popover-content-item/popover-content-item-config.scss +22 -0
- package/popover-content/popover-content-item/popover-content-item.component.d.ts +6 -0
- package/popover-content/popover-content-item/popover-content-item.scss +36 -0
- package/popover-content/popover-content.component.d.ts +14 -0
- package/preview-box/preview-box-config.scss +52 -0
- package/preview-box/preview-box.component.d.ts +31 -0
- package/preview-box/preview-box.component.scss +101 -0
- package/progress-bar/progress-bar-config.scss +14 -0
- package/progress-bar/progress-bar.component.d.ts +10 -0
- package/progress-bar/progress-bar.component.scss +13 -0
- package/progress-chart/progress-chart-config.scss +15 -0
- package/progress-chart/progress-chart.component.d.ts +21 -0
- package/progress-chart/progress-chart.component.scss +41 -0
- package/public-api.d.ts +135 -0
- package/radio-button/radio-button-config.scss +47 -0
- package/radio-button/radio-button.scss +89 -0
- package/radio-card-group/radio-card/radio-card-config.scss +31 -0
- package/radio-card-group/radio-card/radio-card.component.d.ts +30 -0
- package/radio-card-group/radio-card/radio-card.component.scss +88 -0
- package/radio-card-group/radio-card-group-config.scss +9 -0
- package/radio-card-group/radio-card-group.component.d.ts +20 -0
- package/radio-card-group/radio-card-group.scss +7 -0
- package/regex-checker/regex-checker-config.scss +24 -0
- package/regex-checker/regex-checker-icon.d.ts +3 -0
- package/regex-checker/regex-checker.d.ts +29 -0
- package/regex-checker/regex-checker.scss +38 -0
- package/regex-checker/regex-validity-icon.pipe.d.ts +8 -0
- package/ribbon/ribbon-config.scss +21 -0
- package/ribbon/ribbon-icon.d.ts +3 -0
- package/ribbon/ribbon.d.ts +14 -0
- package/ribbon/ribbon.scss +29 -0
- package/round-checkbox/round-checkbox-config.scss +15 -0
- package/round-checkbox/round-checkbox.component.d.ts +16 -0
- package/round-checkbox/round-checkbox.component.scss +23 -0
- package/row/column/column.component.d.ts +9 -0
- package/row/row-config.scss +10 -0
- package/row/row.component.d.ts +9 -0
- package/row/row.scss +22 -0
- package/scrollable-content/scrollable-content-config.scss +11 -0
- package/scrollable-content/scrollable-content.component.d.ts +8 -0
- package/scrollable-content/scrollable-content.component.scss +28 -0
- package/section-header/section-header-config.scss +18 -0
- package/section-header/section-header.component.d.ts +9 -0
- package/section-header/section-header.component.scss +32 -0
- package/section-row/section-row-config.scss +9 -0
- package/section-row/section-row.d.ts +9 -0
- package/section-row/section-row.scss +23 -0
- package/section-separator/section-separator-config.scss +19 -0
- package/section-separator/section-separator.d.ts +15 -0
- package/section-separator/section-separator.scss +28 -0
- package/section-shell/section-shell-config.scss +23 -0
- package/section-shell/section-shell.component.d.ts +12 -0
- package/section-shell/section-shell.component.scss +30 -0
- package/select/select-config.scss +78 -0
- package/select/select.component.d.ts +44 -0
- package/select/select.scss +174 -0
- package/select-card/select-card-config.scss +32 -0
- package/select-card/select-card-icon.d.ts +3 -0
- package/select-card/select-card.component.d.ts +38 -0
- package/select-card/select-card.component.scss +66 -0
- package/select-country/select-country-config.scss +10 -0
- package/select-country/select-country.component.d.ts +33 -0
- package/select-country/select-country.component.scss +34 -0
- package/shell/checker-sidebar/checker-sidebar-config.scss +21 -0
- package/shell/checker-sidebar/checker-sidebar.component.d.ts +8 -0
- package/shell/checker-sidebar/checker-sidebar.component.scss +34 -0
- package/shell/maker-sidebar/maker-sidebar-config.scss +21 -0
- package/shell/maker-sidebar/maker-sidebar.component.d.ts +8 -0
- package/shell/maker-sidebar/maker-sidebar.component.scss +34 -0
- package/shell/nebular-icons.d.ts +3 -0
- package/shell/shell-config.component.scss +25 -0
- package/shell/shell-icons.d.ts +3 -0
- package/shell/shell-sidebar/shell-sidebar-config.scss +43 -0
- package/shell/shell-sidebar/shell-sidebar.component.d.ts +14 -0
- package/shell/shell-sidebar/shell-sidebar.component.scss +106 -0
- package/shell/shell-sidebar-menu/shell-sidebar-menu-config.scss +56 -0
- package/shell/shell-sidebar-menu/shell-sidebar-menu.scss +76 -0
- package/shell/shell.component.d.ts +21 -0
- package/shell/shell.component.scss +55 -0
- package/side-drawer/side-drawer-config.scss +20 -0
- package/side-drawer/side-drawer.d.ts +8 -0
- package/side-drawer/side-drawer.scss +52 -0
- package/side-drawer/side-drawer.service.d.ts +20 -0
- package/size/component-size.d.ts +2 -0
- package/spinner/spinner.d.ts +11 -0
- package/stepper/step/step.d.ts +8 -0
- package/stepper/step/step.pipe.d.ts +8 -0
- package/stepper/step-header/step-header.d.ts +12 -0
- package/stepper/stepper-button/stepper-next.d.ts +7 -0
- package/stepper/stepper-button/stepper-previous.d.ts +7 -0
- package/stepper/stepper.config.scss +37 -0
- package/stepper/stepper.d.ts +19 -0
- package/stepper/stepper.scss +149 -0
- package/stimulus-config.scss +98 -0
- package/stimulus.module.d.ts +136 -0
- package/stimulus.scss +107 -0
- package/table/table-column/scl-table-column.d.ts +26 -0
- package/table/table-config.scss +63 -0
- package/table/table-icon.d.ts +3 -0
- package/table/table-text/scl-table-text.d.ts +13 -0
- package/table/table.config.d.ts +19 -0
- package/table/table.d.ts +58 -0
- package/table/table.scss +232 -0
- package/table-action-control/table-action-control-config.scss +12 -0
- package/table-action-control/table-action-control.component.d.ts +8 -0
- package/table-action-control/table-action-control.component.scss +14 -0
- package/tabset/route-tab/route-tab-config.scss +30 -0
- package/tabset/route-tab/route-tab.scss +44 -0
- package/tabset/tab/tab.component.d.ts +9 -0
- package/tabset/tab-directive/tabset-config.scss +49 -0
- package/tabset/tab-directive/tabset.directive.d.ts +7 -0
- package/tabset/tab-directive/tabset.scss +154 -0
- package/tabset/tabset.component.d.ts +14 -0
- package/tabset/tabset.component.scss +79 -0
- package/taglist/tag/tag-config.scss +30 -0
- package/taglist/tag/tag.component.d.ts +17 -0
- package/taglist/tag/tag.directive.d.ts +16 -0
- package/taglist/tag/tag.scss +43 -0
- package/taglist/taglist.component.d.ts +12 -0
- package/text-decoration/text-decoration.component.d.ts +9 -0
- package/text-decoration/text-decoration.scss +7 -0
- package/text-editor/text-editor.config.scss +23 -0
- package/text-editor/text-editor.d.ts +60 -0
- package/text-editor/text-editor.scss +74 -0
- package/theme.provider.d.ts +2 -0
- package/timeline/timeline-config.scss +49 -0
- package/timeline/timeline.component.d.ts +26 -0
- package/timeline/timeline.component.scss +126 -0
- package/timepicker/timepicker-config.scss +41 -0
- package/timepicker/timepicker.component.d.ts +74 -0
- package/timepicker/timepicker.component.scss +111 -0
- package/timepicker/timepicker.icon.d.ts +3 -0
- package/timepicker/timepicker.model.d.ts +13 -0
- package/toggle/toggle-config.scss +51 -0
- package/toggle/toggle-description/toggle-description.d.ts +6 -0
- package/toggle/toggle.d.ts +19 -0
- package/toggle/toggle.scss +31 -0
- package/toggle-password/toggle-password-config.scss +12 -0
- package/toggle-password/toggle-password.component.d.ts +21 -0
- package/toggle-password/toggle-password.directive.d.ts +13 -0
- package/toggle-password/toggle-password.icon.d.ts +3 -0
- package/toggle-password/toggle-password.scss +16 -0
- package/treeview/treeview-config.scss +86 -0
- package/treeview/treeview-header/treeview-header.d.ts +12 -0
- package/treeview/treeview.d.ts +66 -0
- package/treeview/treeview.icon.d.ts +3 -0
- package/treeview/treeview.scss +278 -0
- package/truncate/truncate.component.d.ts +16 -0
- package/truncate/truncate.scss +18 -0
- package/typography/font.scss +28 -0
- package/typography/typography-config.scss +73 -0
- package/typography/typography.d.ts +37 -0
- package/typography/typography.scss +47 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { NbTagInputDirective } from '@nebular/theme';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@nebular/theme";
|
|
5
|
+
class SclTagInput extends NbTagInputDirective {
|
|
6
|
+
constructor(hostElement, focusMonitor, renderer, zone, statusService) {
|
|
7
|
+
super(hostElement, focusMonitor, renderer, zone, statusService);
|
|
8
|
+
this.tagAdd = new EventEmitter();
|
|
9
|
+
this.setAttribute();
|
|
10
|
+
}
|
|
11
|
+
setAttribute() {
|
|
12
|
+
this.renderer.setAttribute(this._hostElement.nativeElement, 'nbTagInput', '');
|
|
13
|
+
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTagInput, deps: [{ token: i0.ElementRef }, { token: i1.NbFocusMonitor }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i1.NbStatusService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SclTagInput, isStandalone: true, selector: "input[sclTagInput]", inputs: { separatorKeys: "separatorKeys" }, outputs: { tagAdd: "tagAdd" }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
|
|
16
|
+
}
|
|
17
|
+
export { SclTagInput };
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTagInput, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{
|
|
21
|
+
selector: 'input[sclTagInput]',
|
|
22
|
+
template: `<ng-content></ng-content>`,
|
|
23
|
+
standalone: true,
|
|
24
|
+
}]
|
|
25
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.NbFocusMonitor }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i1.NbStatusService }]; }, propDecorators: { separatorKeys: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], tagAdd: [{
|
|
28
|
+
type: Output
|
|
29
|
+
}] } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWNrYWdlcy90YWdsaXN0L3RhZy90YWcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFtQyxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPdEYsTUFLYSxXQUFZLFNBQVEsbUJBQW1CO0lBS2hELFlBQVksV0FBeUMsRUFBRSxZQUE0QixFQUFFLFFBQW1CLEVBQUUsSUFBWSxFQUFFLGFBQThCO1FBQ2xKLEtBQUssQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFIakQsV0FBTSxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUluRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLFlBQVk7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7OEdBWlEsV0FBVztrR0FBWCxXQUFXLGdMQUhWLDJCQUEyQjs7U0FHNUIsV0FBVzsyRkFBWCxXQUFXO2tCQUx2QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt5TUFFcUIsYUFBYTtzQkFBOUIsS0FBSztnQkFFYSxNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE91dHB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYkZvY3VzTW9uaXRvciwgTmJTdGF0dXNTZXJ2aWNlLCBOYlRhZ0lucHV0RGlyZWN0aXZlIH0gZnJvbSAnQG5lYnVsYXIvdGhlbWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjbFRhZ0lucHV0QWRkRXZlbnQge1xuICAgIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbc2NsVGFnSW5wdXRdJyxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNjbFRhZ0lucHV0IGV4dGVuZHMgTmJUYWdJbnB1dERpcmVjdGl2ZSB7XG4gICAgQElucHV0KCkgb3ZlcnJpZGUgc2VwYXJhdG9yS2V5cyE6IG51bWJlcltdO1xuXG4gICAgQE91dHB1dCgpIG92ZXJyaWRlIHRhZ0FkZDogRXZlbnRFbWl0dGVyPFNjbFRhZ0lucHV0QWRkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTY2xUYWdJbnB1dEFkZEV2ZW50PigpO1xuXG4gICAgY29uc3RydWN0b3IoaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sIGZvY3VzTW9uaXRvcjogTmJGb2N1c01vbml0b3IsIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHpvbmU6IE5nWm9uZSwgc3RhdHVzU2VydmljZTogTmJTdGF0dXNTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGhvc3RFbGVtZW50LCBmb2N1c01vbml0b3IsIHJlbmRlcmVyLCB6b25lLCBzdGF0dXNTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEF0dHJpYnV0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5faG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ25iVGFnSW5wdXQnLCAnJyk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, ContentChildren, EventEmitter, Output } from '@angular/core';
|
|
3
|
+
import { SclTagComponent } from './tag/tag.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
class SclTagListComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.tagRemove = new EventEmitter();
|
|
8
|
+
}
|
|
9
|
+
ngAfterContentInit() {
|
|
10
|
+
this.handleTagRemove();
|
|
11
|
+
this.tags.changes.subscribe(() => this.handleTagRemove());
|
|
12
|
+
}
|
|
13
|
+
handleTagRemove() {
|
|
14
|
+
this.tags.forEach(tag => {
|
|
15
|
+
tag.remove.pipe().subscribe(() => this.tagRemove.emit(tag));
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTagListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SclTagListComponent, isStandalone: true, selector: "scl-tag-list", outputs: { tagRemove: "tagRemove" }, host: { classAttribute: "scl-tag-list " }, queries: [{ propertyName: "tags", predicate: SclTagComponent, descendants: true }], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
20
|
+
}
|
|
21
|
+
export { SclTagListComponent };
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTagListComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{
|
|
25
|
+
selector: 'scl-tag-list',
|
|
26
|
+
standalone: true,
|
|
27
|
+
imports: [CommonModule],
|
|
28
|
+
host: {
|
|
29
|
+
class: 'scl-tag-list ',
|
|
30
|
+
},
|
|
31
|
+
template: ` <ng-content></ng-content> `,
|
|
32
|
+
}]
|
|
33
|
+
}], propDecorators: { tags: [{
|
|
34
|
+
type: ContentChildren,
|
|
35
|
+
args: [SclTagComponent, { descendants: true }]
|
|
36
|
+
}], tagRemove: [{
|
|
37
|
+
type: Output
|
|
38
|
+
}] } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvdGFnbGlzdC90YWdsaXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRXRELE1BU2EsbUJBQW1CO0lBVGhDO1FBWWMsY0FBUyxHQUFrQyxJQUFJLFlBQVksRUFBbUIsQ0FBQztLQVk1RjtJQVZHLGtCQUFrQjtRQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FkUSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw2S0FDWCxlQUFlLGdEQUh0Qiw2QkFBNkIsMkRBSjdCLFlBQVk7O1NBTWIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBVC9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsZUFBZTtxQkFDekI7b0JBQ0QsUUFBUSxFQUFFLDZCQUE2QjtpQkFDMUM7OEJBRTRELElBQUk7c0JBQTVELGVBQWU7dUJBQUMsZUFBZSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFFN0MsU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2NsVGFnQ29tcG9uZW50IH0gZnJvbSAnLi90YWcvdGFnLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2NsLXRhZy1saXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdzY2wtdGFnLWxpc3QgJyxcbiAgICB9LFxuICAgIHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gYCxcbn0pXG5leHBvcnQgY2xhc3MgU2NsVGFnTGlzdENvbXBvbmVudCB7XG4gICAgQENvbnRlbnRDaGlsZHJlbihTY2xUYWdDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgdGFncyE6IFF1ZXJ5TGlzdDxTY2xUYWdDb21wb25lbnQ+O1xuXG4gICAgQE91dHB1dCgpIHRhZ1JlbW92ZTogRXZlbnRFbWl0dGVyPFNjbFRhZ0NvbXBvbmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNjbFRhZ0NvbXBvbmVudD4oKTtcblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVUYWdSZW1vdmUoKTtcbiAgICAgICAgdGhpcy50YWdzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuaGFuZGxlVGFnUmVtb3ZlKCkpO1xuICAgIH1cblxuICAgIGhhbmRsZVRhZ1JlbW92ZSgpIHtcbiAgICAgICAgdGhpcy50YWdzLmZvckVhY2godGFnID0+IHtcbiAgICAgICAgICAgIHRhZy5yZW1vdmUucGlwZSgpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnRhZ1JlbW92ZS5lbWl0KHRhZykpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Directive, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
class SclTextDecoration {
|
|
4
|
+
get none() {
|
|
5
|
+
return this.type === 'none';
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTextDecoration, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: SclTextDecoration, isStandalone: true, selector: "[sclTextDecoration]", inputs: { type: "type" }, host: { properties: { "class.scl-text-decoration--none": "this.none" }, classAttribute: "scl-text-decoration" }, ngImport: i0 }); }
|
|
9
|
+
}
|
|
10
|
+
export { SclTextDecoration };
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTextDecoration, decorators: [{
|
|
12
|
+
type: Directive,
|
|
13
|
+
args: [{
|
|
14
|
+
selector: '[sclTextDecoration]',
|
|
15
|
+
standalone: true,
|
|
16
|
+
host: {
|
|
17
|
+
class: 'scl-text-decoration',
|
|
18
|
+
},
|
|
19
|
+
}]
|
|
20
|
+
}], propDecorators: { type: [{
|
|
21
|
+
type: Input
|
|
22
|
+
}], none: [{
|
|
23
|
+
type: HostBinding,
|
|
24
|
+
args: ['class.scl-text-decoration--none']
|
|
25
|
+
}] } });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1kZWNvcmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWNrYWdlcy90ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzlELE1BT2EsaUJBQWlCO0lBRzFCLElBQ0ksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUM7SUFDaEMsQ0FBQzs4R0FOUSxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7U0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBUDdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUscUJBQXFCO3FCQUMvQjtpQkFDSjs4QkFFWSxJQUFJO3NCQUFaLEtBQUs7Z0JBR0YsSUFBSTtzQkFEUCxXQUFXO3VCQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5leHBvcnQgdHlwZSBUZXh0RGVjb3JhdGlvbiA9ICdub25lJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbc2NsVGV4dERlY29yYXRpb25dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdzY2wtdGV4dC1kZWNvcmF0aW9uJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTY2xUZXh0RGVjb3JhdGlvbiB7XG4gICAgQElucHV0KCkgdHlwZT86IFRleHREZWNvcmF0aW9uO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zY2wtdGV4dC1kZWNvcmF0aW9uLS1ub25lJylcbiAgICBnZXQgbm9uZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ25vbmUnO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { Component, Input, ViewChild, forwardRef } from '@angular/core';
|
|
4
|
+
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
+
import { NbTabsetModule } from '@nebular/theme';
|
|
6
|
+
import { QuillModule } from 'ngx-quill';
|
|
7
|
+
import Quill from 'quill';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common";
|
|
10
|
+
import * as i2 from "@nebular/theme";
|
|
11
|
+
import * as i3 from "ngx-quill";
|
|
12
|
+
import * as i4 from "@angular/forms";
|
|
13
|
+
const Parchment = Quill.import('parchment');
|
|
14
|
+
const AlignStyle = new Parchment.Attributor.Style('align', 'text-align', {
|
|
15
|
+
scope: Parchment.Scope.BLOCK,
|
|
16
|
+
whitelist: ['left', 'center', 'right', 'justify'],
|
|
17
|
+
});
|
|
18
|
+
const DirectionStyle = new Parchment.Attributor.Style('direction', 'direction', {
|
|
19
|
+
scope: Parchment.Scope.BLOCK,
|
|
20
|
+
whitelist: ['ltr', 'rtl'],
|
|
21
|
+
});
|
|
22
|
+
const IndentStyle = new Parchment.Attributor.Style('indent', 'padding-left', {
|
|
23
|
+
scope: Parchment.Scope.BLOCK,
|
|
24
|
+
whitelist: ['0px', '30px', '60px', '90px', '120px', '150px', '180px', '210px', '240px', '270px'],
|
|
25
|
+
});
|
|
26
|
+
Quill.register(AlignStyle, true);
|
|
27
|
+
Quill.register(DirectionStyle, true);
|
|
28
|
+
Quill.register(IndentStyle, true);
|
|
29
|
+
let id = 1;
|
|
30
|
+
class SclTextEditor {
|
|
31
|
+
set hasImageUpload(value) {
|
|
32
|
+
this.showImgConfig = coerceBooleanProperty(value);
|
|
33
|
+
}
|
|
34
|
+
get hasImageUpload() {
|
|
35
|
+
return this.showImgConfig;
|
|
36
|
+
}
|
|
37
|
+
set toolbarOptions(options) {
|
|
38
|
+
this._toolbarOptions = options;
|
|
39
|
+
}
|
|
40
|
+
get toolbarOptions() {
|
|
41
|
+
return this._toolbarOptions;
|
|
42
|
+
}
|
|
43
|
+
get quillConfig() {
|
|
44
|
+
return {
|
|
45
|
+
toolbar: {
|
|
46
|
+
container: this.hasImageUpload ? this.toolbarOptions : this.toolbarOptions.filter(group => group.length > 1 || group[0] !== 'image'),
|
|
47
|
+
handlers: {
|
|
48
|
+
indent: (value) => {
|
|
49
|
+
this.handleIndent(value);
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
clipboard: {
|
|
54
|
+
matchVisual: false, // Prevents visual alignment of pasted content
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
constructor() {
|
|
59
|
+
this.showImgConfig = false;
|
|
60
|
+
this.isTabChanged = false;
|
|
61
|
+
this.imagePath = '';
|
|
62
|
+
this.content = '';
|
|
63
|
+
this.htmlContent = '';
|
|
64
|
+
this.id = 'editor-' + id++;
|
|
65
|
+
this.create = true;
|
|
66
|
+
this.saveAndPublishLoader = false;
|
|
67
|
+
this.saveLoader = false;
|
|
68
|
+
this.saveMode = '';
|
|
69
|
+
this.isVisualMode = true;
|
|
70
|
+
this.textEditorDisabled = false;
|
|
71
|
+
this._toolbarOptions = [
|
|
72
|
+
// Headings and structure
|
|
73
|
+
[{ header: [1, 2, 3, 4, 5, 6, false] }],
|
|
74
|
+
// Text formatting (basic)
|
|
75
|
+
['bold', 'italic', 'underline', 'strike'],
|
|
76
|
+
// Text appearance
|
|
77
|
+
[{ color: [] }, { background: [] }],
|
|
78
|
+
// Lists and indentation (organization)
|
|
79
|
+
[{ list: 'ordered' }, { list: 'bullet' }],
|
|
80
|
+
[{ indent: '-1' }, { indent: '+1' }],
|
|
81
|
+
// Text alignment and direction
|
|
82
|
+
[{ align: [] }, { direction: 'rtl' }],
|
|
83
|
+
// Special text elements
|
|
84
|
+
[{ script: 'sub' }, { script: 'super' }],
|
|
85
|
+
['blockquote', 'code-block'],
|
|
86
|
+
// Media and links
|
|
87
|
+
//add 'image' and 'video' if needed
|
|
88
|
+
['link'],
|
|
89
|
+
// Cleaning
|
|
90
|
+
['clean'],
|
|
91
|
+
];
|
|
92
|
+
this.onChange = () => { };
|
|
93
|
+
this.htmlText = '';
|
|
94
|
+
this.hasFocus = false;
|
|
95
|
+
this.format = 'html';
|
|
96
|
+
this.onTouched = () => { };
|
|
97
|
+
}
|
|
98
|
+
onEditorCreated(editorInstance) {
|
|
99
|
+
this.quill = editorInstance;
|
|
100
|
+
this.addToolbarTooltips(editorInstance);
|
|
101
|
+
}
|
|
102
|
+
addToolbarTooltips(editorInstance) {
|
|
103
|
+
const toolbarModule = editorInstance.getModule('toolbar');
|
|
104
|
+
if (!toolbarModule || !toolbarModule.container)
|
|
105
|
+
return;
|
|
106
|
+
const toolbarContainer = toolbarModule.container;
|
|
107
|
+
const tooltipMap = {
|
|
108
|
+
bold: 'Bold',
|
|
109
|
+
italic: 'Italic',
|
|
110
|
+
underline: 'Underline',
|
|
111
|
+
strike: 'Strikethrough',
|
|
112
|
+
header: 'Header',
|
|
113
|
+
font: 'Font',
|
|
114
|
+
color: 'Text color',
|
|
115
|
+
background: 'Background color',
|
|
116
|
+
align: 'Align',
|
|
117
|
+
direction: 'Text direction',
|
|
118
|
+
blockquote: 'Blockquote',
|
|
119
|
+
'code-block': 'Code Block',
|
|
120
|
+
link: 'Link',
|
|
121
|
+
image: 'Image',
|
|
122
|
+
video: 'Video',
|
|
123
|
+
clean: 'Clear formatting',
|
|
124
|
+
};
|
|
125
|
+
const buttons = toolbarContainer.querySelectorAll('button');
|
|
126
|
+
buttons.forEach((btn) => {
|
|
127
|
+
const qlCommand = Array.from(btn.classList).find(cls => cls.startsWith('ql-'));
|
|
128
|
+
if (!qlCommand)
|
|
129
|
+
return;
|
|
130
|
+
const command = qlCommand.replace('ql-', '');
|
|
131
|
+
const tooltip = this.getTooltipForButton(command, btn, tooltipMap);
|
|
132
|
+
if (tooltip && !btn.hasAttribute('title')) {
|
|
133
|
+
btn.setAttribute('title', tooltip);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
const pickerLabels = toolbarContainer.querySelectorAll('.ql-picker-label');
|
|
137
|
+
pickerLabels.forEach(label => {
|
|
138
|
+
if (label.hasAttribute('title'))
|
|
139
|
+
return;
|
|
140
|
+
const parentPicker = label.closest('.ql-picker');
|
|
141
|
+
if (!parentPicker)
|
|
142
|
+
return;
|
|
143
|
+
const commandClass = Array.from(parentPicker.classList).find(cls => cls.startsWith('ql-') && cls !== 'ql-picker');
|
|
144
|
+
if (!commandClass)
|
|
145
|
+
return;
|
|
146
|
+
const command = commandClass.replace('ql-', '');
|
|
147
|
+
const tooltip = tooltipMap[command] || '';
|
|
148
|
+
if (tooltip) {
|
|
149
|
+
label.setAttribute('title', tooltip);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
getTooltipForButton(command, button, tooltipMap) {
|
|
154
|
+
const value = button.getAttribute('value') ?? '';
|
|
155
|
+
switch (command) {
|
|
156
|
+
case 'script':
|
|
157
|
+
if (value === 'sub')
|
|
158
|
+
return 'Subscript';
|
|
159
|
+
if (value === 'super')
|
|
160
|
+
return 'Superscript';
|
|
161
|
+
break;
|
|
162
|
+
case 'list':
|
|
163
|
+
if (value === 'ordered')
|
|
164
|
+
return 'Ordered List';
|
|
165
|
+
if (value === 'bullet')
|
|
166
|
+
return 'Bullet List';
|
|
167
|
+
break;
|
|
168
|
+
case 'indent':
|
|
169
|
+
if (value === '+1')
|
|
170
|
+
return 'Increase Indent';
|
|
171
|
+
if (value === '-1')
|
|
172
|
+
return 'Decrease Indent';
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
return tooltipMap[command] || '';
|
|
176
|
+
}
|
|
177
|
+
handleIndent(value) {
|
|
178
|
+
const range = this.quill.getSelection();
|
|
179
|
+
if (!range)
|
|
180
|
+
return;
|
|
181
|
+
const format = this.quill.getFormat(range);
|
|
182
|
+
const currentIndent = format['indent'] || '0px';
|
|
183
|
+
const currentLevel = parseInt(currentIndent) / 30;
|
|
184
|
+
let newLevel;
|
|
185
|
+
if (value === '+1') {
|
|
186
|
+
newLevel = Math.min(currentLevel + 1, 9);
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
newLevel = Math.max(currentLevel - 1, 0);
|
|
190
|
+
}
|
|
191
|
+
const newIndent = newLevel === 0 ? false : `${newLevel * 30}px`;
|
|
192
|
+
this.quill.format('indent', newIndent);
|
|
193
|
+
}
|
|
194
|
+
registerOnChange(fn) {
|
|
195
|
+
this.onChange = fn;
|
|
196
|
+
}
|
|
197
|
+
registerOnTouched(fn) {
|
|
198
|
+
this.onTouched = fn;
|
|
199
|
+
}
|
|
200
|
+
writeValue(value) {
|
|
201
|
+
this.htmlText = value || '';
|
|
202
|
+
}
|
|
203
|
+
setDisabledState(isDisabled) {
|
|
204
|
+
this.textEditorDisabled = isDisabled;
|
|
205
|
+
}
|
|
206
|
+
tabChanged(event) {
|
|
207
|
+
switch (event.tabId) {
|
|
208
|
+
case 'VISUAL':
|
|
209
|
+
if (!this.isVisualMode) {
|
|
210
|
+
this.isVisualMode = true;
|
|
211
|
+
const htmlString = this.editor.quillEditor.getText().trim();
|
|
212
|
+
this.editor.quillEditor.root.innerHTML = htmlString;
|
|
213
|
+
}
|
|
214
|
+
break;
|
|
215
|
+
case 'TEXT':
|
|
216
|
+
if (this.isVisualMode) {
|
|
217
|
+
this.isVisualMode = false;
|
|
218
|
+
const htmlContent = this.editor.quillEditor.root.innerHTML;
|
|
219
|
+
this.editor.quillEditor.setText(htmlContent);
|
|
220
|
+
}
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
onSelectionChanged(event) {
|
|
225
|
+
if (event.oldRange == null) {
|
|
226
|
+
this.onTouched();
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
onContentChanged(event) {
|
|
230
|
+
this.onChange(this.htmlText);
|
|
231
|
+
}
|
|
232
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTextEditor, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
233
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SclTextEditor, isStandalone: true, selector: "scl-text-editor", inputs: { tabLess: "tabLess", placeholder: "placeholder", hasImageUpload: "hasImageUpload", toolbarOptions: "toolbarOptions" }, providers: [
|
|
234
|
+
{
|
|
235
|
+
provide: NG_VALUE_ACCESSOR,
|
|
236
|
+
useExisting: forwardRef(() => SclTextEditor),
|
|
237
|
+
multi: true,
|
|
238
|
+
},
|
|
239
|
+
], viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<div class=\"scl-text-editor\" [class.scl-text-editor--disabled]=\"textEditorDisabled\">\n <quill-editor\n [(ngModel)]=\"htmlText\"\n [modules]=\"quillConfig\"\n class=\"scl-text-editor__quill\"\n (onSelectionChanged)=\"onSelectionChanged($event)\"\n (onContentChanged)=\"onContentChanged($event)\"\n [format]=\"format\"\n #editor\n (onEditorCreated)=\"onEditorCreated($event)\"\n [placeholder]=\"placeholder\"></quill-editor>\n\n <div class=\"scl-text-editor__tab\" *ngIf=\"!tabLess\">\n <nb-tabset (changeTab)=\"tabChanged($event)\">\n <nb-tab tabTitle=\"Visual\" tabId=\"VISUAL\" [disabled]=\"textEditorDisabled\"> </nb-tab>\n <nb-tab tabTitle=\"Text\" tabId=\"TEXT\" [disabled]=\"textEditorDisabled\"> </nb-tab>\n </nb-tabset>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NbTabsetModule }, { kind: "component", type: i2.NbTabsetComponent, selector: "nb-tabset", inputs: ["fullWidth", "routeParam"], outputs: ["changeTab"] }, { kind: "component", type: i2.NbTabComponent, selector: "nb-tab", inputs: ["tabTitle", "tabId", "badgeDot", "tabIcon", "disabled", "responsive", "route", "active", "lazyLoad", "badgeText", "badgeStatus", "badgePosition"] }, { kind: "ngmodule", type: QuillModule }, { kind: "component", type: i3.QuillEditorComponent, selector: "quill-editor" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
240
|
+
}
|
|
241
|
+
export { SclTextEditor };
|
|
242
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTextEditor, decorators: [{
|
|
243
|
+
type: Component,
|
|
244
|
+
args: [{ selector: 'scl-text-editor', standalone: true, imports: [CommonModule, NbTabsetModule, QuillModule, FormsModule], providers: [
|
|
245
|
+
{
|
|
246
|
+
provide: NG_VALUE_ACCESSOR,
|
|
247
|
+
useExisting: forwardRef(() => SclTextEditor),
|
|
248
|
+
multi: true,
|
|
249
|
+
},
|
|
250
|
+
], template: "<div class=\"scl-text-editor\" [class.scl-text-editor--disabled]=\"textEditorDisabled\">\n <quill-editor\n [(ngModel)]=\"htmlText\"\n [modules]=\"quillConfig\"\n class=\"scl-text-editor__quill\"\n (onSelectionChanged)=\"onSelectionChanged($event)\"\n (onContentChanged)=\"onContentChanged($event)\"\n [format]=\"format\"\n #editor\n (onEditorCreated)=\"onEditorCreated($event)\"\n [placeholder]=\"placeholder\"></quill-editor>\n\n <div class=\"scl-text-editor__tab\" *ngIf=\"!tabLess\">\n <nb-tabset (changeTab)=\"tabChanged($event)\">\n <nb-tab tabTitle=\"Visual\" tabId=\"VISUAL\" [disabled]=\"textEditorDisabled\"> </nb-tab>\n <nb-tab tabTitle=\"Text\" tabId=\"TEXT\" [disabled]=\"textEditorDisabled\"> </nb-tab>\n </nb-tabset>\n </div>\n</div>\n" }]
|
|
251
|
+
}], ctorParameters: function () { return []; }, propDecorators: { tabLess: [{
|
|
252
|
+
type: Input
|
|
253
|
+
}], placeholder: [{
|
|
254
|
+
type: Input
|
|
255
|
+
}], editor: [{
|
|
256
|
+
type: ViewChild,
|
|
257
|
+
args: ['editor']
|
|
258
|
+
}], hasImageUpload: [{
|
|
259
|
+
type: Input
|
|
260
|
+
}], toolbarOptions: [{
|
|
261
|
+
type: Input
|
|
262
|
+
}] } });
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IudHMiLCIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZXMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBd0IsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQzs7Ozs7O0FBRTFCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDNUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFO0lBQ3JFLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUs7SUFDNUIsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO0NBQ3BELENBQUMsQ0FBQztBQUVILE1BQU0sY0FBYyxHQUFHLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRTtJQUM1RSxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLO0lB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bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOYlRhYnNldE1vZHVsZSB9IGZyb20gJ0BuZWJ1bGFyL3RoZW1lJztcbmltcG9ydCB7IFF1aWxsRWRpdG9yQ29tcG9uZW50LCBRdWlsbE1vZHVsZSB9IGZyb20gJ25neC1xdWlsbCc7XG5pbXBvcnQgUXVpbGwgZnJvbSAncXVpbGwnO1xuXG5jb25zdCBQYXJjaG1lbnQgPSBRdWlsbC5pbXBvcnQoJ3BhcmNobWVudCcpO1xuY29uc3QgQWxpZ25TdHlsZSA9IG5ldyBQYXJjaG1lbnQuQXR0cmlidXRvci5TdHlsZSgnYWxpZ24nLCAndGV4dC1hbGlnbicsIHtcbiAgICBzY29wZTogUGFyY2htZW50LlNjb3BlLkJMT0NLLFxuICAgIHdoaXRlbGlzdDogWydsZWZ0JywgJ2NlbnRlcicsICdyaWdodCcsICdqdXN0aWZ5J10sXG59KTtcblxuY29uc3QgRGlyZWN0aW9uU3R5bGUgPSBuZXcgUGFyY2htZW50LkF0dHJpYnV0b3IuU3R5bGUoJ2RpcmVjdGlvbicsICdkaXJlY3Rpb24nLCB7XG4gICAgc2NvcGU6IFBhcmNobWVudC5TY29wZS5CTE9DSyxcbiAgICB3aGl0ZWxpc3Q6IFsnbHRyJywgJ3J0bCddLFxufSk7XG5cbmNvbnN0IEluZGVudFN0eWxlID0gbmV3IFBhcmNobWVudC5BdHRyaWJ1dG9yLlN0eWxlKCdpbmRlbnQnLCAncGFkZGluZy1sZWZ0Jywge1xuICAgIHNjb3BlOiBQYXJjaG1lbnQuU2NvcGUuQkxPQ0ssXG4gICAgd2hpdGVsaXN0OiBbJzBweCcsICczMHB4JywgJzYwcHgnLCAnOTBweCcsICcxMjBweCcsICcxNTBweCcsICcxODBweCcsICcyMTBweCcsICcyNDBweCcsICcyNzBweCddLFxufSk7XG5cblF1aWxsLnJlZ2lzdGVyKEFsaWduU3R5bGUsIHRydWUpO1xuUXVpbGwucmVnaXN0ZXIoRGlyZWN0aW9uU3R5bGUsIHRydWUpO1xuUXVpbGwucmVnaXN0ZXIoSW5kZW50U3R5bGUsIHRydWUpO1xuXG5sZXQgaWQgPSAxO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjbC10ZXh0LWVkaXRvcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOYlRhYnNldE1vZHVsZSwgUXVpbGxNb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1lZGl0b3IuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2NsVGV4dEVkaXRvciksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTY2xUZXh0RWRpdG9yIHtcbiAgICBASW5wdXQoKSB0YWJMZXNzPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBAVmlld0NoaWxkKCdlZGl0b3InKSBlZGl0b3IhOiBRdWlsbEVkaXRvckNvbXBvbmVudDtcblxuICAgIHNob3dJbWdDb25maWcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGhhc0ltYWdlVXBsb2FkKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5zaG93SW1nQ29uZmlnID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IGhhc0ltYWdlVXBsb2FkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG93SW1nQ29uZmlnO1xuICAgIH1cblxuICAgIGlzVGFiQ2hhbmdlZCA9IGZhbHNlO1xuICAgIHF1aWxsITogUXVpbGw7XG4gICAgaW1hZ2VQYXRoID0gJyc7XG4gICAgY29udGVudDogc3RyaW5nID0gJyc7XG4gICAgcXVpbGxGaWxlOiBhbnk7XG4gICAgbWVRdWlsbFJlZjogYW55O1xuICAgIGNvbnRlbnRUeXBlITogc3RyaW5nO1xuICAgIGh0bWxDb250ZW50OiBzdHJpbmcgPSAnJztcbiAgICBpZCA9ICdlZGl0b3ItJyArIGlkKys7XG4gICAgY3JlYXRlID0gdHJ1ZTtcbiAgICBzYXZlQW5kUHVibGlzaExvYWRlciA9IGZhbHNlO1xuICAgIHNhdmVMb2FkZXIgPSBmYWxzZTtcbiAgICBzYXZlTW9kZSA9ICcnO1xuICAgIGlzVmlzdWFsTW9kZSA9IHRydWU7XG4gICAgdGV4dEVkaXRvckRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF90b29sYmFyT3B0aW9uczogYW55W10gPSBbXG4gICAgICAgIC8vIEhlYWRpbmdzIGFuZCBzdHJ1Y3R1cmVcbiAgICAgICAgW3sgaGVhZGVyOiBbMSwgMiwgMywgNCwgNSwgNiwgZmFsc2VdIH1dLFxuXG4gICAgICAgIC8vIFRleHQgZm9ybWF0dGluZyAoYmFzaWMpXG4gICAgICAgIFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJywgJ3N0cmlrZSddLFxuXG4gICAgICAgIC8vIFRleHQgYXBwZWFyYW5jZVxuICAgICAgICBbeyBjb2xvcjogW10gfSwgeyBiYWNrZ3JvdW5kOiBbXSB9XSxcblxuICAgICAgICAvLyBMaXN0cyBhbmQgaW5kZW50YXRpb24gKG9yZ2FuaXphdGlvbilcbiAgICAgICAgW3sgbGlzdDogJ29yZGVyZWQnIH0sIHsgbGlzdDogJ2J1bGxldCcgfV0sXG4gICAgICAgIFt7IGluZGVudDogJy0xJyB9LCB7IGluZGVudDogJysxJyB9XSxcblxuICAgICAgICAvLyBUZXh0IGFsaWdubWVudCBhbmQgZGlyZWN0aW9uXG4gICAgICAgIFt7IGFsaWduOiBbXSB9LCB7IGRpcmVjdGlvbjogJ3J0bCcgfV0sXG5cbiAgICAgICAgLy8gU3BlY2lhbCB0ZXh0IGVsZW1lbnRzXG4gICAgICAgIFt7IHNjcmlwdDogJ3N1YicgfSwgeyBzY3JpcHQ6ICdzdXBlcicgfV0sXG4gICAgICAgIFsnYmxvY2txdW90ZScsICdjb2RlLWJsb2NrJ10sXG5cbiAgICAgICAgLy8gTWVkaWEgYW5kIGxpbmtzXG4gICAgICAgIC8vYWRkICdpbWFnZScgYW5kICd2aWRlbycgaWYgbmVlZGVkXG4gICAgICAgIFsnbGluayddLFxuXG4gICAgICAgIC8vIENsZWFuaW5nXG4gICAgICAgIFsnY2xlYW4nXSxcbiAgICBdO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgdG9vbGJhck9wdGlvbnMob3B0aW9uczogYW55W10pIHtcbiAgICAgICAgdGhpcy5fdG9vbGJhck9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH1cbiAgICBnZXQgdG9vbGJhck9wdGlvbnMoKTogYW55W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdG9vbGJhck9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBodG1sVGV4dCA9ICcnO1xuICAgIGhhc0ZvY3VzID0gZmFsc2U7XG4gICAgZm9ybWF0OiBhbnkgPSAnaHRtbCc7XG4gICAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIGdldCBxdWlsbENvbmZpZygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvb2xiYXI6IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXI6IHRoaXMuaGFzSW1hZ2VVcGxvYWQgPyB0aGlzLnRvb2xiYXJPcHRpb25zIDogdGhpcy50b29sYmFyT3B0aW9ucy5maWx0ZXIoZ3JvdXAgPT4gZ3JvdXAubGVuZ3RoID4gMSB8fCBncm91cFswXSAhPT0gJ2ltYWdlJyksXG4gICAgICAgICAgICAgICAgaGFuZGxlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgaW5kZW50OiAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVJbmRlbnQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xpcGJvYXJkOiB7XG4gICAgICAgICAgICAgICAgbWF0Y2hWaXN1YWw6IGZhbHNlLCAvLyBQcmV2ZW50cyB2aXN1YWwgYWxpZ25tZW50IG9mIHBhc3RlZCBjb250ZW50XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIG9uRWRpdG9yQ3JlYXRlZChlZGl0b3JJbnN0YW5jZTogUXVpbGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5xdWlsbCA9IGVkaXRvckluc3RhbmNlO1xuICAgICAgICB0aGlzLmFkZFRvb2xiYXJUb29sdGlwcyhlZGl0b3JJbnN0YW5jZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRUb29sYmFyVG9vbHRpcHMoZWRpdG9ySW5zdGFuY2U6IFF1aWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJNb2R1bGUgPSBlZGl0b3JJbnN0YW5jZS5nZXRNb2R1bGUoJ3Rvb2xiYXInKTtcbiAgICAgICAgaWYgKCF0b29sYmFyTW9kdWxlIHx8ICF0b29sYmFyTW9kdWxlLmNvbnRhaW5lcikgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHRvb2xiYXJDb250YWluZXIgPSB0b29sYmFyTW9kdWxlLmNvbnRhaW5lciBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgdG9vbHRpcE1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgICAgIGJvbGQ6ICdCb2xkJyxcbiAgICAgICAgICAgIGl0YWxpYzogJ0l0YWxpYycsXG4gICAgICAgICAgICB1bmRlcmxpbmU6ICdVbmRlcmxpbmUnLFxuICAgICAgICAgICAgc3RyaWtlOiAnU3RyaWtldGhyb3VnaCcsXG4gICAgICAgICAgICBoZWFkZXI6ICdIZWFkZXInLFxuICAgICAgICAgICAgZm9udDogJ0ZvbnQnLFxuICAgICAgICAgICAgY29sb3I6ICdUZXh0IGNvbG9yJyxcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICdCYWNrZ3JvdW5kIGNvbG9yJyxcbiAgICAgICAgICAgIGFsaWduOiAnQWxpZ24nLFxuICAgICAgICAgICAgZGlyZWN0aW9uOiAnVGV4dCBkaXJlY3Rpb24nLFxuICAgICAgICAgICAgYmxvY2txdW90ZTogJ0Jsb2NrcXVvdGUnLFxuICAgICAgICAgICAgJ2NvZGUtYmxvY2snOiAnQ29kZSBCbG9jaycsXG4gICAgICAgICAgICBsaW5rOiAnTGluaycsXG4gICAgICAgICAgICBpbWFnZTogJ0ltYWdlJyxcbiAgICAgICAgICAgIHZpZGVvOiAnVmlkZW8nLFxuICAgICAgICAgICAgY2xlYW46ICdDbGVhciBmb3JtYXR0aW5nJyxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBidXR0b25zID0gdG9vbGJhckNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b24nKTtcbiAgICAgICAgYnV0dG9ucy5mb3JFYWNoKChidG46IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBxbENvbW1hbmQgPSBBcnJheS5mcm9tKGJ0bi5jbGFzc0xpc3QpLmZpbmQoY2xzID0+IGNscy5zdGFydHNXaXRoKCdxbC0nKSk7XG4gICAgICAgICAgICBpZiAoIXFsQ29tbWFuZCkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBjb21tYW5kID0gcWxDb21tYW5kLnJlcGxhY2UoJ3FsLScsICcnKTtcbiAgICAgICAgICAgIGNvbnN0IHRvb2x0aXAgPSB0aGlzLmdldFRvb2x0aXBGb3JCdXR0b24oY29tbWFuZCwgYnRuLCB0b29sdGlwTWFwKTtcbiAgICAgICAgICAgIGlmICh0b29sdGlwICYmICFidG4uaGFzQXR0cmlidXRlKCd0aXRsZScpKSB7XG4gICAgICAgICAgICAgICAgYnRuLnNldEF0dHJpYnV0ZSgndGl0bGUnLCB0b29sdGlwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcGlja2VyTGFiZWxzID0gdG9vbGJhckNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCcucWwtcGlja2VyLWxhYmVsJyk7XG4gICAgICAgIHBpY2tlckxhYmVscy5mb3JFYWNoKGxhYmVsID0+IHtcbiAgICAgICAgICAgIGlmIChsYWJlbC5oYXNBdHRyaWJ1dGUoJ3RpdGxlJykpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudFBpY2tlciA9IGxhYmVsLmNsb3Nlc3QoJy5xbC1waWNrZXInKTtcbiAgICAgICAgICAgIGlmICghcGFyZW50UGlja2VyKSByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmRDbGFzcyA9IEFycmF5LmZyb20ocGFyZW50UGlja2VyLmNsYXNzTGlzdCkuZmluZChjbHMgPT4gY2xzLnN0YXJ0c1dpdGgoJ3FsLScpICYmIGNscyAhPT0gJ3FsLXBpY2tlcicpO1xuICAgICAgICAgICAgaWYgKCFjb21tYW5kQ2xhc3MpIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgY29tbWFuZCA9IGNvbW1hbmRDbGFzcy5yZXBsYWNlKCdxbC0nLCAnJyk7XG4gICAgICAgICAgICBjb25zdCB0b29sdGlwID0gdG9vbHRpcE1hcFtjb21tYW5kXSB8fCAnJztcbiAgICAgICAgICAgIGlmICh0b29sdGlwKSB7XG4gICAgICAgICAgICAgICAgbGFiZWwuc2V0QXR0cmlidXRlKCd0aXRsZScsIHRvb2x0aXApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRvb2x0aXBGb3JCdXR0b24oY29tbWFuZDogc3RyaW5nLCBidXR0b246IEhUTUxFbGVtZW50LCB0b29sdGlwTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBidXR0b24uZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgICAgICBzd2l0Y2ggKGNvbW1hbmQpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NjcmlwdCc6XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSAnc3ViJykgcmV0dXJuICdTdWJzY3JpcHQnO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJ3N1cGVyJykgcmV0dXJuICdTdXBlcnNjcmlwdCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdsaXN0JzpcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09ICdvcmRlcmVkJykgcmV0dXJuICdPcmRlcmVkIExpc3QnO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJ2J1bGxldCcpIHJldHVybiAnQnVsbGV0IExpc3QnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaW5kZW50JzpcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09ICcrMScpIHJldHVybiAnSW5jcmVhc2UgSW5kZW50JztcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09ICctMScpIHJldHVybiAnRGVjcmVhc2UgSW5kZW50JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG9vbHRpcE1hcFtjb21tYW5kXSB8fCAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUluZGVudCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKCFyYW5nZSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IHRoaXMucXVpbGwuZ2V0Rm9ybWF0KHJhbmdlKTtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGVudCA9IGZvcm1hdFsnaW5kZW50J10gfHwgJzBweCc7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMZXZlbCA9IHBhcnNlSW50KGN1cnJlbnRJbmRlbnQpIC8gMzA7XG5cbiAgICAgICAgbGV0IG5ld0xldmVsOiBudW1iZXI7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJysxJykge1xuICAgICAgICAgICAgbmV3TGV2ZWwgPSBNYXRoLm1pbihjdXJyZW50TGV2ZWwgKyAxLCA5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0xldmVsID0gTWF0aC5tYXgoY3VycmVudExldmVsIC0gMSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXdJbmRlbnQgPSBuZXdMZXZlbCA9PT0gMCA/IGZhbHNlIDogYCR7bmV3TGV2ZWwgKiAzMH1weGA7XG4gICAgICAgIHRoaXMucXVpbGwuZm9ybWF0KCdpbmRlbnQnLCBuZXdJbmRlbnQpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmh0bWxUZXh0ID0gdmFsdWUgfHwgJyc7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGV4dEVkaXRvckRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICB0YWJDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC50YWJJZCkge1xuICAgICAgICAgICAgY2FzZSAnVklTVUFMJzpcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNWaXN1YWxNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNWaXN1YWxNb2RlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaHRtbFN0cmluZyA9IHRoaXMuZWRpdG9yLnF1aWxsRWRpdG9yLmdldFRleHQoKS50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yLnF1aWxsRWRpdG9yLnJvb3QuaW5uZXJIVE1MID0gaHRtbFN0cmluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdURVhUJzpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1Zpc3VhbE1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1Zpc3VhbE1vZGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaHRtbENvbnRlbnQgPSB0aGlzLmVkaXRvci5xdWlsbEVkaXRvci5yb290LmlubmVySFRNTDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lZGl0b3IucXVpbGxFZGl0b3Iuc2V0VGV4dChodG1sQ29udGVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TZWxlY3Rpb25DaGFuZ2VkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50Lm9sZFJhbmdlID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNvbnRlbnRDaGFuZ2VkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmh0bWxUZXh0KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2NsLXRleHQtZWRpdG9yXCIgW2NsYXNzLnNjbC10ZXh0LWVkaXRvci0tZGlzYWJsZWRdPVwidGV4dEVkaXRvckRpc2FibGVkXCI+XG4gICAgPHF1aWxsLWVkaXRvclxuICAgICAgICBbKG5nTW9kZWwpXT1cImh0bWxUZXh0XCJcbiAgICAgICAgW21vZHVsZXNdPVwicXVpbGxDb25maWdcIlxuICAgICAgICBjbGFzcz1cInNjbC10ZXh0LWVkaXRvcl9fcXVpbGxcIlxuICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9uQ29udGVudENoYW5nZWQpPVwib25Db250ZW50Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgW2Zvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgICAjZWRpdG9yXG4gICAgICAgIChvbkVkaXRvckNyZWF0ZWQpPVwib25FZGl0b3JDcmVhdGVkKCRldmVudClcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIj48L3F1aWxsLWVkaXRvcj5cblxuICAgIDxkaXYgY2xhc3M9XCJzY2wtdGV4dC1lZGl0b3JfX3RhYlwiICpuZ0lmPVwiIXRhYkxlc3NcIj5cbiAgICAgICAgPG5iLXRhYnNldCAoY2hhbmdlVGFiKT1cInRhYkNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG5iLXRhYiB0YWJUaXRsZT1cIlZpc3VhbFwiIHRhYklkPVwiVklTVUFMXCIgW2Rpc2FibGVkXT1cInRleHRFZGl0b3JEaXNhYmxlZFwiPiA8L25iLXRhYj5cbiAgICAgICAgICAgIDxuYi10YWIgdGFiVGl0bGU9XCJUZXh0XCIgdGFiSWQ9XCJURVhUXCIgW2Rpc2FibGVkXT1cInRleHRFZGl0b3JEaXNhYmxlZFwiPiA8L25iLXRhYj5cbiAgICAgICAgPC9uYi10YWJzZXQ+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { NbThemeModule } from '@nebular/theme';
|
|
2
|
+
export function themeProvider(themeName = 'default') {
|
|
3
|
+
return [
|
|
4
|
+
NbThemeModule.forRoot({
|
|
5
|
+
name: themeName,
|
|
6
|
+
}).providers,
|
|
7
|
+
];
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFja2FnZXMvdGhlbWUucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE1BQU0sVUFBVSxhQUFhLENBQUMsWUFBb0IsU0FBUztJQUN2RCxPQUFPO1FBQ0gsYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUNsQixJQUFJLEVBQUUsU0FBUztTQUNsQixDQUFDLENBQUMsU0FBUztLQUNmLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmJUaGVtZU1vZHVsZSB9IGZyb20gJ0BuZWJ1bGFyL3RoZW1lJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRoZW1lUHJvdmlkZXIodGhlbWVOYW1lOiBzdHJpbmcgPSAnZGVmYXVsdCcpIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBOYlRoZW1lTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgICAgICAgbmFtZTogdGhlbWVOYW1lLFxuICAgICAgICB9KS5wcm92aWRlcnMsXG4gICAgXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { NbCardModule } from '@nebular/theme';
|
|
4
|
+
import * as moment from 'moment';
|
|
5
|
+
import { SclBadge } from '../badge/badge';
|
|
6
|
+
import { SclTruncate } from '../truncate/truncate.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "@nebular/theme";
|
|
10
|
+
class SclTimelineComponent {
|
|
11
|
+
get data() {
|
|
12
|
+
return this._data;
|
|
13
|
+
}
|
|
14
|
+
set data(value) {
|
|
15
|
+
this._data = value;
|
|
16
|
+
this.groupedData = this.groupByMonth(this._data);
|
|
17
|
+
}
|
|
18
|
+
constructor() {
|
|
19
|
+
this.onClick = new EventEmitter();
|
|
20
|
+
this._data = [];
|
|
21
|
+
this.groupedData = [];
|
|
22
|
+
}
|
|
23
|
+
onSelect(value) {
|
|
24
|
+
if (value.active) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
this.data.forEach(item => {
|
|
28
|
+
item.active = item === value;
|
|
29
|
+
});
|
|
30
|
+
this.onClick.emit(value);
|
|
31
|
+
}
|
|
32
|
+
groupByMonth(items) {
|
|
33
|
+
const groupedData = {};
|
|
34
|
+
items?.forEach(item => {
|
|
35
|
+
const formattedDate = moment(item.description).format('YYYY-MM');
|
|
36
|
+
if (!groupedData[formattedDate]) {
|
|
37
|
+
groupedData[formattedDate] = [];
|
|
38
|
+
}
|
|
39
|
+
groupedData[formattedDate].push(item);
|
|
40
|
+
});
|
|
41
|
+
return Object.keys(groupedData).map(date => ({
|
|
42
|
+
date,
|
|
43
|
+
remainingData: groupedData[date],
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
getMetadata(item) {
|
|
47
|
+
const ignore = ['label', 'description', 'active', 'id'];
|
|
48
|
+
return Object.keys(item)
|
|
49
|
+
.filter(key => !ignore.includes(key))
|
|
50
|
+
.map(key => item[key]);
|
|
51
|
+
}
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: SclTimelineComponent, isStandalone: true, selector: "scl-timeline", inputs: { data: "data" }, outputs: { onClick: "onClick" }, host: { classAttribute: "scl-timeline" }, ngImport: i0, template: "<div class=\"scl-timeline__aside\">\n <nb-card class=\"scl-timeline__card\">\n <nb-card-body class=\"scl-timeline__card-body\">\n <section class=\"scl-timeline__wrapper\" *ngFor=\"let group of groupedData\">\n <h3 class=\"scl-timeline__title\">{{ group.date | date: 'MMM, y' }}</h3>\n\n <div class=\"scl-timeline-item\" *ngFor=\"let item of group.remainingData; let i = index\">\n <div class=\"scl-timeline-item__bullet-wrapper\">\n <span class=\"scl-timeline-item__bullet\" [class.active]=\"item?.active\"></span>\n <div class=\"scl-timeline-item__line\" *ngIf=\"i < group.remainingData.length - 1\"></div>\n </div>\n <button class=\"scl-timeline-item__card\" (click)=\"onSelect(item)\" [class.active]=\"item?.active\">\n <div class=\"scl-timeline-item__content\">\n <span class=\"scl-timeline-item__label\" sclTruncate=\"1\">{{ item?.label }}</span>\n <scl-badge *ngIf=\"item === data[0]\" status=\"success\"> CURRENT </scl-badge>\n </div>\n <span class=\"scl-timeline-item__info\">{{ item?.description | date: \"MMM d 'at' hh:mm a\" }}</span>\n <ng-container *ngFor=\"let value of getMetadata(item)\">\n <span class=\"scl-timeline-item__info\">{{ value }}</span>\n </ng-container>\n </button>\n </div>\n </section>\n </nb-card-body>\n </nb-card>\n</div>\n\n<div class=\"scl-timeline__content\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "directive", type: SclBadge, selector: "scl-badge", inputs: ["status"] }, { kind: "directive", type: SclTruncate, selector: "[sclTruncate]", inputs: ["sclTruncate"] }, { kind: "ngmodule", type: NbCardModule }, { kind: "component", type: i2.NbCardComponent, selector: "nb-card", inputs: ["size", "status", "accent"] }, { kind: "component", type: i2.NbCardBodyComponent, selector: "nb-card-body" }] }); }
|
|
54
|
+
}
|
|
55
|
+
export { SclTimelineComponent };
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SclTimelineComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ selector: 'scl-timeline', standalone: true, imports: [CommonModule, SclBadge, SclTruncate, NbCardModule], host: {
|
|
59
|
+
class: 'scl-timeline',
|
|
60
|
+
}, template: "<div class=\"scl-timeline__aside\">\n <nb-card class=\"scl-timeline__card\">\n <nb-card-body class=\"scl-timeline__card-body\">\n <section class=\"scl-timeline__wrapper\" *ngFor=\"let group of groupedData\">\n <h3 class=\"scl-timeline__title\">{{ group.date | date: 'MMM, y' }}</h3>\n\n <div class=\"scl-timeline-item\" *ngFor=\"let item of group.remainingData; let i = index\">\n <div class=\"scl-timeline-item__bullet-wrapper\">\n <span class=\"scl-timeline-item__bullet\" [class.active]=\"item?.active\"></span>\n <div class=\"scl-timeline-item__line\" *ngIf=\"i < group.remainingData.length - 1\"></div>\n </div>\n <button class=\"scl-timeline-item__card\" (click)=\"onSelect(item)\" [class.active]=\"item?.active\">\n <div class=\"scl-timeline-item__content\">\n <span class=\"scl-timeline-item__label\" sclTruncate=\"1\">{{ item?.label }}</span>\n <scl-badge *ngIf=\"item === data[0]\" status=\"success\"> CURRENT </scl-badge>\n </div>\n <span class=\"scl-timeline-item__info\">{{ item?.description | date: \"MMM d 'at' hh:mm a\" }}</span>\n <ng-container *ngFor=\"let value of getMetadata(item)\">\n <span class=\"scl-timeline-item__info\">{{ value }}</span>\n </ng-container>\n </button>\n </div>\n </section>\n </nb-card-body>\n </nb-card>\n</div>\n\n<div class=\"scl-timeline__content\">\n <ng-content></ng-content>\n</div>\n" }]
|
|
61
|
+
}], ctorParameters: function () { return []; }, propDecorators: { onClick: [{
|
|
62
|
+
type: Output
|
|
63
|
+
}], data: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}] } });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2VzL3RpbWVsaW5lL3RpbWVsaW5lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9wYWNrYWdlcy90aW1lbGluZS90aW1lbGluZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQVU3RCxNQVNhLG9CQUFvQjtJQUs3QixJQUFhLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLEtBQXdCO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUlEO1FBZlUsWUFBTyxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlELFVBQUssR0FBc0IsRUFBRSxDQUFDO1FBV3RDLGdCQUFXLEdBQVUsRUFBRSxDQUFDO0lBRVQsQ0FBQztJQUVoQixRQUFRLENBQUMsS0FBc0I7UUFDM0IsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2QsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEtBQUssS0FBSyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFZO1FBQ3JCLE1BQU0sV0FBVyxHQUE4QixFQUFFLENBQUM7UUFDbEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsQixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUM3QixXQUFXLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ25DO1lBQ0QsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLElBQUk7WUFDSixhQUFhLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQztTQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBcUI7UUFDN0IsTUFBTSxNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ25CLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNwQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQWpEUSxvQkFBb0I7a0dBQXBCLG9CQUFvQiw2S0N4QmpDLGl0REE4QkEsMkNEWGMsWUFBWSxtVEFBRSxRQUFRLDBFQUFFLFdBQVcsa0ZBQUUsWUFBWTs7U0FLbEQsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBVGhDLFNBQVM7K0JBQ0ksY0FBYyxjQUVaLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxRQUN0RDt3QkFDRixLQUFLLEVBQUUsY0FBYztxQkFDeEI7MEVBR1MsT0FBTztzQkFBaEIsTUFBTTtnQkFJTSxJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5iQ2FyZE1vZHVsZSB9IGZyb20gJ0BuZWJ1bGFyL3RoZW1lJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgU2NsQmFkZ2UgfSBmcm9tICcuLi9iYWRnZS9iYWRnZSc7XG5pbXBvcnQgeyBTY2xUcnVuY2F0ZSB9IGZyb20gJy4uL3RydW5jYXRlL3RydW5jYXRlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NsVGltZWxpbmVJdGVtIHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjbC10aW1lbGluZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWVsaW5lLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNjbEJhZGdlLCBTY2xUcnVuY2F0ZSwgTmJDYXJkTW9kdWxlXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnc2NsLXRpbWVsaW5lJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTY2xUaW1lbGluZUNvbXBvbmVudCB7XG4gICAgQE91dHB1dCgpIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxTY2xUaW1lbGluZUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHJpdmF0ZSBfZGF0YTogU2NsVGltZWxpbmVJdGVtW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIGdldCBkYXRhKCk6IFNjbFRpbWVsaW5lSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gICAgfVxuXG4gICAgc2V0IGRhdGEodmFsdWU6IFNjbFRpbWVsaW5lSXRlbVtdKSB7XG4gICAgICAgIHRoaXMuX2RhdGEgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5ncm91cGVkRGF0YSA9IHRoaXMuZ3JvdXBCeU1vbnRoKHRoaXMuX2RhdGEpO1xuICAgIH1cblxuICAgIGdyb3VwZWREYXRhOiBhbnlbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgb25TZWxlY3QodmFsdWU6IFNjbFRpbWVsaW5lSXRlbSkge1xuICAgICAgICBpZiAodmFsdWUuYWN0aXZlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRhLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpdGVtLmFjdGl2ZSA9IGl0ZW0gPT09IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkNsaWNrLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIGdyb3VwQnlNb250aChpdGVtczogYW55W10pIHtcbiAgICAgICAgY29uc3QgZ3JvdXBlZERhdGE6IHsgW2RhdGU6IHN0cmluZ106IGFueVtdIH0gPSB7fTtcbiAgICAgICAgaXRlbXM/LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gbW9tZW50KGl0ZW0uZGVzY3JpcHRpb24pLmZvcm1hdCgnWVlZWS1NTScpO1xuICAgICAgICAgICAgaWYgKCFncm91cGVkRGF0YVtmb3JtYXR0ZWREYXRlXSkge1xuICAgICAgICAgICAgICAgIGdyb3VwZWREYXRhW2Zvcm1hdHRlZERhdGVdID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBncm91cGVkRGF0YVtmb3JtYXR0ZWREYXRlXS5wdXNoKGl0ZW0pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZ3JvdXBlZERhdGEpLm1hcChkYXRlID0+ICh7XG4gICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgcmVtYWluaW5nRGF0YTogZ3JvdXBlZERhdGFbZGF0ZV0sXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBnZXRNZXRhZGF0YShpdGVtOiBTY2xUaW1lbGluZUl0ZW0pOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IGlnbm9yZSA9IFsnbGFiZWwnLCAnZGVzY3JpcHRpb24nLCAnYWN0aXZlJywgJ2lkJ107XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhpdGVtKVxuICAgICAgICAgICAgLmZpbHRlcihrZXkgPT4gIWlnbm9yZS5pbmNsdWRlcyhrZXkpKVxuICAgICAgICAgICAgLm1hcChrZXkgPT4gaXRlbVtrZXldKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2NsLXRpbWVsaW5lX19hc2lkZVwiPlxuICAgIDxuYi1jYXJkIGNsYXNzPVwic2NsLXRpbWVsaW5lX19jYXJkXCI+XG4gICAgICAgIDxuYi1jYXJkLWJvZHkgY2xhc3M9XCJzY2wtdGltZWxpbmVfX2NhcmQtYm9keVwiPlxuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzY2wtdGltZWxpbmVfX3dyYXBwZXJcIiAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgZ3JvdXBlZERhdGFcIj5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJzY2wtdGltZWxpbmVfX3RpdGxlXCI+e3sgZ3JvdXAuZGF0ZSB8IGRhdGU6ICdNTU0sIHknIH19PC9oMz5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2wtdGltZWxpbmUtaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwLnJlbWFpbmluZ0RhdGE7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjbC10aW1lbGluZS1pdGVtX19idWxsZXQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzY2wtdGltZWxpbmUtaXRlbV9fYnVsbGV0XCIgW2NsYXNzLmFjdGl2ZV09XCJpdGVtPy5hY3RpdmVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLXRpbWVsaW5lLWl0ZW1fX2xpbmVcIiAqbmdJZj1cImkgPCBncm91cC5yZW1haW5pbmdEYXRhLmxlbmd0aCAtIDFcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzY2wtdGltZWxpbmUtaXRlbV9fY2FyZFwiIChjbGljayk9XCJvblNlbGVjdChpdGVtKVwiIFtjbGFzcy5hY3RpdmVdPVwiaXRlbT8uYWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NsLXRpbWVsaW5lLWl0ZW1fX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNjbC10aW1lbGluZS1pdGVtX19sYWJlbFwiIHNjbFRydW5jYXRlPVwiMVwiPnt7IGl0ZW0/LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzY2wtYmFkZ2UgKm5nSWY9XCJpdGVtID09PSBkYXRhWzBdXCIgc3RhdHVzPVwic3VjY2Vzc1wiPiBDVVJSRU5UIDwvc2NsLWJhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNjbC10aW1lbGluZS1pdGVtX19pbmZvXCI+e3sgaXRlbT8uZGVzY3JpcHRpb24gfCBkYXRlOiBcIk1NTSBkICdhdCcgaGg6bW0gYVwiIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgZ2V0TWV0YWRhdGEoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNjbC10aW1lbGluZS1pdGVtX19pbmZvXCI+e3sgdmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvbmItY2FyZC1ib2R5PlxuICAgIDwvbmItY2FyZD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwic2NsLXRpbWVsaW5lX19jb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|