@theseam/ui-common 1.0.0-beta.0 → 1.0.0-beta.10
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/breadcrumbs/index.d.ts +1 -2
- package/buttons/index.d.ts +20 -13
- package/datatable/index.d.ts +77 -39
- package/dynamic/index.d.ts +5 -5
- package/fesm2022/theseam-ui-common-asset-reader.mjs +28 -29
- package/fesm2022/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-breadcrumbs.mjs +25 -31
- package/fesm2022/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-buttons.mjs +108 -66
- package/fesm2022/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-card.mjs +21 -21
- package/fesm2022/theseam-ui-common-card.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-carousel.mjs +28 -30
- package/fesm2022/theseam-ui-common-carousel.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-checkbox.mjs +27 -27
- package/fesm2022/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-confirm-dialog.mjs +23 -27
- package/fesm2022/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-core.mjs +31 -11
- package/fesm2022/theseam-ui-common-core.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-data-exporter.mjs +18 -19
- package/fesm2022/theseam-ui-common-data-exporter.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-data-filters.mjs +80 -64
- package/fesm2022/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs +51 -49
- package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable-dynamic.mjs +145 -112
- package/fesm2022/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable.mjs +727 -420
- package/fesm2022/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs +12 -14
- package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-dynamic.mjs +60 -48
- package/fesm2022/theseam-ui-common-dynamic.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-footer-bar.mjs +9 -15
- package/fesm2022/theseam-ui-common-footer-bar.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-form-field-error.mjs +60 -43
- package/fesm2022/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-form-field.mjs +129 -76
- package/fesm2022/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-framework.mjs +669 -543
- package/fesm2022/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-google-maps.mjs +206 -149
- package/fesm2022/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-graphql.mjs +311 -254
- package/fesm2022/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-icon.mjs +125 -89
- package/fesm2022/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-layout.mjs +18 -26
- package/fesm2022/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-loading.mjs +19 -28
- package/fesm2022/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-menu.mjs +124 -95
- package/fesm2022/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-modal.mjs +178 -129
- package/fesm2022/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-models.mjs +3 -3
- package/fesm2022/theseam-ui-common-models.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-navigation-reload.mjs +13 -11
- package/fesm2022/theseam-ui-common-navigation-reload.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-popover.mjs +81 -88
- package/fesm2022/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-progress.mjs +15 -19
- package/fesm2022/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-rich-text.mjs +65 -52
- package/fesm2022/theseam-ui-common-rich-text.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-scrollbar.mjs +12 -9
- package/fesm2022/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-services.mjs +41 -26
- package/fesm2022/theseam-ui-common-services.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-shared.mjs +149 -159
- package/fesm2022/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-storage.mjs +9 -6
- package/fesm2022/theseam-ui-common-storage.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-story-helpers.mjs +148 -86
- package/fesm2022/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tabbed.mjs +43 -39
- package/fesm2022/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table-cell-type.mjs +63 -39
- package/fesm2022/theseam-ui-common-table-cell-type.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table-cell-types.mjs +182 -144
- package/fesm2022/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table.mjs +62 -41
- package/fesm2022/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tel-input.mjs +98 -63
- package/fesm2022/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-testing.mjs +13 -10
- package/fesm2022/theseam-ui-common-testing.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tiled-select.mjs +54 -50
- package/fesm2022/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-toggle-edit.mjs +41 -37
- package/fesm2022/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-toggle-group.mjs +30 -31
- package/fesm2022/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tooltip.mjs +225 -66
- package/fesm2022/theseam-ui-common-tooltip.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs +14 -12
- package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-utils.mjs +113 -77
- package/fesm2022/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-validators.mjs +10 -9
- package/fesm2022/theseam-ui-common-validators.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-vertical-list-filter.mjs +39 -17
- package/fesm2022/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-viewers.mjs +80 -53
- package/fesm2022/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-widget.mjs +288 -314
- package/fesm2022/theseam-ui-common-widget.mjs.map +1 -1
- package/form-field/index.d.ts +1 -1
- package/framework/base-layout/base-layout.component.scss +9 -4
- package/framework/base-layout/styles/_variables.scss +4 -9
- package/framework/dashboard/dashboard-widgets/dashboard-widgets.component.scss +6 -4
- package/framework/index.d.ts +6 -6
- package/framework/nav/nav-item/nav-item.component.scss +7 -6
- package/framework/nav/styles/_themes/light/_variables.scss +21 -5
- package/framework/nav/styles/_themes/primary/_variables.scss +21 -5
- package/framework/side-nav/side-nav-item/side-nav-item.component.scss +5 -2
- package/framework/side-nav/styles/_themes/light/_variables.scss +5 -1
- package/framework/side-nav/styles/_themes/primary/_variables.scss +25 -5
- package/graphql/index.d.ts +49 -7
- package/modal/README.md +5 -5
- package/modal/index.d.ts +1 -1
- package/models/index.d.ts +1 -1
- package/package.json +59 -60
- package/popover/index.d.ts +0 -2
- package/progress/progress-circle/styles/_variables.scss +15 -3
- package/shared/index.d.ts +0 -13
- package/story-helpers/index.d.ts +11 -1
- package/styles/bootstrap/_bootstrap.scss +34 -34
- package/styles/bootstrap/_bs-styles.scss +4 -8
- package/styles/bootstrap/_bs-utilities.scss +4 -4
- package/styles/bootstrap/_bs-variables.scss +65 -70
- package/styles/common/_forms.scss +9 -10
- package/styles/common/_global.scss +0 -1
- package/styles/common/_hacks.scss +1 -1
- package/styles/common/_table.scss +0 -1
- package/styles/common/_text.scss +3 -1
- package/styles/theme.scss +1 -1
- package/styles/vendor/ng-select/_ng-select-bs4.scss +292 -294
- package/styles/vendor/ngx-datatable/_ngx-datatable.scss +63 -32
- package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +37 -10
- package/styles/vendor/ngx-datatable/_themes/material/_variables.scss +3 -1
- package/styles/vendor/quill/_quill.scss +15 -9
- package/table/index.d.ts +4 -1
- package/table-cell-type/index.d.ts +27 -2
- package/tel-input/README.md +27 -27
- package/utils/index.d.ts +3 -3
- package/viewers/index.d.ts +9 -2
- package/widget/_widget-theme.scss +1 -1
- package/widget/styles/_variables.scss +2 -2
- package/widget/widget/widget.component.scss +0 -2
- package/widget/widget-content-components/widget-tile/widget-tile.component.scss +1 -3
- package/widget/widget-footer/widget-footer.component.scss +0 -1
|
@@ -25,7 +25,9 @@ class ProgressCircleComponent {
|
|
|
25
25
|
this._percentage = value;
|
|
26
26
|
this._progressInfo = this._getProgress();
|
|
27
27
|
}
|
|
28
|
-
get percentage() {
|
|
28
|
+
get percentage() {
|
|
29
|
+
return this._percentage;
|
|
30
|
+
}
|
|
29
31
|
radius = 15;
|
|
30
32
|
circumference = 2 * Math.PI * this.radius;
|
|
31
33
|
_progressInfo;
|
|
@@ -33,11 +35,11 @@ class ProgressCircleComponent {
|
|
|
33
35
|
return {
|
|
34
36
|
dashoffset: calcDashoffset(this.percentage || 0, this.circumference),
|
|
35
37
|
circumference: this.circumference,
|
|
36
|
-
percent: Math.floor(this.percentage || 0)
|
|
38
|
+
percent: Math.floor(this.percentage || 0),
|
|
37
39
|
};
|
|
38
40
|
}
|
|
39
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
40
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ProgressCircleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: ProgressCircleComponent, isStandalone: false, selector: "seam-progress-circle", inputs: { fillBackground: "fillBackground", showText: "showText", hiddenOnEmpty: "hiddenOnEmpty", pending: "pending", percentage: "percentage" }, ngImport: i0, template: "<div\n class=\"seam-progress-circle\"\n *ngIf=\"_progressInfo as p\"\n [class.seam-progress-circle--in-complete]=\"p.percent < 100\"\n [class.seam-progress-circle--fill-bg]=\"fillBackground\"\n>\n <div class=\"seam-progress-circle-inner\">\n <ng-container *ngIf=\"p.percent > 0 || !hiddenOnEmpty\">\n <svg\n class=\"seam-progress-circle--icon-spinner\"\n viewBox=\"0 0 40 40\"\n [attr.data-percent]=\"p.percent\"\n >\n <circle\n class=\"seam-progress-circle--icon-spinner-path seam-progress-circle--icon-spinner-path-bg\"\n cx=\"20\"\n cy=\"20\"\n r=\"15\"\n fill=\"none\"\n stroke-width=\"4\"\n ></circle>\n <circle\n class=\"seam-progress-circle--icon-spinner-path\"\n cx=\"20\"\n cy=\"20\"\n r=\"15\"\n fill=\"none\"\n transform=\"rotate(-90, 20, 20)\"\n stroke-width=\"4\"\n stroke-miterlimit=\"10\"\n [attr.stroke-dashoffset]=\"p.dashoffset\"\n [style.stroke-dasharray]=\"p.circumference\"\n ></circle>\n <!-- Checkmark -->\n <path\n *ngIf=\"!pending && p.percent === 100\"\n class=\"seam-progress-circle--icon-spinner-path\"\n fill=\"none\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M 11,22 L 18,28 L 28.5,17\"\n ></path>\n <!-- Hourglass -->\n <!-- `p.percent === 101` is still here for backwards compatability, but planing to be removed. -->\n <path\n *ngIf=\"pending || p.percent === 101\"\n class=\"seam-progress-circle--icon-hourglass\"\n fill=\"none\"\n d=\"M27.3,25.8c-0.2-2.5-1.6-4.6-3.6-5.8c2-1.2,3.4-3.3,3.6-5.8c0.7-0.3,1.2-1,1.2-1.8c0-1.1-0.9-2-2-2h-13\n c-1.1,0-2,0.9-2,2c0,0.8,0.5,1.6,1.2,1.8c0.2,2.5,1.6,4.6,3.6,5.8c-2,1.2-3.4,3.3-3.6,5.8c-0.7,0.3-1.2,1-1.2,1.8c0,1.1,0.9,2,2,2\n h13c1.1,0,2-0.9,2-2C28.6,26.9,28,26.1,27.3,25.8z M24.3,25.7h-8.5c0.3-2.1,2.1-3.6,4.2-3.6S24,23.6,24.3,25.7z M20,18\n c-2.1,0-3.9-1.6-4.2-3.6h8.5C24,16.5,22.2,18,20,18z\"\n ></path>\n </svg>\n </ng-container>\n <div\n class=\"seam-progress-circle--icon-text\"\n *ngIf=\"showText && !pending && p.percent > 0 && p.percent < 100\"\n >\n <span>{{ p.percent }}</span>\n </div>\n </div>\n</div>\n", styles: ["seam-progress-circle{display:block}seam-progress-circle .seam-progress-circle--absolute-fill,seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-spinner,seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-center,seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-text,seam-progress-circle .seam-progress-circle{position:absolute;inset:0}seam-progress-circle .seam-progress-circle{padding:5px}seam-progress-circle .seam-progress-circle .seam-progress-circle-inner{position:relative;height:100%;width:100%}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-check{padding-top:4px;font-size:1.3rem;line-height:1.3rem;color:#55c83c}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-text{text-align:center;align-items:center;display:flex;flex-direction:row;justify-content:center;color:#55c83c;font-size:19px;font-weight:700;transform:translateZ(0)}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-center{transform-origin:center center;text-align:center;align-items:center;display:flex;flex-direction:row;justify-content:center}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-spinner{margin:auto}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-spinner .seam-progress-circle--icon-spinner-path{stroke-linecap:round;stroke:#55c83c;transition:.5s}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-spinner .seam-progress-circle--icon-spinner-path:not(path){stroke-dasharray:0}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-spinner .seam-progress-circle--icon-hourglass{fill:#55c83c;transition:.5s}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-spinner .seam-progress-circle--icon-spinner-path-bg{stroke-linecap:round;stroke:#e0f5db}seam-progress-circle .seam-progress-circle--in-complete .seam-progress-circle--icon-spinner .seam-progress-circle--icon-spinner-path{stroke:#f57a15}seam-progress-circle .seam-progress-circle--in-complete .seam-progress-circle--icon-spinner .seam-progress-circle--icon-spinner-path-bg{stroke:#fde9d9}seam-progress-circle .seam-progress-circle--in-complete .seam-progress-circle--icon-spinner[data-percent=\"0\"] .seam-progress-circle--icon-spinner-path{stroke:#6c757d}seam-progress-circle .seam-progress-circle--in-complete .seam-progress-circle--icon-spinner[data-percent=\"0\"] .seam-progress-circle--icon-spinner-path-bg{stroke:#d8dbdd}seam-progress-circle .seam-progress-circle--fill-bg .seam-progress-circle--icon-spinner-path-bg{fill:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
41
43
|
}
|
|
42
44
|
__decorate([
|
|
43
45
|
InputBoolean()
|
|
@@ -54,9 +56,9 @@ __decorate([
|
|
|
54
56
|
__decorate([
|
|
55
57
|
InputNumber()
|
|
56
58
|
], ProgressCircleComponent.prototype, "percentage", null);
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ProgressCircleComponent, decorators: [{
|
|
58
60
|
type: Component,
|
|
59
|
-
args: [{ selector: 'seam-progress-circle', encapsulation: ViewEncapsulation.None, standalone: false, template: "<div
|
|
61
|
+
args: [{ selector: 'seam-progress-circle', encapsulation: ViewEncapsulation.None, standalone: false, template: "<div\n class=\"seam-progress-circle\"\n *ngIf=\"_progressInfo as p\"\n [class.seam-progress-circle--in-complete]=\"p.percent < 100\"\n [class.seam-progress-circle--fill-bg]=\"fillBackground\"\n>\n <div class=\"seam-progress-circle-inner\">\n <ng-container *ngIf=\"p.percent > 0 || !hiddenOnEmpty\">\n <svg\n class=\"seam-progress-circle--icon-spinner\"\n viewBox=\"0 0 40 40\"\n [attr.data-percent]=\"p.percent\"\n >\n <circle\n class=\"seam-progress-circle--icon-spinner-path seam-progress-circle--icon-spinner-path-bg\"\n cx=\"20\"\n cy=\"20\"\n r=\"15\"\n fill=\"none\"\n stroke-width=\"4\"\n ></circle>\n <circle\n class=\"seam-progress-circle--icon-spinner-path\"\n cx=\"20\"\n cy=\"20\"\n r=\"15\"\n fill=\"none\"\n transform=\"rotate(-90, 20, 20)\"\n stroke-width=\"4\"\n stroke-miterlimit=\"10\"\n [attr.stroke-dashoffset]=\"p.dashoffset\"\n [style.stroke-dasharray]=\"p.circumference\"\n ></circle>\n <!-- Checkmark -->\n <path\n *ngIf=\"!pending && p.percent === 100\"\n class=\"seam-progress-circle--icon-spinner-path\"\n fill=\"none\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M 11,22 L 18,28 L 28.5,17\"\n ></path>\n <!-- Hourglass -->\n <!-- `p.percent === 101` is still here for backwards compatability, but planing to be removed. -->\n <path\n *ngIf=\"pending || p.percent === 101\"\n class=\"seam-progress-circle--icon-hourglass\"\n fill=\"none\"\n d=\"M27.3,25.8c-0.2-2.5-1.6-4.6-3.6-5.8c2-1.2,3.4-3.3,3.6-5.8c0.7-0.3,1.2-1,1.2-1.8c0-1.1-0.9-2-2-2h-13\n c-1.1,0-2,0.9-2,2c0,0.8,0.5,1.6,1.2,1.8c0.2,2.5,1.6,4.6,3.6,5.8c-2,1.2-3.4,3.3-3.6,5.8c-0.7,0.3-1.2,1-1.2,1.8c0,1.1,0.9,2,2,2\n h13c1.1,0,2-0.9,2-2C28.6,26.9,28,26.1,27.3,25.8z M24.3,25.7h-8.5c0.3-2.1,2.1-3.6,4.2-3.6S24,23.6,24.3,25.7z M20,18\n c-2.1,0-3.9-1.6-4.2-3.6h8.5C24,16.5,22.2,18,20,18z\"\n ></path>\n </svg>\n </ng-container>\n <div\n class=\"seam-progress-circle--icon-text\"\n *ngIf=\"showText && !pending && p.percent > 0 && p.percent < 100\"\n >\n <span>{{ p.percent }}</span>\n </div>\n </div>\n</div>\n", styles: ["seam-progress-circle{display:block}seam-progress-circle .seam-progress-circle--absolute-fill,seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-spinner,seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-center,seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-text,seam-progress-circle .seam-progress-circle{position:absolute;inset:0}seam-progress-circle .seam-progress-circle{padding:5px}seam-progress-circle .seam-progress-circle .seam-progress-circle-inner{position:relative;height:100%;width:100%}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-check{padding-top:4px;font-size:1.3rem;line-height:1.3rem;color:#55c83c}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-text{text-align:center;align-items:center;display:flex;flex-direction:row;justify-content:center;color:#55c83c;font-size:19px;font-weight:700;transform:translateZ(0)}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-center{transform-origin:center center;text-align:center;align-items:center;display:flex;flex-direction:row;justify-content:center}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-spinner{margin:auto}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-spinner .seam-progress-circle--icon-spinner-path{stroke-linecap:round;stroke:#55c83c;transition:.5s}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-spinner .seam-progress-circle--icon-spinner-path:not(path){stroke-dasharray:0}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-spinner .seam-progress-circle--icon-hourglass{fill:#55c83c;transition:.5s}seam-progress-circle .seam-progress-circle .seam-progress-circle--icon-spinner .seam-progress-circle--icon-spinner-path-bg{stroke-linecap:round;stroke:#e0f5db}seam-progress-circle .seam-progress-circle--in-complete .seam-progress-circle--icon-spinner .seam-progress-circle--icon-spinner-path{stroke:#f57a15}seam-progress-circle .seam-progress-circle--in-complete .seam-progress-circle--icon-spinner .seam-progress-circle--icon-spinner-path-bg{stroke:#fde9d9}seam-progress-circle .seam-progress-circle--in-complete .seam-progress-circle--icon-spinner[data-percent=\"0\"] .seam-progress-circle--icon-spinner-path{stroke:#6c757d}seam-progress-circle .seam-progress-circle--in-complete .seam-progress-circle--icon-spinner[data-percent=\"0\"] .seam-progress-circle--icon-spinner-path-bg{stroke:#d8dbdd}seam-progress-circle .seam-progress-circle--fill-bg .seam-progress-circle--icon-spinner-path-bg{fill:#fff}\n"] }]
|
|
60
62
|
}], propDecorators: { fillBackground: [{
|
|
61
63
|
type: Input
|
|
62
64
|
}], showText: [{
|
|
@@ -70,22 +72,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
70
72
|
}] } });
|
|
71
73
|
|
|
72
74
|
class TheSeamProgressModule {
|
|
73
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
74
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
75
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
75
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamProgressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
76
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.7", ngImport: i0, type: TheSeamProgressModule, declarations: [ProgressCircleComponent], imports: [CommonModule], exports: [ProgressCircleComponent] });
|
|
77
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamProgressModule, imports: [CommonModule] });
|
|
76
78
|
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamProgressModule, decorators: [{
|
|
78
80
|
type: NgModule,
|
|
79
81
|
args: [{
|
|
80
|
-
declarations: [
|
|
81
|
-
|
|
82
|
-
],
|
|
83
|
-
imports: [
|
|
84
|
-
CommonModule
|
|
85
|
-
],
|
|
86
|
-
exports: [
|
|
87
|
-
ProgressCircleComponent
|
|
88
|
-
]
|
|
82
|
+
declarations: [ProgressCircleComponent],
|
|
83
|
+
imports: [CommonModule],
|
|
84
|
+
exports: [ProgressCircleComponent],
|
|
89
85
|
}]
|
|
90
86
|
}] });
|
|
91
87
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-progress.mjs","sources":["../../../projects/ui-common/progress/progress-circle/progress-circle.component.ts","../../../projects/ui-common/progress/progress-circle/progress-circle.component.html","../../../projects/ui-common/progress/progress.module.ts","../../../projects/ui-common/progress/theseam-ui-common-progress.ts"],"sourcesContent":["import { BooleanInput, NumberInput } from '@angular/cdk/coercion'\nimport { Component, Input, ViewEncapsulation } from '@angular/core'\n\nimport { InputBoolean, InputNumber } from '@theseam/ui-common/core'\n\ninterface IProgressInfo {\n dashoffset: number\n circumference: number\n percent: number\n}\n\nexport function calcDashoffset(value: number, circumference: number) {\n const progress = value / 100\n const dashoffset = circumference * (1 - progress)\n return dashoffset\n}\n\n@Component({\n
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-progress.mjs","sources":["../../../projects/ui-common/progress/progress-circle/progress-circle.component.ts","../../../projects/ui-common/progress/progress-circle/progress-circle.component.html","../../../projects/ui-common/progress/progress.module.ts","../../../projects/ui-common/progress/theseam-ui-common-progress.ts"],"sourcesContent":["import { BooleanInput, NumberInput } from '@angular/cdk/coercion'\nimport { Component, Input, ViewEncapsulation } from '@angular/core'\n\nimport { InputBoolean, InputNumber } from '@theseam/ui-common/core'\n\ninterface IProgressInfo {\n dashoffset: number\n circumference: number\n percent: number\n}\n\nexport function calcDashoffset(value: number, circumference: number) {\n const progress = value / 100\n const dashoffset = circumference * (1 - progress)\n return dashoffset\n}\n\n@Component({\n selector: 'seam-progress-circle',\n templateUrl: './progress-circle.component.html',\n styleUrls: ['./progress-circle.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class ProgressCircleComponent {\n static ngAcceptInputType_fillBackground: BooleanInput\n static ngAcceptInputType_showText: BooleanInput\n static ngAcceptInputType_hiddenOnEmpty: BooleanInput\n static ngAcceptInputType_percentage: NumberInput\n static ngAcceptInputType_pending: BooleanInput\n\n private _percentage = 0\n\n @Input() @InputBoolean() fillBackground = false\n @Input() @InputBoolean() showText = false\n @Input() @InputBoolean() hiddenOnEmpty = true\n @Input() @InputBoolean() pending = false\n\n @Input()\n @InputNumber()\n set percentage(value: number) {\n this._percentage = value\n this._progressInfo = this._getProgress()\n }\n get percentage(): number {\n return this._percentage\n }\n\n public readonly radius = 15\n public readonly circumference = 2 * Math.PI * this.radius\n\n _progressInfo?: IProgressInfo | null\n\n private _getProgress(): IProgressInfo {\n return {\n dashoffset: calcDashoffset(this.percentage || 0, this.circumference),\n circumference: this.circumference,\n percent: Math.floor(this.percentage || 0),\n }\n }\n}\n","<div\n class=\"seam-progress-circle\"\n *ngIf=\"_progressInfo as p\"\n [class.seam-progress-circle--in-complete]=\"p.percent < 100\"\n [class.seam-progress-circle--fill-bg]=\"fillBackground\"\n>\n <div class=\"seam-progress-circle-inner\">\n <ng-container *ngIf=\"p.percent > 0 || !hiddenOnEmpty\">\n <svg\n class=\"seam-progress-circle--icon-spinner\"\n viewBox=\"0 0 40 40\"\n [attr.data-percent]=\"p.percent\"\n >\n <circle\n class=\"seam-progress-circle--icon-spinner-path seam-progress-circle--icon-spinner-path-bg\"\n cx=\"20\"\n cy=\"20\"\n r=\"15\"\n fill=\"none\"\n stroke-width=\"4\"\n ></circle>\n <circle\n class=\"seam-progress-circle--icon-spinner-path\"\n cx=\"20\"\n cy=\"20\"\n r=\"15\"\n fill=\"none\"\n transform=\"rotate(-90, 20, 20)\"\n stroke-width=\"4\"\n stroke-miterlimit=\"10\"\n [attr.stroke-dashoffset]=\"p.dashoffset\"\n [style.stroke-dasharray]=\"p.circumference\"\n ></circle>\n <!-- Checkmark -->\n <path\n *ngIf=\"!pending && p.percent === 100\"\n class=\"seam-progress-circle--icon-spinner-path\"\n fill=\"none\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M 11,22 L 18,28 L 28.5,17\"\n ></path>\n <!-- Hourglass -->\n <!-- `p.percent === 101` is still here for backwards compatability, but planing to be removed. -->\n <path\n *ngIf=\"pending || p.percent === 101\"\n class=\"seam-progress-circle--icon-hourglass\"\n fill=\"none\"\n d=\"M27.3,25.8c-0.2-2.5-1.6-4.6-3.6-5.8c2-1.2,3.4-3.3,3.6-5.8c0.7-0.3,1.2-1,1.2-1.8c0-1.1-0.9-2-2-2h-13\n c-1.1,0-2,0.9-2,2c0,0.8,0.5,1.6,1.2,1.8c0.2,2.5,1.6,4.6,3.6,5.8c-2,1.2-3.4,3.3-3.6,5.8c-0.7,0.3-1.2,1-1.2,1.8c0,1.1,0.9,2,2,2\n h13c1.1,0,2-0.9,2-2C28.6,26.9,28,26.1,27.3,25.8z M24.3,25.7h-8.5c0.3-2.1,2.1-3.6,4.2-3.6S24,23.6,24.3,25.7z M20,18\n c-2.1,0-3.9-1.6-4.2-3.6h8.5C24,16.5,22.2,18,20,18z\"\n ></path>\n </svg>\n </ng-container>\n <div\n class=\"seam-progress-circle--icon-text\"\n *ngIf=\"showText && !pending && p.percent > 0 && p.percent < 100\"\n >\n <span>{{ p.percent }}</span>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { ProgressCircleComponent } from './progress-circle/progress-circle.component'\n\n@NgModule({\n declarations: [ProgressCircleComponent],\n imports: [CommonModule],\n exports: [ProgressCircleComponent],\n})\nexport class TheSeamProgressModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -24,10 +24,10 @@ const THESEAM_QUILL_TOOLBAR_OPTIONS_DEFAULT = [
|
|
|
24
24
|
const THESEAM_QUILL_MENTION_OPTIONS_DEFAULT = {
|
|
25
25
|
spaceAfterInsert: false,
|
|
26
26
|
positioningStrategy: 'fixed',
|
|
27
|
-
dataAttributes: ['type']
|
|
27
|
+
dataAttributes: ['type'],
|
|
28
28
|
};
|
|
29
29
|
const THESEAM_QUILL_MODULES_DEFAULT = {
|
|
30
|
-
toolbar: THESEAM_QUILL_TOOLBAR_OPTIONS_DEFAULT
|
|
30
|
+
toolbar: THESEAM_QUILL_TOOLBAR_OPTIONS_DEFAULT,
|
|
31
31
|
};
|
|
32
32
|
const THESEAM_QUILL_FORMATS_DEFAULT = [
|
|
33
33
|
'align',
|
|
@@ -40,7 +40,7 @@ const THESEAM_QUILL_FORMATS_DEFAULT = [
|
|
|
40
40
|
'size',
|
|
41
41
|
'strike',
|
|
42
42
|
'underline',
|
|
43
|
-
'mention'
|
|
43
|
+
'mention',
|
|
44
44
|
];
|
|
45
45
|
const THESEAM_QUILL_EDITOR_CONFIG_DEFAULT = {
|
|
46
46
|
format: 'html',
|
|
@@ -53,17 +53,19 @@ const THESEAM_QUILL_EDITOR_CONFIG_DEFAULT = {
|
|
|
53
53
|
customModules: [],
|
|
54
54
|
trimOnValidation: false,
|
|
55
55
|
compareValues: false,
|
|
56
|
-
filterNull: false
|
|
56
|
+
filterNull: false,
|
|
57
57
|
};
|
|
58
58
|
const THESEAM_QUILL_EDITOR_CONFIG = new InjectionToken('TheSeamQuillEditorConfig');
|
|
59
59
|
const defaultHtmlCharacterCounterFn = (value, format) => {
|
|
60
60
|
if (format === 'html') {
|
|
61
|
-
return value.replace(HTML_ENTITY_REGEX, ' ').replace(/\s\s+/g, ' ').trim()
|
|
61
|
+
return value.replace(HTML_ENTITY_REGEX, ' ').replace(/\s\s+/g, ' ').trim()
|
|
62
|
+
.length;
|
|
62
63
|
}
|
|
63
64
|
else if (format === 'text') {
|
|
64
65
|
return value.replace(/\s\s+/g, ' ').trim().length;
|
|
65
66
|
}
|
|
66
67
|
else {
|
|
68
|
+
// eslint-disable-next-line no-console
|
|
67
69
|
console.warn(`Format ${format} not supported!`);
|
|
68
70
|
return 0;
|
|
69
71
|
}
|
|
@@ -75,7 +77,7 @@ function isMentionMenuOption(value) {
|
|
|
75
77
|
return Object.prototype.hasOwnProperty.call(value, 'id');
|
|
76
78
|
}
|
|
77
79
|
const defaultMentionSearchFn = (source, textAfter, mentionChar) => {
|
|
78
|
-
return source.filter(u => {
|
|
80
|
+
return source.filter((u) => {
|
|
79
81
|
if (!isMentionMenuOption(u) || u.searchIgnore === true) {
|
|
80
82
|
return true;
|
|
81
83
|
}
|
|
@@ -91,14 +93,16 @@ const defaultMentionRenderListFn = (source, searchFn, emptyListItem, textAfter,
|
|
|
91
93
|
let reduceIdx = 0;
|
|
92
94
|
list = list.reduce((acc, mention) => {
|
|
93
95
|
const previousMenuItem = acc[reduceIdx - 1];
|
|
94
|
-
const previousMenuItemGroupName = isMentionMenuOption(previousMenuItem)
|
|
96
|
+
const previousMenuItemGroupName = isMentionMenuOption(previousMenuItem)
|
|
97
|
+
? previousMenuItem.groupName
|
|
98
|
+
: undefined;
|
|
95
99
|
if (isMentionMenuOption(mention) &&
|
|
96
100
|
notNullOrUndefinedOrEmpty(mention.groupName) &&
|
|
97
101
|
mention.groupName !== previousMenuItemGroupName) {
|
|
98
102
|
acc.push({
|
|
99
103
|
value: mention.groupName,
|
|
100
104
|
disabled: true,
|
|
101
|
-
type: 'groupName'
|
|
105
|
+
type: 'groupName',
|
|
102
106
|
});
|
|
103
107
|
reduceIdx++;
|
|
104
108
|
}
|
|
@@ -323,7 +327,7 @@ class RichTextComponent {
|
|
|
323
327
|
}
|
|
324
328
|
}
|
|
325
329
|
_mentionItems = new BehaviorSubject(undefined);
|
|
326
|
-
mentionItems$ = this._mentionItems.asObservable().pipe(filter(mentions => notNullOrUndefined(mentions) && mentions.length > 0), shareReplay({ bufferSize: 1, refCount: true }));
|
|
330
|
+
mentionItems$ = this._mentionItems.asObservable().pipe(filter((mentions) => notNullOrUndefined(mentions) && mentions.length > 0), shareReplay({ bufferSize: 1, refCount: true }));
|
|
327
331
|
/**
|
|
328
332
|
* Set to override default search function when user is typing a mention.
|
|
329
333
|
*/
|
|
@@ -383,7 +387,7 @@ class RichTextComponent {
|
|
|
383
387
|
id: 'undefined',
|
|
384
388
|
value: this.mentionListEmptyText,
|
|
385
389
|
disabled: true,
|
|
386
|
-
emptyList: true
|
|
390
|
+
emptyList: true,
|
|
387
391
|
};
|
|
388
392
|
}
|
|
389
393
|
quillEditorCreated = new EventEmitter();
|
|
@@ -408,7 +412,9 @@ class RichTextComponent {
|
|
|
408
412
|
_handleKeydown(event) {
|
|
409
413
|
if (event.code === 'Escape') {
|
|
410
414
|
const qlEditor = this._quillEditor?.editorElem?.querySelector('.ql-editor');
|
|
411
|
-
if (notNullOrUndefined(qlEditor) &&
|
|
415
|
+
if (notNullOrUndefined(qlEditor) &&
|
|
416
|
+
qlEditor === document.activeElement &&
|
|
417
|
+
qlEditor instanceof HTMLElement) {
|
|
412
418
|
event.preventDefault();
|
|
413
419
|
event.stopImmediatePropagation();
|
|
414
420
|
qlEditor.blur();
|
|
@@ -434,27 +440,36 @@ class RichTextComponent {
|
|
|
434
440
|
this._configSet.asObservable(),
|
|
435
441
|
this._stylesSet.asObservable(),
|
|
436
442
|
this._templateSet.asObservable(),
|
|
437
|
-
]).pipe(map(sets => sets.findIndex(s => !s) === -1));
|
|
438
|
-
this.characterCount$ = this.initialized$.pipe(filter(i => i), switchMap(() => {
|
|
443
|
+
]).pipe(map((sets) => sets.findIndex((s) => !s) === -1));
|
|
444
|
+
this.characterCount$ = this.initialized$.pipe(filter((i) => i), switchMap(() => {
|
|
439
445
|
if (notNullOrUndefined(this.formControl)) {
|
|
440
|
-
return this.formControl.valueChanges.pipe(startWith(this.formControl.value), map(v => this.characterCounterFn(v || '', this._config.value?.format)));
|
|
446
|
+
return this.formControl.valueChanges.pipe(startWith(this.formControl.value), map((v) => this.characterCounterFn(v || '', this._config.value?.format)));
|
|
441
447
|
}
|
|
442
448
|
return of(0);
|
|
443
449
|
}));
|
|
444
|
-
this.selectedMentions
|
|
450
|
+
this.selectedMentions$
|
|
451
|
+
.pipe(tap((mentions) => this.mentionsUpdated.emit(mentions)))
|
|
452
|
+
.subscribe();
|
|
445
453
|
}
|
|
446
454
|
ngOnInit() {
|
|
447
455
|
// TODO: test this more
|
|
448
456
|
// ignore quill initial valueChange event, to keep functionality in line with other inputs
|
|
449
457
|
let initialEmitComplete = false;
|
|
450
|
-
this._configSet
|
|
458
|
+
this._configSet
|
|
459
|
+
.pipe(filter((s) => s), switchMap(() => this.formControl.valueChanges.pipe(
|
|
451
460
|
// skip(1),
|
|
452
|
-
take(1), tap(() => initialEmitComplete = true))))
|
|
453
|
-
|
|
454
|
-
this.
|
|
461
|
+
take(1), tap(() => (initialEmitComplete = true)))))
|
|
462
|
+
.subscribe();
|
|
463
|
+
this.formControl.valueChanges
|
|
464
|
+
.pipe(filter(() => !this._isWritingValue && initialEmitComplete), tap((value) => (this.value = value)))
|
|
465
|
+
.subscribe();
|
|
466
|
+
this._pollCalculatedRowHeight
|
|
467
|
+
.asObservable()
|
|
468
|
+
.pipe(tap(() => {
|
|
455
469
|
this._stylesSet.next(false);
|
|
456
470
|
const calculatedRowsHeight = `${this.rows * 1.5}rem`;
|
|
457
|
-
if (notNullOrUndefined(this.rows) &&
|
|
471
|
+
if (notNullOrUndefined(this.rows) &&
|
|
472
|
+
notNullOrUndefined(this._quillEditor)) {
|
|
458
473
|
const editorEl = this._elementRef.nativeElement.querySelector('.ql-editor');
|
|
459
474
|
if (notNullOrUndefined(editorEl)) {
|
|
460
475
|
this._renderer.setStyle(editorEl, 'height', calculatedRowsHeight);
|
|
@@ -462,7 +477,8 @@ class RichTextComponent {
|
|
|
462
477
|
}
|
|
463
478
|
}
|
|
464
479
|
this._stylesSet.next(true);
|
|
465
|
-
}))
|
|
480
|
+
}))
|
|
481
|
+
.subscribe();
|
|
466
482
|
this._buildQuillConfig();
|
|
467
483
|
}
|
|
468
484
|
ngAfterViewInit() {
|
|
@@ -482,20 +498,20 @@ class RichTextComponent {
|
|
|
482
498
|
_buildQuillConfig() {
|
|
483
499
|
this._configSet.next(false);
|
|
484
500
|
const config = {
|
|
485
|
-
...THESEAM_QUILL_EDITOR_CONFIG_DEFAULT
|
|
501
|
+
...THESEAM_QUILL_EDITOR_CONFIG_DEFAULT,
|
|
486
502
|
};
|
|
487
503
|
if (this.disableRichText) {
|
|
488
504
|
config.format = 'text';
|
|
489
505
|
config.formats = [];
|
|
490
506
|
config.modules = {
|
|
491
|
-
toolbar: false
|
|
507
|
+
toolbar: false,
|
|
492
508
|
};
|
|
493
509
|
}
|
|
494
510
|
else {
|
|
495
511
|
config.format = this._getConfigOrDefault('format');
|
|
496
512
|
config.formats = this._getConfigOrDefault('formats');
|
|
497
513
|
config.modules = {
|
|
498
|
-
...this._getConfigOrDefault('modules')
|
|
514
|
+
...this._getConfigOrDefault('modules'),
|
|
499
515
|
};
|
|
500
516
|
}
|
|
501
517
|
if (this.useMentions) {
|
|
@@ -513,7 +529,7 @@ class RichTextComponent {
|
|
|
513
529
|
}
|
|
514
530
|
},
|
|
515
531
|
...config.modules?.mention,
|
|
516
|
-
}
|
|
532
|
+
},
|
|
517
533
|
};
|
|
518
534
|
config.modules = mentionModules;
|
|
519
535
|
}
|
|
@@ -540,7 +556,8 @@ class RichTextComponent {
|
|
|
540
556
|
}, 0);
|
|
541
557
|
}
|
|
542
558
|
_getConfigOrDefault(prop) {
|
|
543
|
-
if (this._customConfig &&
|
|
559
|
+
if (this._customConfig &&
|
|
560
|
+
Object.prototype.hasOwnProperty.call(this._customConfig, prop)) {
|
|
544
561
|
return this._customConfig[prop];
|
|
545
562
|
}
|
|
546
563
|
return THESEAM_QUILL_EDITOR_CONFIG_DEFAULT[prop];
|
|
@@ -618,15 +635,18 @@ class RichTextComponent {
|
|
|
618
635
|
*/
|
|
619
636
|
_updateMentionsFromDelta(content) {
|
|
620
637
|
if (notNullOrUndefined(content.ops)) {
|
|
621
|
-
const contentMentionIds = content.ops
|
|
638
|
+
const contentMentionIds = content.ops
|
|
639
|
+
.map((o) => o.insert?.mention?.id)
|
|
640
|
+
.filter(notNullOrUndefined);
|
|
622
641
|
const selectedMentions = [...this._selectedMentions.value];
|
|
623
|
-
const mentionOptions = [...this._mentionItems.value || []];
|
|
642
|
+
const mentionOptions = [...(this._mentionItems.value || [])];
|
|
624
643
|
const newMentions = contentMentionIds.reduce((acc, mentionId) => {
|
|
625
644
|
const insertMention = mentionOptions.find((m) => isMentionMenuOption(m) && m.id === mentionId);
|
|
626
645
|
if (notNullOrUndefined(insertMention)) {
|
|
627
646
|
acc.push(insertMention);
|
|
628
647
|
}
|
|
629
648
|
else {
|
|
649
|
+
// eslint-disable-next-line no-console
|
|
630
650
|
console.warn('Mention addition failed! Selected mention option not found:', mentionId);
|
|
631
651
|
}
|
|
632
652
|
return acc;
|
|
@@ -638,10 +658,11 @@ class RichTextComponent {
|
|
|
638
658
|
}
|
|
639
659
|
else {
|
|
640
660
|
// otherwise, test ids for old and new items to see if we need to emit a change
|
|
641
|
-
const selectedMentionIds = this._selectedMentions.value.map(m => m.id);
|
|
642
|
-
const newMentionIds = newMentions.map(m => m.id);
|
|
643
|
-
if (selectedMentionIds.findIndex(m => !newMentionIds.includes(m)) !==
|
|
644
|
-
|
|
661
|
+
const selectedMentionIds = this._selectedMentions.value.map((m) => m.id);
|
|
662
|
+
const newMentionIds = newMentions.map((m) => m.id);
|
|
663
|
+
if (selectedMentionIds.findIndex((m) => !newMentionIds.includes(m)) !==
|
|
664
|
+
-1 ||
|
|
665
|
+
newMentionIds.findIndex((m) => !selectedMentionIds.includes(m)) !== -1) {
|
|
645
666
|
emitUpdate = true;
|
|
646
667
|
}
|
|
647
668
|
}
|
|
@@ -650,16 +671,12 @@ class RichTextComponent {
|
|
|
650
671
|
}
|
|
651
672
|
}
|
|
652
673
|
}
|
|
653
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
654
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
655
|
-
RICH_TEXT_VALUE_ACCESSOR,
|
|
656
|
-
], viewQueries: [{ propertyName: "quillEditor", first: true, predicate: ["quillEditor"], descendants: true }, { propertyName: "defaultCharacterCounterTpl", first: true, predicate: ["characterCounter"], descendants: true }], ngImport: i0, template: "<div class=\"editor\" *ngIf=\"configSet$ | async\" [class.initializing]=\"!(initialized$ | async)\">\n <ng-container *ngIf=\"config$ | async as config\">\n <quill-editor\n #quillEditor\n seamInput\n [class.disabled]=\"readOnly\"\n [attr.disabled]=\"readOnly\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [readOnly]=\"readOnly\"\n [required]=\"required\"\n [minLength]=\"$any(minLength)\"\n [maxLength]=\"$any(maxLength)\"\n [format]=\"config.format\"\n [theme]=\"$any(config.theme)\"\n [modules]=\"$any(config.modules)\"\n [debug]=\"$any(config.debug)\"\n [formats]=\"$any(config.formats)\"\n [customToolbarPosition]=\"config.customToolbarPosition\"\n [sanitize]=\"config.sanitize\"\n [styles]=\"config.styles\"\n [bounds]=\"$any(config.bounds)\"\n [customOptions]=\"config.customOptions\"\n [customModules]=\"config.customModules\"\n [trackChanges]=\"$any(config.trackChanges)\"\n [classes]=\"$any(config.classes)\"\n [trimOnValidation]=\"config.trimOnValidation\"\n [linkPlaceholder]=\"$any(config.linkPlaceholder)\"\n [compareValues]=\"config.compareValues\"\n [filterNull]=\"config.filterNull\"\n [debounceTime]=\"$any(config.debounceTime)\"\n [class.can-resize]=\"resizable\"\n (onEditorCreated)=\"_onEditorCreated($event)\"\n (onEditorChanged)=\"_onEditorChanged($event)\"\n (onContentChanged)=\"_onContentChanged($event)\"\n (onSelectionChanged)=\"_onSelectionChanged($event)\"\n (onFocus)=\"_onFocus($event)\"\n (onBlur)=\"_onBlur($event)\"></quill-editor>\n <ng-container *ngIf=\"displayCharacterCounter\">\n <ng-container\n [ngTemplateOutlet]=\"characterCounterTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: characterCount$ | async, minLength: minLength, maxLength: maxLength, characterCount: characterCount$ | async }\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #characterCounter let-implicit let-minLength=\"minLength\" let-maxLength=\"maxLength\" let-characterCount=\"characterCount\">\n <div class=\"small text-black-50 text-right\">\n <ng-container *ngIf=\"characterCount || characterCount === 0\">\n Character Count:\n <span [class.text-danger]=\"characterCount && ((maxLength && characterCount > maxLength) || (minLength && characterCount < minLength))\">\n {{ characterCount | number }}\n </span>\n <ng-container *ngIf=\"maxLength\">\n / {{ maxLength }}\n </ng-container>\n <span *ngIf=\"minLength\" class=\"font-italic\">\n (minimum {{ minLength }} expected)\n </span>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host .editor{position:relative}:host .editor.initializing:before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background:#f8f9fa;z-index:1}:host quill-editor.can-resize ::ng-deep .ql-editor{overflow:auto;resize:vertical}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: QuillModule }, { kind: "component", type: i2.QuillEditorComponent, selector: "quill-editor" }, { kind: "ngmodule", type: TheSeamFormFieldModule }, { kind: "directive", type: i3.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DecimalPipe, name: "number" }] });
|
|
674
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: RichTextComponent, deps: [{ token: i0.Renderer2 }, { token: THESEAM_QUILL_EDITOR_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
675
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: RichTextComponent, isStandalone: true, selector: "seam-rich-text", inputs: { val: ["value", "val"], required: "required", placeholder: "placeholder", rows: "rows", resizable: "resizable", disableRichText: "disableRichText", displayCharacterCounter: "displayCharacterCounter", minLength: "minLength", maxLength: "maxLength", characterCounterTpl: "characterCounterTpl", characterCounterFn: "characterCounterFn", useMentions: "useMentions", mentionItems: "mentionItems", mentionSearchFn: "mentionSearchFn", mentionRenderListFn: "mentionRenderListFn", mentionListLoadingText: "mentionListLoadingText", mentionListEmptyText: "mentionListEmptyText" }, outputs: { quillEditorCreated: "quillEditorCreated", quillEditorChanged: "quillEditorChanged", quillContentChanged: "quillContentChanged", quillSelectionChanged: "quillSelectionChanged", quillFocus: "quillFocus", quillBlur: "quillBlur", mentionsUpdated: "mentionsUpdated" }, host: { listeners: { "keydown": "_handleKeydown($event)" } }, providers: [RICH_TEXT_VALUE_ACCESSOR], viewQueries: [{ propertyName: "quillEditor", first: true, predicate: ["quillEditor"], descendants: true }, { propertyName: "defaultCharacterCounterTpl", first: true, predicate: ["characterCounter"], descendants: true }], ngImport: i0, template: "<div\n class=\"editor\"\n *ngIf=\"configSet$ | async\"\n [class.initializing]=\"!(initialized$ | async)\"\n>\n <ng-container *ngIf=\"config$ | async as config\">\n <quill-editor\n #quillEditor\n seamInput\n [class.disabled]=\"readOnly\"\n [attr.disabled]=\"readOnly\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [readOnly]=\"readOnly\"\n [required]=\"required\"\n [minLength]=\"$any(minLength)\"\n [maxLength]=\"$any(maxLength)\"\n [format]=\"config.format\"\n [theme]=\"$any(config.theme)\"\n [modules]=\"$any(config.modules)\"\n [debug]=\"$any(config.debug)\"\n [formats]=\"$any(config.formats)\"\n [customToolbarPosition]=\"config.customToolbarPosition\"\n [sanitize]=\"config.sanitize\"\n [styles]=\"config.styles\"\n [bounds]=\"$any(config.bounds)\"\n [customOptions]=\"config.customOptions\"\n [customModules]=\"config.customModules\"\n [trackChanges]=\"$any(config.trackChanges)\"\n [classes]=\"$any(config.classes)\"\n [trimOnValidation]=\"config.trimOnValidation\"\n [linkPlaceholder]=\"$any(config.linkPlaceholder)\"\n [compareValues]=\"config.compareValues\"\n [filterNull]=\"config.filterNull\"\n [debounceTime]=\"$any(config.debounceTime)\"\n [class.can-resize]=\"resizable\"\n (onEditorCreated)=\"_onEditorCreated($event)\"\n (onEditorChanged)=\"_onEditorChanged($event)\"\n (onContentChanged)=\"_onContentChanged($event)\"\n (onSelectionChanged)=\"_onSelectionChanged($event)\"\n (onFocus)=\"_onFocus($event)\"\n (onBlur)=\"_onBlur($event)\"\n ></quill-editor>\n <ng-container *ngIf=\"displayCharacterCounter\">\n <ng-container\n [ngTemplateOutlet]=\"characterCounterTpl\"\n [ngTemplateOutletContext]=\"{\n $implicit: characterCount$ | async,\n minLength: minLength,\n maxLength: maxLength,\n characterCount: characterCount$ | async,\n }\"\n ></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template\n #characterCounter\n let-implicit\n let-minLength=\"minLength\"\n let-maxLength=\"maxLength\"\n let-characterCount=\"characterCount\"\n>\n <div class=\"small text-black-50 text-right\">\n <ng-container *ngIf=\"characterCount || characterCount === 0\">\n Character Count:\n <span\n [class.text-danger]=\"\n characterCount &&\n ((maxLength && characterCount > maxLength) ||\n (minLength && characterCount < minLength))\n \"\n >\n {{ characterCount | number }}\n </span>\n <ng-container *ngIf=\"maxLength\"> / {{ maxLength }} </ng-container>\n <span *ngIf=\"minLength\" class=\"font-italic\">\n (minimum {{ minLength }} expected)\n </span>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host .editor{position:relative}:host .editor.initializing:before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background:#f8f9fa;z-index:1}:host quill-editor.can-resize ::ng-deep .ql-editor{overflow:auto;resize:vertical}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: QuillModule }, { kind: "component", type: i2.QuillEditorComponent, selector: "quill-editor" }, { kind: "ngmodule", type: TheSeamFormFieldModule }, { kind: "directive", type: i3.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DecimalPipe, name: "number" }] });
|
|
657
676
|
}
|
|
658
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
677
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: RichTextComponent, decorators: [{
|
|
659
678
|
type: Component,
|
|
660
|
-
args: [{ selector: 'seam-rich-text', providers: [
|
|
661
|
-
RICH_TEXT_VALUE_ACCESSOR,
|
|
662
|
-
], imports: [
|
|
679
|
+
args: [{ selector: 'seam-rich-text', providers: [RICH_TEXT_VALUE_ACCESSOR], imports: [
|
|
663
680
|
NgIf,
|
|
664
681
|
NgTemplateOutlet,
|
|
665
682
|
AsyncPipe,
|
|
@@ -667,7 +684,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
667
684
|
ReactiveFormsModule,
|
|
668
685
|
QuillModule,
|
|
669
686
|
TheSeamFormFieldModule,
|
|
670
|
-
], template: "<div
|
|
687
|
+
], template: "<div\n class=\"editor\"\n *ngIf=\"configSet$ | async\"\n [class.initializing]=\"!(initialized$ | async)\"\n>\n <ng-container *ngIf=\"config$ | async as config\">\n <quill-editor\n #quillEditor\n seamInput\n [class.disabled]=\"readOnly\"\n [attr.disabled]=\"readOnly\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [readOnly]=\"readOnly\"\n [required]=\"required\"\n [minLength]=\"$any(minLength)\"\n [maxLength]=\"$any(maxLength)\"\n [format]=\"config.format\"\n [theme]=\"$any(config.theme)\"\n [modules]=\"$any(config.modules)\"\n [debug]=\"$any(config.debug)\"\n [formats]=\"$any(config.formats)\"\n [customToolbarPosition]=\"config.customToolbarPosition\"\n [sanitize]=\"config.sanitize\"\n [styles]=\"config.styles\"\n [bounds]=\"$any(config.bounds)\"\n [customOptions]=\"config.customOptions\"\n [customModules]=\"config.customModules\"\n [trackChanges]=\"$any(config.trackChanges)\"\n [classes]=\"$any(config.classes)\"\n [trimOnValidation]=\"config.trimOnValidation\"\n [linkPlaceholder]=\"$any(config.linkPlaceholder)\"\n [compareValues]=\"config.compareValues\"\n [filterNull]=\"config.filterNull\"\n [debounceTime]=\"$any(config.debounceTime)\"\n [class.can-resize]=\"resizable\"\n (onEditorCreated)=\"_onEditorCreated($event)\"\n (onEditorChanged)=\"_onEditorChanged($event)\"\n (onContentChanged)=\"_onContentChanged($event)\"\n (onSelectionChanged)=\"_onSelectionChanged($event)\"\n (onFocus)=\"_onFocus($event)\"\n (onBlur)=\"_onBlur($event)\"\n ></quill-editor>\n <ng-container *ngIf=\"displayCharacterCounter\">\n <ng-container\n [ngTemplateOutlet]=\"characterCounterTpl\"\n [ngTemplateOutletContext]=\"{\n $implicit: characterCount$ | async,\n minLength: minLength,\n maxLength: maxLength,\n characterCount: characterCount$ | async,\n }\"\n ></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template\n #characterCounter\n let-implicit\n let-minLength=\"minLength\"\n let-maxLength=\"maxLength\"\n let-characterCount=\"characterCount\"\n>\n <div class=\"small text-black-50 text-right\">\n <ng-container *ngIf=\"characterCount || characterCount === 0\">\n Character Count:\n <span\n [class.text-danger]=\"\n characterCount &&\n ((maxLength && characterCount > maxLength) ||\n (minLength && characterCount < minLength))\n \"\n >\n {{ characterCount | number }}\n </span>\n <ng-container *ngIf=\"maxLength\"> / {{ maxLength }} </ng-container>\n <span *ngIf=\"minLength\" class=\"font-italic\">\n (minimum {{ minLength }} expected)\n </span>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host .editor{position:relative}:host .editor.initializing:before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background:#f8f9fa;z-index:1}:host quill-editor.can-resize ::ng-deep .ql-editor{overflow:auto;resize:vertical}\n"] }]
|
|
671
688
|
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
672
689
|
type: Optional
|
|
673
690
|
}, {
|
|
@@ -754,23 +771,19 @@ const THESEAM_QUILL_FORMATS = [
|
|
|
754
771
|
'strike',
|
|
755
772
|
'underline',
|
|
756
773
|
'video',
|
|
757
|
-
'mention'
|
|
774
|
+
'mention',
|
|
758
775
|
];
|
|
759
776
|
|
|
760
777
|
class TheSeamRichTextModule {
|
|
761
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
762
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
763
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
778
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamRichTextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
779
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.7", ngImport: i0, type: TheSeamRichTextModule, imports: [RichTextComponent], exports: [RichTextComponent] });
|
|
780
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamRichTextModule, imports: [RichTextComponent] });
|
|
764
781
|
}
|
|
765
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
782
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamRichTextModule, decorators: [{
|
|
766
783
|
type: NgModule,
|
|
767
784
|
args: [{
|
|
768
|
-
imports: [
|
|
769
|
-
|
|
770
|
-
],
|
|
771
|
-
exports: [
|
|
772
|
-
RichTextComponent,
|
|
773
|
-
],
|
|
785
|
+
imports: [RichTextComponent],
|
|
786
|
+
exports: [RichTextComponent],
|
|
774
787
|
}]
|
|
775
788
|
}] });
|
|
776
789
|
|