@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.
Files changed (153) hide show
  1. package/breadcrumbs/index.d.ts +1 -2
  2. package/buttons/index.d.ts +20 -13
  3. package/datatable/index.d.ts +77 -39
  4. package/dynamic/index.d.ts +5 -5
  5. package/fesm2022/theseam-ui-common-asset-reader.mjs +28 -29
  6. package/fesm2022/theseam-ui-common-asset-reader.mjs.map +1 -1
  7. package/fesm2022/theseam-ui-common-breadcrumbs.mjs +25 -31
  8. package/fesm2022/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  9. package/fesm2022/theseam-ui-common-buttons.mjs +108 -66
  10. package/fesm2022/theseam-ui-common-buttons.mjs.map +1 -1
  11. package/fesm2022/theseam-ui-common-card.mjs +21 -21
  12. package/fesm2022/theseam-ui-common-card.mjs.map +1 -1
  13. package/fesm2022/theseam-ui-common-carousel.mjs +28 -30
  14. package/fesm2022/theseam-ui-common-carousel.mjs.map +1 -1
  15. package/fesm2022/theseam-ui-common-checkbox.mjs +27 -27
  16. package/fesm2022/theseam-ui-common-checkbox.mjs.map +1 -1
  17. package/fesm2022/theseam-ui-common-confirm-dialog.mjs +23 -27
  18. package/fesm2022/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  19. package/fesm2022/theseam-ui-common-core.mjs +31 -11
  20. package/fesm2022/theseam-ui-common-core.mjs.map +1 -1
  21. package/fesm2022/theseam-ui-common-data-exporter.mjs +18 -19
  22. package/fesm2022/theseam-ui-common-data-exporter.mjs.map +1 -1
  23. package/fesm2022/theseam-ui-common-data-filters.mjs +80 -64
  24. package/fesm2022/theseam-ui-common-data-filters.mjs.map +1 -1
  25. package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs +51 -49
  26. package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs.map +1 -1
  27. package/fesm2022/theseam-ui-common-datatable-dynamic.mjs +145 -112
  28. package/fesm2022/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  29. package/fesm2022/theseam-ui-common-datatable.mjs +727 -420
  30. package/fesm2022/theseam-ui-common-datatable.mjs.map +1 -1
  31. package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs +12 -14
  32. package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  33. package/fesm2022/theseam-ui-common-dynamic.mjs +60 -48
  34. package/fesm2022/theseam-ui-common-dynamic.mjs.map +1 -1
  35. package/fesm2022/theseam-ui-common-footer-bar.mjs +9 -15
  36. package/fesm2022/theseam-ui-common-footer-bar.mjs.map +1 -1
  37. package/fesm2022/theseam-ui-common-form-field-error.mjs +60 -43
  38. package/fesm2022/theseam-ui-common-form-field-error.mjs.map +1 -1
  39. package/fesm2022/theseam-ui-common-form-field.mjs +129 -76
  40. package/fesm2022/theseam-ui-common-form-field.mjs.map +1 -1
  41. package/fesm2022/theseam-ui-common-framework.mjs +669 -543
  42. package/fesm2022/theseam-ui-common-framework.mjs.map +1 -1
  43. package/fesm2022/theseam-ui-common-google-maps.mjs +206 -149
  44. package/fesm2022/theseam-ui-common-google-maps.mjs.map +1 -1
  45. package/fesm2022/theseam-ui-common-graphql.mjs +311 -254
  46. package/fesm2022/theseam-ui-common-graphql.mjs.map +1 -1
  47. package/fesm2022/theseam-ui-common-icon.mjs +125 -89
  48. package/fesm2022/theseam-ui-common-icon.mjs.map +1 -1
  49. package/fesm2022/theseam-ui-common-layout.mjs +18 -26
  50. package/fesm2022/theseam-ui-common-layout.mjs.map +1 -1
  51. package/fesm2022/theseam-ui-common-loading.mjs +19 -28
  52. package/fesm2022/theseam-ui-common-loading.mjs.map +1 -1
  53. package/fesm2022/theseam-ui-common-menu.mjs +124 -95
  54. package/fesm2022/theseam-ui-common-menu.mjs.map +1 -1
  55. package/fesm2022/theseam-ui-common-modal.mjs +178 -129
  56. package/fesm2022/theseam-ui-common-modal.mjs.map +1 -1
  57. package/fesm2022/theseam-ui-common-models.mjs +3 -3
  58. package/fesm2022/theseam-ui-common-models.mjs.map +1 -1
  59. package/fesm2022/theseam-ui-common-navigation-reload.mjs +13 -11
  60. package/fesm2022/theseam-ui-common-navigation-reload.mjs.map +1 -1
  61. package/fesm2022/theseam-ui-common-popover.mjs +81 -88
  62. package/fesm2022/theseam-ui-common-popover.mjs.map +1 -1
  63. package/fesm2022/theseam-ui-common-progress.mjs +15 -19
  64. package/fesm2022/theseam-ui-common-progress.mjs.map +1 -1
  65. package/fesm2022/theseam-ui-common-rich-text.mjs +65 -52
  66. package/fesm2022/theseam-ui-common-rich-text.mjs.map +1 -1
  67. package/fesm2022/theseam-ui-common-scrollbar.mjs +12 -9
  68. package/fesm2022/theseam-ui-common-scrollbar.mjs.map +1 -1
  69. package/fesm2022/theseam-ui-common-services.mjs +41 -26
  70. package/fesm2022/theseam-ui-common-services.mjs.map +1 -1
  71. package/fesm2022/theseam-ui-common-shared.mjs +149 -159
  72. package/fesm2022/theseam-ui-common-shared.mjs.map +1 -1
  73. package/fesm2022/theseam-ui-common-storage.mjs +9 -6
  74. package/fesm2022/theseam-ui-common-storage.mjs.map +1 -1
  75. package/fesm2022/theseam-ui-common-story-helpers.mjs +148 -86
  76. package/fesm2022/theseam-ui-common-story-helpers.mjs.map +1 -1
  77. package/fesm2022/theseam-ui-common-tabbed.mjs +43 -39
  78. package/fesm2022/theseam-ui-common-tabbed.mjs.map +1 -1
  79. package/fesm2022/theseam-ui-common-table-cell-type.mjs +63 -39
  80. package/fesm2022/theseam-ui-common-table-cell-type.mjs.map +1 -1
  81. package/fesm2022/theseam-ui-common-table-cell-types.mjs +182 -144
  82. package/fesm2022/theseam-ui-common-table-cell-types.mjs.map +1 -1
  83. package/fesm2022/theseam-ui-common-table.mjs +62 -41
  84. package/fesm2022/theseam-ui-common-table.mjs.map +1 -1
  85. package/fesm2022/theseam-ui-common-tel-input.mjs +98 -63
  86. package/fesm2022/theseam-ui-common-tel-input.mjs.map +1 -1
  87. package/fesm2022/theseam-ui-common-testing.mjs +13 -10
  88. package/fesm2022/theseam-ui-common-testing.mjs.map +1 -1
  89. package/fesm2022/theseam-ui-common-tiled-select.mjs +54 -50
  90. package/fesm2022/theseam-ui-common-tiled-select.mjs.map +1 -1
  91. package/fesm2022/theseam-ui-common-toggle-edit.mjs +41 -37
  92. package/fesm2022/theseam-ui-common-toggle-edit.mjs.map +1 -1
  93. package/fesm2022/theseam-ui-common-toggle-group.mjs +30 -31
  94. package/fesm2022/theseam-ui-common-toggle-group.mjs.map +1 -1
  95. package/fesm2022/theseam-ui-common-tooltip.mjs +225 -66
  96. package/fesm2022/theseam-ui-common-tooltip.mjs.map +1 -1
  97. package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs +14 -12
  98. package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  99. package/fesm2022/theseam-ui-common-utils.mjs +113 -77
  100. package/fesm2022/theseam-ui-common-utils.mjs.map +1 -1
  101. package/fesm2022/theseam-ui-common-validators.mjs +10 -9
  102. package/fesm2022/theseam-ui-common-validators.mjs.map +1 -1
  103. package/fesm2022/theseam-ui-common-vertical-list-filter.mjs +39 -17
  104. package/fesm2022/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
  105. package/fesm2022/theseam-ui-common-viewers.mjs +80 -53
  106. package/fesm2022/theseam-ui-common-viewers.mjs.map +1 -1
  107. package/fesm2022/theseam-ui-common-widget.mjs +288 -314
  108. package/fesm2022/theseam-ui-common-widget.mjs.map +1 -1
  109. package/form-field/index.d.ts +1 -1
  110. package/framework/base-layout/base-layout.component.scss +9 -4
  111. package/framework/base-layout/styles/_variables.scss +4 -9
  112. package/framework/dashboard/dashboard-widgets/dashboard-widgets.component.scss +6 -4
  113. package/framework/index.d.ts +6 -6
  114. package/framework/nav/nav-item/nav-item.component.scss +7 -6
  115. package/framework/nav/styles/_themes/light/_variables.scss +21 -5
  116. package/framework/nav/styles/_themes/primary/_variables.scss +21 -5
  117. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +5 -2
  118. package/framework/side-nav/styles/_themes/light/_variables.scss +5 -1
  119. package/framework/side-nav/styles/_themes/primary/_variables.scss +25 -5
  120. package/graphql/index.d.ts +49 -7
  121. package/modal/README.md +5 -5
  122. package/modal/index.d.ts +1 -1
  123. package/models/index.d.ts +1 -1
  124. package/package.json +59 -60
  125. package/popover/index.d.ts +0 -2
  126. package/progress/progress-circle/styles/_variables.scss +15 -3
  127. package/shared/index.d.ts +0 -13
  128. package/story-helpers/index.d.ts +11 -1
  129. package/styles/bootstrap/_bootstrap.scss +34 -34
  130. package/styles/bootstrap/_bs-styles.scss +4 -8
  131. package/styles/bootstrap/_bs-utilities.scss +4 -4
  132. package/styles/bootstrap/_bs-variables.scss +65 -70
  133. package/styles/common/_forms.scss +9 -10
  134. package/styles/common/_global.scss +0 -1
  135. package/styles/common/_hacks.scss +1 -1
  136. package/styles/common/_table.scss +0 -1
  137. package/styles/common/_text.scss +3 -1
  138. package/styles/theme.scss +1 -1
  139. package/styles/vendor/ng-select/_ng-select-bs4.scss +292 -294
  140. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +63 -32
  141. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +37 -10
  142. package/styles/vendor/ngx-datatable/_themes/material/_variables.scss +3 -1
  143. package/styles/vendor/quill/_quill.scss +15 -9
  144. package/table/index.d.ts +4 -1
  145. package/table-cell-type/index.d.ts +27 -2
  146. package/tel-input/README.md +27 -27
  147. package/utils/index.d.ts +3 -3
  148. package/viewers/index.d.ts +9 -2
  149. package/widget/_widget-theme.scss +1 -1
  150. package/widget/styles/_variables.scss +2 -2
  151. package/widget/widget/widget.component.scss +0 -2
  152. package/widget/widget-content-components/widget-tile/widget-tile.component.scss +1 -3
  153. 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() { return this._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.0", ngImport: i0, type: ProgressCircleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: ProgressCircleComponent, isStandalone: false, selector: "seam-progress-circle", inputs: { fillBackground: "fillBackground", showText: "showText", hiddenOnEmpty: "hiddenOnEmpty", pending: "pending", percentage: "percentage" }, ngImport: i0, template: "<div class=\"seam-progress-circle\" *ngIf=\"_progressInfo as p\"\n [class.seam-progress-circle--in-complete]=\"p.percent < 100\"\n [class.seam-progress-circle--fill-bg]=\"fillBackground\">\n <div class=\"seam-progress-circle-inner\">\n <ng-container *ngIf=\"p.percent > 0 || !hiddenOnEmpty\">\n <svg class=\"seam-progress-circle--icon-spinner\" viewBox=\"0 0 40 40\" [attr.data-percent]=\"p.percent\">\n <circle class=\"seam-progress-circle--icon-spinner-path seam-progress-circle--icon-spinner-path-bg\" cx=\"20\" cy=\"20\" r=\"15\" fill=\"none\"\n stroke-width=\"4\">\n </circle>\n <circle class=\"seam-progress-circle--icon-spinner-path\" cx=\"20\" cy=\"20\" r=\"15\" 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 *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 *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 class=\"seam-progress-circle--icon-text\" *ngIf=\"showText && !pending && p.percent > 0 && p.percent < 100\">\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
+ 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.0", ngImport: i0, type: ProgressCircleComponent, decorators: [{
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 class=\"seam-progress-circle\" *ngIf=\"_progressInfo as p\"\n [class.seam-progress-circle--in-complete]=\"p.percent < 100\"\n [class.seam-progress-circle--fill-bg]=\"fillBackground\">\n <div class=\"seam-progress-circle-inner\">\n <ng-container *ngIf=\"p.percent > 0 || !hiddenOnEmpty\">\n <svg class=\"seam-progress-circle--icon-spinner\" viewBox=\"0 0 40 40\" [attr.data-percent]=\"p.percent\">\n <circle class=\"seam-progress-circle--icon-spinner-path seam-progress-circle--icon-spinner-path-bg\" cx=\"20\" cy=\"20\" r=\"15\" fill=\"none\"\n stroke-width=\"4\">\n </circle>\n <circle class=\"seam-progress-circle--icon-spinner-path\" cx=\"20\" cy=\"20\" r=\"15\" 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 *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 *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 class=\"seam-progress-circle--icon-text\" *ngIf=\"showText && !pending && p.percent > 0 && p.percent < 100\">\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"] }]
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.0", ngImport: i0, type: TheSeamProgressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
74
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: TheSeamProgressModule, declarations: [ProgressCircleComponent], imports: [CommonModule], exports: [ProgressCircleComponent] });
75
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TheSeamProgressModule, imports: [CommonModule] });
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.0", ngImport: i0, type: TheSeamProgressModule, decorators: [{
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
- ProgressCircleComponent
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 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() @InputNumber()\n set percentage(value: number) {\n this._percentage = value\n this._progressInfo = this._getProgress()\n }\n get percentage(): number { return this._percentage }\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 class=\"seam-progress-circle\" *ngIf=\"_progressInfo as p\"\n [class.seam-progress-circle--in-complete]=\"p.percent < 100\"\n [class.seam-progress-circle--fill-bg]=\"fillBackground\">\n <div class=\"seam-progress-circle-inner\">\n <ng-container *ngIf=\"p.percent > 0 || !hiddenOnEmpty\">\n <svg class=\"seam-progress-circle--icon-spinner\" viewBox=\"0 0 40 40\" [attr.data-percent]=\"p.percent\">\n <circle class=\"seam-progress-circle--icon-spinner-path seam-progress-circle--icon-spinner-path-bg\" cx=\"20\" cy=\"20\" r=\"15\" fill=\"none\"\n stroke-width=\"4\">\n </circle>\n <circle class=\"seam-progress-circle--icon-spinner-path\" cx=\"20\" cy=\"20\" r=\"15\" 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 *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 *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 class=\"seam-progress-circle--icon-text\" *ngIf=\"showText && !pending && p.percent > 0 && p.percent < 100\">\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: [\n ProgressCircleComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n ProgressCircleComponent\n ]\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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"}
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().length;
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) ? previousMenuItem.groupName : undefined;
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) && qlEditor === document.activeElement && qlEditor instanceof HTMLElement) {
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$.pipe(tap(mentions => this.mentionsUpdated.emit(mentions))).subscribe();
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.pipe(filter(s => s), switchMap(() => this.formControl.valueChanges.pipe(
458
+ this._configSet
459
+ .pipe(filter((s) => s), switchMap(() => this.formControl.valueChanges.pipe(
451
460
  // skip(1),
452
- take(1), tap(() => initialEmitComplete = true)))).subscribe();
453
- this.formControl.valueChanges.pipe(filter(() => !this._isWritingValue && initialEmitComplete), tap(value => this.value = value)).subscribe();
454
- this._pollCalculatedRowHeight.asObservable().pipe(tap(() => {
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) && notNullOrUndefined(this._quillEditor)) {
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
- })).subscribe();
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 && Object.prototype.hasOwnProperty.call(this._customConfig, prop)) {
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.map((o) => o.insert?.mention?.id).filter(notNullOrUndefined);
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)) !== -1 ||
644
- newMentionIds.findIndex(m => !selectedMentionIds.includes(m)) !== -1) {
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.0", ngImport: i0, type: RichTextComponent, deps: [{ token: i0.Renderer2 }, { token: THESEAM_QUILL_EDITOR_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
654
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", 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: [
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.0", ngImport: i0, type: RichTextComponent, decorators: [{
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 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"] }]
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.0", ngImport: i0, type: TheSeamRichTextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
762
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: TheSeamRichTextModule, imports: [RichTextComponent], exports: [RichTextComponent] });
763
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TheSeamRichTextModule, imports: [RichTextComponent] });
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.0", ngImport: i0, type: TheSeamRichTextModule, decorators: [{
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
- RichTextComponent,
770
- ],
771
- exports: [
772
- RichTextComponent,
773
- ],
785
+ imports: [RichTextComponent],
786
+ exports: [RichTextComponent],
774
787
  }]
775
788
  }] });
776
789