@nyaruka/temba-components 0.108.0 → 0.108.1

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.
@@ -95,7 +95,7 @@ export class StartProgress extends RapidElement {
95
95
  eta=${this.eta}
96
96
  message=${this.message}
97
97
  >
98
- ${this.running
98
+ ${this.running && this.interruptTitle && this.interruptEndpoint
99
99
  ? html `<temba-icon
100
100
  name="close"
101
101
  @click=${this.interruptStart}
@@ -1 +1 @@
1
- {"version":3,"file":"StartProgress.js","sourceRoot":"","sources":["../../../src/progress/StartProgress.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, PropertyValueMap, TemplateResult } from 'lit';\nimport { RapidElement } from '../RapidElement';\nimport { property } from 'lit/decorators.js';\nimport { fetchResults, showModax } from '../utils';\n\nexport class StartProgress extends RapidElement {\n static styles = css`\n temba-icon[name='close'] {\n cursor: pointer;\n margin: 0 4px;\n }\n\n temba-icon[name='close']:hover {\n color: var(--color-primary-dark);\n }\n `;\n @property({ type: String })\n id: string;\n\n @property({ type: Number })\n current: number;\n\n @property({ type: Number })\n total: number;\n\n @property({ type: Number })\n refreshes: number = 0;\n\n @property({ type: String })\n eta: string;\n\n @property({ type: Boolean })\n complete = false;\n\n @property({ type: Boolean })\n running = false;\n\n @property({ type: String })\n message: string;\n\n @property({ type: String })\n statusEndpoint: string;\n\n @property({ type: String })\n interruptTitle: string;\n\n @property({ type: String })\n interruptEndpoint: string;\n\n public updated(\n changes: PropertyValueMap<any> | Map<PropertyKey, unknown>\n ): void {\n super.updated(changes);\n if (changes.has('id')) {\n this.refresh();\n }\n\n // Useful for simulating progress\n /*\n if (changes.has('current')) {\n this.requestUpdate();\n setTimeout(() => {\n this.current = this.current + 100000;\n this.complete = this.current >= this.total;\n this.message = null;\n\n if (this.complete) {\n this.scheduleRemoval();\n }\n }, 5000);\n }*/\n }\n\n public interruptStart(): void {\n showModax(this.interruptTitle, this.interruptEndpoint);\n }\n\n public refresh(): void {\n fetchResults(this.statusEndpoint).then((data: any) => {\n if (data.length > 0) {\n this.refreshes++;\n const start = data[0];\n\n this.current = start.progress.current;\n this.total = start.progress.total;\n\n this.complete =\n start.status == 'Completed' ||\n start.status == 'Failed' ||\n start.status == 'Interrupted';\n\n this.running = start.status === 'Started';\n\n if (start.status === 'Pending') {\n this.message = 'Preparing to start..';\n } else if (start.status === 'Queued') {\n this.message = 'Waiting..';\n } else {\n this.message = null;\n }\n\n if (start.status === 'Started') {\n const elapsed =\n new Date().getTime() - new Date(start.modified_on).getTime();\n const rate = this.current / elapsed;\n\n // only calculate eta if the rate is actually reasonable\n if (rate > 0.1) {\n const eta = new Date(\n new Date().getTime() + (this.total - this.current) / rate\n );\n // Don't bother with estimates months out\n const nextMonth = new Date();\n nextMonth.setMonth(nextMonth.getMonth() + 2);\n if (eta > nextMonth) {\n this.eta = null;\n } else {\n this.eta = eta.toISOString();\n }\n }\n }\n\n if (!this.complete && this.current < this.total) {\n // refresh with a backoff up to 1 minute\n setTimeout(() => {\n this.refresh();\n }, Math.min(1000 * this.refreshes, 60000));\n }\n\n if (this.complete) {\n this.scheduleRemoval();\n }\n }\n });\n }\n\n public scheduleRemoval(): void {\n setTimeout(() => {\n this.remove();\n }, 5000);\n }\n\n public render(): TemplateResult {\n return html`<temba-progress\n total=${this.total}\n current=${this.current}\n eta=${this.eta}\n message=${this.message}\n >\n ${this.running\n ? html`<temba-icon\n name=\"close\"\n @click=${this.interruptStart}\n ></temba-icon>`\n : null}\n </temba-progress>`;\n }\n}\n"]}
1
+ {"version":3,"file":"StartProgress.js","sourceRoot":"","sources":["../../../src/progress/StartProgress.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, PropertyValueMap, TemplateResult } from 'lit';\nimport { RapidElement } from '../RapidElement';\nimport { property } from 'lit/decorators.js';\nimport { fetchResults, showModax } from '../utils';\n\nexport class StartProgress extends RapidElement {\n static styles = css`\n temba-icon[name='close'] {\n cursor: pointer;\n margin: 0 4px;\n }\n\n temba-icon[name='close']:hover {\n color: var(--color-primary-dark);\n }\n `;\n @property({ type: String })\n id: string;\n\n @property({ type: Number })\n current: number;\n\n @property({ type: Number })\n total: number;\n\n @property({ type: Number })\n refreshes: number = 0;\n\n @property({ type: String })\n eta: string;\n\n @property({ type: Boolean })\n complete = false;\n\n @property({ type: Boolean })\n running = false;\n\n @property({ type: String })\n message: string;\n\n @property({ type: String })\n statusEndpoint: string;\n\n @property({ type: String })\n interruptTitle: string;\n\n @property({ type: String })\n interruptEndpoint: string;\n\n public updated(\n changes: PropertyValueMap<any> | Map<PropertyKey, unknown>\n ): void {\n super.updated(changes);\n if (changes.has('id')) {\n this.refresh();\n }\n\n // Useful for simulating progress\n /*\n if (changes.has('current')) {\n this.requestUpdate();\n setTimeout(() => {\n this.current = this.current + 100000;\n this.complete = this.current >= this.total;\n this.message = null;\n\n if (this.complete) {\n this.scheduleRemoval();\n }\n }, 5000);\n }*/\n }\n\n public interruptStart(): void {\n showModax(this.interruptTitle, this.interruptEndpoint);\n }\n\n public refresh(): void {\n fetchResults(this.statusEndpoint).then((data: any) => {\n if (data.length > 0) {\n this.refreshes++;\n const start = data[0];\n\n this.current = start.progress.current;\n this.total = start.progress.total;\n\n this.complete =\n start.status == 'Completed' ||\n start.status == 'Failed' ||\n start.status == 'Interrupted';\n\n this.running = start.status === 'Started';\n\n if (start.status === 'Pending') {\n this.message = 'Preparing to start..';\n } else if (start.status === 'Queued') {\n this.message = 'Waiting..';\n } else {\n this.message = null;\n }\n\n if (start.status === 'Started') {\n const elapsed =\n new Date().getTime() - new Date(start.modified_on).getTime();\n const rate = this.current / elapsed;\n\n // only calculate eta if the rate is actually reasonable\n if (rate > 0.1) {\n const eta = new Date(\n new Date().getTime() + (this.total - this.current) / rate\n );\n // Don't bother with estimates months out\n const nextMonth = new Date();\n nextMonth.setMonth(nextMonth.getMonth() + 2);\n if (eta > nextMonth) {\n this.eta = null;\n } else {\n this.eta = eta.toISOString();\n }\n }\n }\n\n if (!this.complete && this.current < this.total) {\n // refresh with a backoff up to 1 minute\n setTimeout(() => {\n this.refresh();\n }, Math.min(1000 * this.refreshes, 60000));\n }\n\n if (this.complete) {\n this.scheduleRemoval();\n }\n }\n });\n }\n\n public scheduleRemoval(): void {\n setTimeout(() => {\n this.remove();\n }, 5000);\n }\n\n public render(): TemplateResult {\n return html`<temba-progress\n total=${this.total}\n current=${this.current}\n eta=${this.eta}\n message=${this.message}\n >\n ${this.running && this.interruptTitle && this.interruptEndpoint\n ? html`<temba-icon\n name=\"close\"\n @click=${this.interruptStart}\n ></temba-icon>`\n : null}\n </temba-progress>`;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nyaruka/temba-components",
3
- "version": "0.108.0",
3
+ "version": "0.108.1",
4
4
  "description": "Web components to support rapidpro and related projects",
5
5
  "author": "Nyaruka <code@nyaruka.coim>",
6
6
  "main": "dist/index.js",
@@ -147,7 +147,7 @@ export class StartProgress extends RapidElement {
147
147
  eta=${this.eta}
148
148
  message=${this.message}
149
149
  >
150
- ${this.running
150
+ ${this.running && this.interruptTitle && this.interruptEndpoint
151
151
  ? html`<temba-icon
152
152
  name="close"
153
153
  @click=${this.interruptStart}