@nyaruka/temba-components 0.35.3 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +0 -2
- package/.github/workflows/build.yml +1 -0
- package/.github/workflows/publish.yml +2 -3
- package/.github/workflows/stale.yml +26 -0
- package/CHANGELOG.md +31 -0
- package/demo/index.html +1 -3
- package/dist/46adbabc.js +5792 -0
- package/dist/index.js +541 -487
- package/dist/sw.js +1 -1
- package/dist/sw.js.map +1 -1
- package/dist/templates/components-body.html +1 -1
- package/dist/templates/components-head.html +1 -1
- package/dist/workbox-919adfb7.js +2 -0
- package/dist/workbox-919adfb7.js.map +1 -0
- package/out-tsc/src/FormElement.js +1 -1
- package/out-tsc/src/FormElement.js.map +1 -1
- package/out-tsc/src/RefreshElement.js +1 -1
- package/out-tsc/src/RefreshElement.js.map +1 -1
- package/out-tsc/src/alert/Alert.js +1 -1
- package/out-tsc/src/alert/Alert.js.map +1 -1
- package/out-tsc/src/aliaseditor/AliasEditor.js +6 -6
- package/out-tsc/src/aliaseditor/AliasEditor.js.map +1 -1
- package/out-tsc/src/anchor/Anchor.js +1 -1
- package/out-tsc/src/anchor/Anchor.js.map +1 -1
- package/out-tsc/src/button/Button.js +1 -1
- package/out-tsc/src/button/Button.js.map +1 -1
- package/out-tsc/src/charcount/CharCount.js +1 -1
- package/out-tsc/src/charcount/CharCount.js.map +1 -1
- package/out-tsc/src/checkbox/Checkbox.js +1 -1
- package/out-tsc/src/checkbox/Checkbox.js.map +1 -1
- package/out-tsc/src/completion/Completion.js +3 -3
- package/out-tsc/src/completion/Completion.js.map +1 -1
- package/out-tsc/src/completion/helpers.js +2 -2
- package/out-tsc/src/completion/helpers.js.map +1 -1
- package/out-tsc/src/contacts/ContactChat.js +184 -156
- package/out-tsc/src/contacts/ContactChat.js.map +1 -1
- package/out-tsc/src/contacts/ContactDetails.js +1 -1
- package/out-tsc/src/contacts/ContactDetails.js.map +1 -1
- package/out-tsc/src/contacts/ContactFieldEditor.js +1 -1
- package/out-tsc/src/contacts/ContactFieldEditor.js.map +1 -1
- package/out-tsc/src/contacts/ContactFields.js +1 -1
- package/out-tsc/src/contacts/ContactFields.js.map +1 -1
- package/out-tsc/src/contacts/ContactHistory.js +1 -1
- package/out-tsc/src/contacts/ContactHistory.js.map +1 -1
- package/out-tsc/src/contacts/ContactName.js +1 -1
- package/out-tsc/src/contacts/ContactName.js.map +1 -1
- package/out-tsc/src/contacts/ContactNameFetch.js +1 -1
- package/out-tsc/src/contacts/ContactNameFetch.js.map +1 -1
- package/out-tsc/src/contacts/ContactPending.js +13 -13
- package/out-tsc/src/contacts/ContactPending.js.map +1 -1
- package/out-tsc/src/contacts/ContactStoreElement.js +1 -1
- package/out-tsc/src/contacts/ContactStoreElement.js.map +1 -1
- package/out-tsc/src/contacts/ContactTickets.js +1 -1
- package/out-tsc/src/contacts/ContactTickets.js.map +1 -1
- package/out-tsc/src/contacts/ContactUrn.js +1 -1
- package/out-tsc/src/contacts/ContactUrn.js.map +1 -1
- package/out-tsc/src/contactsearch/ContactSearch.js +1 -1
- package/out-tsc/src/contactsearch/ContactSearch.js.map +1 -1
- package/out-tsc/src/date/TembaDate.js +1 -1
- package/out-tsc/src/date/TembaDate.js.map +1 -1
- package/out-tsc/src/datepicker/DatePicker.js +8 -8
- package/out-tsc/src/datepicker/DatePicker.js.map +1 -1
- package/out-tsc/src/dialog/Dialog.js +11 -11
- package/out-tsc/src/dialog/Dialog.js.map +1 -1
- package/out-tsc/src/dialog/Modax.js +16 -17
- package/out-tsc/src/dialog/Modax.js.map +1 -1
- package/out-tsc/src/dropdown/Dropdown.js +1 -1
- package/out-tsc/src/dropdown/Dropdown.js.map +1 -1
- package/out-tsc/src/fields/FieldManager.js +1 -1
- package/out-tsc/src/fields/FieldManager.js.map +1 -1
- package/out-tsc/src/flow/FlowStoreElement.js +1 -1
- package/out-tsc/src/flow/FlowStoreElement.js.map +1 -1
- package/out-tsc/src/formfield/FormField.js +1 -1
- package/out-tsc/src/formfield/FormField.js.map +1 -1
- package/out-tsc/src/label/Label.js +2 -2
- package/out-tsc/src/label/Label.js.map +1 -1
- package/out-tsc/src/leafletmap/LeafletMap.js +12 -12
- package/out-tsc/src/leafletmap/LeafletMap.js.map +1 -1
- package/out-tsc/src/list/ContentMenu.js +176 -0
- package/out-tsc/src/list/ContentMenu.js.map +1 -0
- package/out-tsc/src/list/RunList.js +13 -12
- package/out-tsc/src/list/RunList.js.map +1 -1
- package/out-tsc/src/list/SortableList.js +14 -14
- package/out-tsc/src/list/SortableList.js.map +1 -1
- package/out-tsc/src/list/TembaList.js +14 -16
- package/out-tsc/src/list/TembaList.js.map +1 -1
- package/out-tsc/src/list/TembaMenu.js +108 -108
- package/out-tsc/src/list/TembaMenu.js.map +1 -1
- package/out-tsc/src/list/TicketList.js +8 -8
- package/out-tsc/src/list/TicketList.js.map +1 -1
- package/out-tsc/src/loading/Loading.js +2 -2
- package/out-tsc/src/loading/Loading.js.map +1 -1
- package/out-tsc/src/omnibox/Omnibox.js +2 -2
- package/out-tsc/src/omnibox/Omnibox.js.map +1 -1
- package/out-tsc/src/options/Options.js +2 -2
- package/out-tsc/src/options/Options.js.map +1 -1
- package/out-tsc/src/remote/Remote.js +1 -1
- package/out-tsc/src/remote/Remote.js.map +1 -1
- package/out-tsc/src/select/Select.js +2 -2
- package/out-tsc/src/select/Select.js.map +1 -1
- package/out-tsc/src/shadowless/Shadowless.js +1 -1
- package/out-tsc/src/shadowless/Shadowless.js.map +1 -1
- package/out-tsc/src/slider/TembaSlider.js +2 -2
- package/out-tsc/src/slider/TembaSlider.js.map +1 -1
- package/out-tsc/src/store/Store.js +8 -5
- package/out-tsc/src/store/Store.js.map +1 -1
- package/out-tsc/src/store/StoreElement.js +1 -1
- package/out-tsc/src/store/StoreElement.js.map +1 -1
- package/out-tsc/src/tabpane/Tab.js +1 -1
- package/out-tsc/src/tabpane/Tab.js.map +1 -1
- package/out-tsc/src/tabpane/TabPane.js +1 -1
- package/out-tsc/src/tabpane/TabPane.js.map +1 -1
- package/out-tsc/src/textinput/TextInput.js +15 -15
- package/out-tsc/src/textinput/TextInput.js.map +1 -1
- package/out-tsc/src/tip/Tip.js +2 -2
- package/out-tsc/src/tip/Tip.js.map +1 -1
- package/out-tsc/src/utils/index.js +1 -6
- package/out-tsc/src/utils/index.js.map +1 -1
- package/out-tsc/src/vectoricon/VectorIcon.js +9 -9
- package/out-tsc/src/vectoricon/VectorIcon.js.map +1 -1
- package/out-tsc/temba-modules.js +3 -0
- package/out-tsc/temba-modules.js.map +1 -1
- package/out-tsc/test/MouseHelper.js +1 -1
- package/out-tsc/test/MouseHelper.js.map +1 -1
- package/out-tsc/test/temba-contact-chat.test.js +93 -50
- package/out-tsc/test/temba-contact-chat.test.js.map +1 -1
- package/out-tsc/test/temba-contact-history.test.js +1 -1
- package/out-tsc/test/temba-contact-history.test.js.map +1 -1
- package/out-tsc/test/temba-content-menu.test.js +71 -0
- package/out-tsc/test/temba-content-menu.test.js.map +1 -0
- package/out-tsc/test/temba-modax.test.js +18 -19
- package/out-tsc/test/temba-modax.test.js.map +1 -1
- package/out-tsc/test/temba-select.test.js +1 -0
- package/out-tsc/test/temba-select.test.js.map +1 -1
- package/out-tsc/test/temba-tip.test.js +4 -6
- package/out-tsc/test/temba-tip.test.js.map +1 -1
- package/out-tsc/test/utils.test.js +5 -17
- package/out-tsc/test/utils.test.js.map +1 -1
- package/package.json +16 -28
- package/rollup.config.js +13 -7
- package/screenshots/truth/contacts/{contact-active-show-chat-history.png → contact-active-show-chatbox.png} +0 -0
- package/screenshots/truth/contacts/contact-active-ticket-closed-show-reopen-button.png +0 -0
- package/screenshots/truth/contacts/contact-active-ticket-open-show-chatbox.png +0 -0
- package/screenshots/truth/contacts/{contact-archived-hide-chat-msg.png → contact-archived-hide-chatbox.png} +0 -0
- package/screenshots/truth/contacts/contact-archived-ticket-closed-hide-chatbox.png +0 -0
- package/screenshots/truth/contacts/{contact-archived-show-chat-history.png → contact-blocked-hide-chatbox.png} +0 -0
- package/screenshots/truth/contacts/{contact-blocked-hide-chat-msg.png → contact-stopped-hide-chatbox.png} +0 -0
- package/screenshots/truth/content-menu/button-no-items.png +0 -0
- package/screenshots/truth/content-menu/item-no-buttons.png +0 -0
- package/screenshots/truth/content-menu/items-and-buttons.png +0 -0
- package/src/FormElement.ts +1 -1
- package/src/RefreshElement.ts +1 -1
- package/src/alert/Alert.ts +1 -1
- package/src/aliaseditor/AliasEditor.ts +2 -2
- package/src/anchor/Anchor.ts +1 -1
- package/src/button/Button.ts +1 -1
- package/src/charcount/CharCount.ts +1 -1
- package/src/checkbox/Checkbox.ts +1 -1
- package/src/completion/Completion.ts +3 -3
- package/src/completion/helpers.ts +8 -2
- package/src/contacts/ContactChat.ts +185 -157
- package/src/contacts/ContactDetails.ts +1 -1
- package/src/contacts/ContactFieldEditor.ts +1 -1
- package/src/contacts/ContactFields.ts +1 -1
- package/src/contacts/ContactHistory.ts +1 -1
- package/src/contacts/ContactName.ts +1 -1
- package/src/contacts/ContactNameFetch.ts +1 -1
- package/src/contacts/ContactPending.ts +1 -1
- package/src/contacts/ContactStoreElement.ts +1 -1
- package/src/contacts/ContactTickets.ts +1 -1
- package/src/contacts/ContactUrn.ts +1 -1
- package/src/contactsearch/ContactSearch.ts +1 -1
- package/src/date/TembaDate.ts +1 -1
- package/src/datepicker/DatePicker.ts +1 -1
- package/src/dialog/Dialog.ts +2 -2
- package/src/dialog/Modax.ts +17 -24
- package/src/dropdown/Dropdown.ts +1 -1
- package/src/fields/FieldManager.ts +1 -1
- package/src/flow/FlowStoreElement.ts +1 -1
- package/src/formfield/FormField.ts +1 -1
- package/src/label/Label.ts +2 -2
- package/src/leafletmap/LeafletMap.ts +1 -1
- package/src/list/ContentMenu.ts +192 -0
- package/src/list/RunList.ts +4 -3
- package/src/list/SortableList.ts +1 -1
- package/src/list/TembaList.ts +2 -4
- package/src/list/TembaMenu.ts +1 -1
- package/src/list/TicketList.ts +1 -1
- package/src/loading/Loading.ts +2 -2
- package/src/omnibox/Omnibox.ts +2 -2
- package/src/options/Options.ts +2 -2
- package/src/remote/Remote.ts +1 -1
- package/src/select/Select.ts +2 -2
- package/src/shadowless/Shadowless.ts +1 -1
- package/src/slider/TembaSlider.ts +2 -2
- package/src/store/Store.ts +11 -7
- package/src/store/StoreElement.ts +1 -1
- package/src/tabpane/Tab.ts +1 -1
- package/src/tabpane/TabPane.ts +1 -1
- package/src/textinput/TextInput.ts +3 -3
- package/src/tip/Tip.ts +6 -6
- package/src/untyped.d.ts +0 -2
- package/src/utils/index.ts +1 -5
- package/src/vectoricon/VectorIcon.ts +1 -1
- package/temba-modules.ts +3 -0
- package/test/MouseHelper.ts +1 -1
- package/test/temba-contact-chat.test.ts +148 -62
- package/test/temba-contact-history.test.ts +1 -1
- package/test/temba-content-menu.test.ts +100 -0
- package/test/temba-modax.test.ts +25 -21
- package/test/temba-select.test.ts +2 -0
- package/test/temba-tip.test.ts +10 -5
- package/test/utils.test.ts +6 -19
- package/test-assets/contacts/{contact-barak-archived → contact-barack-archived} +1 -1
- package/test-assets/contacts/contact-carter-active +52 -0
- package/test-assets/contacts/contact-michelle-blocked +1 -1
- package/test-assets/contacts/contact-tim-stopped +1 -1
- package/test-assets/list/content-menu-archived-contacts.json +12 -0
- package/test-assets/list/content-menu-contact-read.json +49 -0
- package/test-assets/list/content-menu-new-campaign.json +15 -0
- package/test-assets/tickets/empty.json +6 -0
- package/test-assets/tickets/ticket-barack-closed.json +22 -0
- package/test-assets/tickets/ticket-carter-closed.json +22 -0
- package/test-assets/tickets/ticket-carter-open.json +22 -0
- package/web-test-runner.config.mjs +21 -18
- package/dist/445f048b.js +0 -5738
- package/dist/workbox-80efdfd1.js +0 -2
- package/dist/workbox-80efdfd1.js.map +0 -1
- package/screenshots/truth/contacts/contact-active-show-chat-msg.png +0 -0
- package/screenshots/truth/contacts/contact-blocked-show-chat-history.png +0 -0
- package/screenshots/truth/contacts/contact-stopped-hide-chat-msg.png +0 -0
- package/screenshots/truth/contacts/contact-stopped-show-chat-history.png +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabPane.js","sourceRoot":"","sources":["../../../src/tabpane/TabPane.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"TabPane.js","sourceRoot":"","sources":["../../../src/tabpane/TabPane.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { CustomEventType } from '../interfaces';\nimport { RapidElement } from '../RapidElement';\nimport { getClasses } from '../utils';\nimport { Tab } from './Tab';\n\nexport class TabPane extends RapidElement {\n static get styles() {\n return css`\n :host {\n display: flex;\n flex-direction: column;\n min-height: 0;\n }\n\n .tabs {\n display: flex;\n }\n\n .tab {\n user-select: none;\n padding: 0.5em 1em;\n margin: 0em 0em;\n cursor: pointer;\n display: flex;\n font-size: 1.1em;\n align-items: center;\n border-radius: var(--curvature);\n border-bottom-right-radius: 0px;\n border-bottom-left-radius: 0px;\n border: 0px solid rgba(0, 0, 0, 0.45);\n color: var(--color-text-dark);\n --icon-color: var(--color-text-dark);\n white-space: nowrap;\n transition: all 100ms ease-in-out;\n }\n\n .tab.hidden {\n display: none;\n }\n\n .tab temba-icon {\n }\n\n .tab .name {\n margin-left: 0.4em;\n max-width: 80px;\n margin-right: 0.4em;\n overflow: hidden;\n transition: max-width 500ms ease-in-out, margin 500ms ease-in-out;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n .tab .badge {\n margin-left: 0.4em;\n }\n\n @media (max-width: 900px) {\n .collapses .tab .name {\n max-width: 0px;\n margin: 0;\n }\n }\n\n @media (max-width: 600px) {\n .collapses .tab .badge {\n display: none;\n }\n }\n\n .tab {\n transform: scale(0.9) translateY(-0.05em);\n --icon-color: #aaa;\n color: #aaa;\n }\n\n .tab.selected,\n .tab.selected:hover {\n cursor: default;\n box-shadow: 2px 1px 3px 2px rgba(0, 0, 0, 0.07);\n background: #fff;\n transform: scale(1) translateY(0em);\n z-index: 0;\n --icon-color: #666;\n color: #666;\n }\n\n .tab:hover {\n --icon-color: #666;\n color: #666;\n background: rgba(0, 0, 0, 0.02);\n }\n\n .pane {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n background: #fff;\n border-radius: var(--curvature);\n box-shadow: 2px 5px 12px 2px rgba(0, 0, 0, 0.09),\n 3px 3px 2px 1px rgba(0, 0, 0, 0.05);\n min-height: 0;\n z-index: 1;\n }\n\n .pane.first {\n border-top-left-radius: 0px;\n overflow: hidden;\n }\n\n .badge {\n }\n\n .count {\n border-radius: 99px;\n background: rgba(0, 0, 0, 0.05);\n color: rgba(0, 0, 0, 0.5);\n font-size: 0.6em;\n font-weight: 400;\n padding: 0.1em 0.4em;\n min-width: 1em;\n text-align: center;\n }\n\n .notify .count {\n background: var(--color-alert);\n color: #fff;\n }\n `;\n }\n\n @property({ type: Boolean })\n collapses = false;\n\n @property({ type: Number })\n index = 0;\n\n private handleTabClick(event: MouseEvent): void {\n this.index = parseInt(\n (event.currentTarget as HTMLDivElement).dataset.index\n );\n this.requestUpdate('index');\n }\n\n public updated(changedProperties: Map<string, any>) {\n super.updated(changedProperties);\n if (changedProperties.has('index')) {\n if (this.children.length > this.index) {\n for (let i = 0; i < this.children.length; i++) {\n const tab = this.children[i] as Tab;\n tab.selected = i == this.index;\n\n if (tab.selected) {\n tab.style.display = 'flex';\n } else {\n tab.style.display = 'none';\n }\n }\n }\n this.fireEvent(CustomEventType.ContextChanged);\n }\n }\n\n public getTab(index: number): Tab {\n return this.children.item(index) as Tab;\n }\n\n public render(): TemplateResult {\n const tabs: Tab[] = [];\n for (const tab of this.children) {\n tabs.push(tab as Tab);\n }\n\n return html`\n <div\n class=\"tabs ${getClasses({ tabs: true, collapses: this.collapses })}\"\n >\n ${tabs.map(\n (tab, index) => html`\n <div\n @click=${this.handleTabClick}\n data-index=${index}\n class=\"${getClasses({\n tab: true,\n selected: index == this.index,\n hidden: tab.hidden,\n notify: tab.notify,\n })}\"\n style=\"${tab.selectionColor && index == this.index\n ? `color:${tab.selectionColor};--icon-color:${tab.selectionColor};`\n : ''} ${tab.selectionBackground && index == this.index\n ? `background-color:${tab.selectionBackground};`\n : ''}\"\n >\n ${tab.icon ? html`<temba-icon name=${tab.icon} />` : null}\n <div class=\"name\">${tab.name}</div>\n ${tab.hasBadge()\n ? html`\n <div class=\"badge\">\n ${tab.count > 0\n ? html`<div class=\"count\">\n ${tab.count.toLocaleString()}\n </div>`\n : null}\n </div>\n `\n : null}\n </div>\n `\n )}\n </div>\n <div class=\"pane ${this.index === 0 ? 'first' : null}\">\n <slot></slot>\n </div>\n `;\n }\n}\n"]}
|
|
@@ -1,23 +1,11 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { html, css } from 'lit';
|
|
3
|
-
import { property } from 'lit/decorators';
|
|
4
|
-
import { ifDefined } from 'lit-html/directives/if-defined';
|
|
5
|
-
import { styleMap } from 'lit-html/directives/style-map';
|
|
3
|
+
import { property } from 'lit/decorators.js';
|
|
4
|
+
import { ifDefined } from 'lit-html/directives/if-defined.js';
|
|
5
|
+
import { styleMap } from 'lit-html/directives/style-map.js';
|
|
6
6
|
import { FormElement } from '../FormElement';
|
|
7
7
|
import { sanitize } from './helpers';
|
|
8
8
|
export class TextInput extends FormElement {
|
|
9
|
-
constructor() {
|
|
10
|
-
super();
|
|
11
|
-
this.placeholder = '';
|
|
12
|
-
this.value = '';
|
|
13
|
-
// if we are still loading
|
|
14
|
-
this.loading = true;
|
|
15
|
-
this.submitOnEnter = true;
|
|
16
|
-
this.autogrow = false;
|
|
17
|
-
this.counterElement = null;
|
|
18
|
-
this.cursorStart = -1;
|
|
19
|
-
this.cursorEnd = -1;
|
|
20
|
-
}
|
|
21
9
|
static get styles() {
|
|
22
10
|
return css `
|
|
23
11
|
.input-container {
|
|
@@ -121,6 +109,18 @@ export class TextInput extends FormElement {
|
|
|
121
109
|
}
|
|
122
110
|
`;
|
|
123
111
|
}
|
|
112
|
+
constructor() {
|
|
113
|
+
super();
|
|
114
|
+
this.placeholder = '';
|
|
115
|
+
this.value = '';
|
|
116
|
+
// if we are still loading
|
|
117
|
+
this.loading = true;
|
|
118
|
+
this.submitOnEnter = true;
|
|
119
|
+
this.autogrow = false;
|
|
120
|
+
this.counterElement = null;
|
|
121
|
+
this.cursorStart = -1;
|
|
122
|
+
this.cursorEnd = -1;
|
|
123
|
+
}
|
|
124
124
|
firstUpdated(changes) {
|
|
125
125
|
super.firstUpdated(changes);
|
|
126
126
|
this.inputElement = this.shadowRoot.querySelector('.textinput');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextInput.js","sourceRoot":"","sources":["../../../src/textinput/TextInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { TemplateResult, html, css } from 'lit';\nimport { property } from 'lit/decorators';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { styleMap } from 'lit-html/directives/style-map';\nimport { FormElement } from '../FormElement';\nimport { Modax } from '../dialog/Modax';\nimport { sanitize } from './helpers';\nimport { CharCount } from '../charcount/CharCount';\n\nexport class TextInput extends FormElement {\n static get styles() {\n return css`\n .input-container {\n border-radius: var(--curvature-widget);\n cursor: text;\n background: var(--color-widget-bg);\n border: 1px solid var(--color-widget-border);\n transition: all ease-in-out var(--transition-speed);\n display: flex;\n flex-direction: row;\n align-items: stretch;\n box-shadow: var(--widget-box-shadow);\n caret-color: var(--input-caret);\n }\n\n .clear-icon {\n --icon-color: var(--color-text-dark-secondary);\n cursor: pointer;\n margin: auto;\n padding-right: 10px;\n line-height: 1;\n }\n\n .clear-icon:hover {\n --icon-color: var(--color-text-dark);\n }\n\n .hidden {\n visibility: hidden;\n position: absolute;\n }\n\n .input-container:focus-within {\n border-color: var(--color-focus);\n background: var(--color-widget-bg-focused);\n box-shadow: var(--widget-box-shadow-focused);\n z-index: 10000;\n position: relative;\n }\n\n .input-container:hover {\n background: var(--color-widget-bg-focused);\n }\n\n textarea {\n height: var(--textarea-height);\n }\n\n .textinput {\n padding: var(--temba-textinput-padding);\n border: none;\n flex: 1;\n margin: 0;\n background: none;\n color: var(--color-widget-text);\n font-family: var(--font-family);\n font-size: var(--temba-textinput-font-size);\n line-height: normal;\n cursor: text;\n resize: none;\n font-weight: 300;\n width: 100%;\n }\n\n .textinput:focus {\n outline: none;\n box-shadow: none;\n cursor: text;\n }\n\n .textinput::placeholder {\n color: var(--color-placeholder);\n font-weight: 300;\n }\n\n .grow-wrap {\n display: flex;\n align-items: stretch;\n width: 100%;\n }\n\n .grow-wrap > div {\n border: 0px solid green;\n width: 100%;\n padding: var(--temba-textinput-padding);\n flex: 1;\n margin: 0;\n background: none;\n color: var(--color-widget-text);\n font-family: var(--font-family);\n font-size: var(--temba-textinput-font-size);\n line-height: normal;\n cursor: text;\n resize: none;\n font-weight: 300;\n width: 100%;\n }\n\n .grow-wrap textarea {\n margin-left: -100%;\n }\n `;\n }\n\n @property({ type: Boolean })\n textarea: boolean;\n\n @property({ type: String })\n placeholder = '';\n\n @property({ type: String })\n value = '';\n\n @property({ type: Boolean })\n password: boolean;\n\n @property({ type: Number })\n maxlength: number;\n\n @property({ type: Object })\n inputElement: HTMLInputElement;\n\n @property({ type: Boolean })\n clearable: boolean;\n\n @property({ type: Boolean })\n gsm: boolean;\n\n @property({ type: String })\n counter: string;\n\n // if we are still loading\n @property({ type: Boolean })\n loading = true;\n\n @property({ type: Boolean })\n submitOnEnter = true;\n\n @property()\n onBlur: any;\n\n @property({ type: Boolean })\n autogrow = false;\n\n counterElement: CharCount = null;\n cursorStart = -1;\n cursorEnd = -1;\n\n public constructor() {\n super();\n }\n\n public firstUpdated(changes: Map<string, any>) {\n super.firstUpdated(changes);\n\n this.inputElement = this.shadowRoot.querySelector('.textinput');\n\n if (changes.has('counter')) {\n let root = this.getParentModax() as any;\n if (root) {\n root = root.shadowRoot;\n }\n if (!root) {\n root = document;\n }\n this.counterElement = root.querySelector(this.counter);\n this.counterElement.text = this.value;\n }\n }\n\n public updated(changes: Map<string, any>) {\n super.updated(changes);\n\n if (changes.has('value')) {\n this.setValues([this.value]);\n this.fireEvent('change');\n\n if (this.textarea && this.autogrow) {\n const autogrow = this.shadowRoot.querySelector(\n '.grow-wrap > div'\n ) as HTMLDivElement;\n autogrow.innerText = this.value + String.fromCharCode(10);\n }\n\n if (this.cursorStart > -1 && this.cursorEnd > -1) {\n this.inputElement.setSelectionRange(this.cursorStart, this.cursorEnd);\n this.cursorStart = -1;\n this.cursorEnd = -1;\n }\n }\n }\n\n public getDisplayValue() {\n return this.inputElement.value;\n }\n\n private handleClear(event: any): void {\n event.stopPropagation();\n event.preventDefault();\n this.setValue(null);\n }\n\n private updateValue(value: string): void {\n const cursorStart = this.inputElement.selectionStart;\n const cursorEnd = this.inputElement.selectionEnd;\n\n const sanitized = this.sanitizeGSM(value);\n\n if (sanitized !== value) {\n this.cursorStart = cursorStart;\n this.cursorEnd = cursorEnd;\n }\n\n this.value = sanitized;\n\n if (this.textarea) {\n this.inputElement.value = this.value;\n }\n\n if (this.counterElement) {\n this.counterElement.text = value;\n }\n }\n\n private sanitizeGSM(text: string): string {\n return this.gsm ? sanitize(text) : text;\n }\n\n private handleChange(update: any): void {\n if (this.disabled) {\n return;\n }\n this.updateValue(update.target.value);\n this.fireEvent('change');\n }\n\n private handleContainerClick(): void {\n if (this.disabled) {\n return;\n }\n\n if (this.inputElement) {\n this.inputElement.focus();\n }\n }\n\n private handleInput(update: any): void {\n if (this.disabled) {\n return;\n }\n\n this.updateValue(update.target.value);\n this.setValues([this.value]);\n this.fireEvent('input');\n }\n\n /** we just return the value since it should be a string */\n public serializeValue(value: any): string {\n return value;\n }\n\n public getParentModax(): Modax {\n let parent = this as HTMLElement;\n\n while (parent) {\n if (parent.parentElement) {\n parent = parent.parentElement;\n } else {\n parent = (parent as any).getRootNode().host;\n }\n\n if (!parent) {\n return null;\n }\n\n if (parent.tagName == 'TEMBA-MODAX') {\n return parent as Modax;\n }\n }\n }\n\n public getParentForm(): HTMLFormElement {\n let parent = this as HTMLElement;\n\n while (parent) {\n if (parent.parentElement) {\n parent = parent.parentElement;\n } else {\n parent = (parent as any).getRootNode().host;\n }\n\n if (!parent) {\n return null;\n }\n\n if (parent.tagName === 'FORM') {\n return parent as HTMLFormElement;\n }\n }\n }\n\n public click(): void {\n super.click();\n this.handleContainerClick();\n }\n\n // TODO make this a formelement and have contactsearch set the root\n public render(): TemplateResult {\n const containerStyle = {\n height: `${this.textarea ? '100%' : 'auto'}`,\n };\n\n const clear =\n this.clearable && this.inputElement && this.inputElement.value\n ? html`<temba-icon\n name=\"x\"\n class=\"clear-icon\"\n @click=${this.handleClear}\n />`\n : null;\n\n let input = html`\n <input\n class=\"textinput\"\n name=${this.name}\n type=\"${this.password ? 'password' : 'text'}\"\n maxlength=\"${ifDefined(this.maxlength)}\"\n @change=${this.handleChange}\n @input=${this.handleInput}\n @blur=${this.blur}\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const input = this;\n\n if (this.submitOnEnter) {\n const parentModax = input.getParentModax();\n const parentForm = !parentModax ? input.getParentForm() : null;\n\n this.value = this.values[0];\n this.fireEvent('change');\n\n // if we don't have something to submit then bail\n if (!parentModax && !parentForm) {\n return false;\n }\n\n // don't submit disabled forms on enter\n if (parentModax && parentModax.disabled) {\n return false;\n }\n\n input.blur();\n\n // look for a form to submit\n window.setTimeout(function () {\n // first, look for a modax that contains us\n const modax = input.getParentModax();\n if (modax) {\n input.blur();\n\n modax.submit();\n } else {\n // otherwise, just look for a vanilla submit button\n const form = input.getParentForm();\n\n if (form) {\n const submitButton = form.querySelector(\n \"input[type='submit']\"\n ) as HTMLInputElement;\n if (submitButton) {\n submitButton.click();\n } else {\n form.submit();\n }\n }\n }\n }, 10);\n // this is needed for firefox, would be nice to\n // find a way to do this with a callback instead\n }\n }\n }}\n placeholder=${this.placeholder}\n .value=${this.value}\n .disabled=${this.disabled}\n />\n `;\n\n if (this.textarea) {\n input = html`\n <textarea\n class=\"textinput\"\n name=${this.name}\n placeholder=${this.placeholder}\n @change=${this.handleChange}\n @input=${this.handleInput}\n @blur=${this.blur}\n .value=${this.value}\n .disabled=${this.disabled}\n ></textarea>\n `;\n\n if (this.autogrow) {\n input = html` <div class=\"grow-wrap\">\n <div></div>\n ${input}\n </div>`;\n }\n }\n\n return html`\n <temba-field\n name=${this.name}\n .label=\"${this.label}\"\n .helpText=\"${this.helpText}\"\n .errors=${this.errors}\n .widgetOnly=${this.widgetOnly}\n .hideLabel=${this.hideLabel}\n .disabled=${this.disabled}\n >\n <div\n class=\"input-container\"\n style=${styleMap(containerStyle)}\n @click=${this.handleContainerClick}\n >\n <slot name=\"prefix\"></slot>\n ${input} ${clear}\n <slot></slot>\n </div>\n </temba-field>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TextInput.js","sourceRoot":"","sources":["../../../src/textinput/TextInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { TemplateResult, html, css } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { styleMap } from 'lit-html/directives/style-map.js';\nimport { FormElement } from '../FormElement';\nimport { Modax } from '../dialog/Modax';\nimport { sanitize } from './helpers';\nimport { CharCount } from '../charcount/CharCount';\n\nexport class TextInput extends FormElement {\n static get styles() {\n return css`\n .input-container {\n border-radius: var(--curvature-widget);\n cursor: text;\n background: var(--color-widget-bg);\n border: 1px solid var(--color-widget-border);\n transition: all ease-in-out var(--transition-speed);\n display: flex;\n flex-direction: row;\n align-items: stretch;\n box-shadow: var(--widget-box-shadow);\n caret-color: var(--input-caret);\n }\n\n .clear-icon {\n --icon-color: var(--color-text-dark-secondary);\n cursor: pointer;\n margin: auto;\n padding-right: 10px;\n line-height: 1;\n }\n\n .clear-icon:hover {\n --icon-color: var(--color-text-dark);\n }\n\n .hidden {\n visibility: hidden;\n position: absolute;\n }\n\n .input-container:focus-within {\n border-color: var(--color-focus);\n background: var(--color-widget-bg-focused);\n box-shadow: var(--widget-box-shadow-focused);\n z-index: 10000;\n position: relative;\n }\n\n .input-container:hover {\n background: var(--color-widget-bg-focused);\n }\n\n textarea {\n height: var(--textarea-height);\n }\n\n .textinput {\n padding: var(--temba-textinput-padding);\n border: none;\n flex: 1;\n margin: 0;\n background: none;\n color: var(--color-widget-text);\n font-family: var(--font-family);\n font-size: var(--temba-textinput-font-size);\n line-height: normal;\n cursor: text;\n resize: none;\n font-weight: 300;\n width: 100%;\n }\n\n .textinput:focus {\n outline: none;\n box-shadow: none;\n cursor: text;\n }\n\n .textinput::placeholder {\n color: var(--color-placeholder);\n font-weight: 300;\n }\n\n .grow-wrap {\n display: flex;\n align-items: stretch;\n width: 100%;\n }\n\n .grow-wrap > div {\n border: 0px solid green;\n width: 100%;\n padding: var(--temba-textinput-padding);\n flex: 1;\n margin: 0;\n background: none;\n color: var(--color-widget-text);\n font-family: var(--font-family);\n font-size: var(--temba-textinput-font-size);\n line-height: normal;\n cursor: text;\n resize: none;\n font-weight: 300;\n width: 100%;\n }\n\n .grow-wrap textarea {\n margin-left: -100%;\n }\n `;\n }\n\n @property({ type: Boolean })\n textarea: boolean;\n\n @property({ type: String })\n placeholder = '';\n\n @property({ type: String })\n value = '';\n\n @property({ type: Boolean })\n password: boolean;\n\n @property({ type: Number })\n maxlength: number;\n\n @property({ type: Object })\n inputElement: HTMLInputElement;\n\n @property({ type: Boolean })\n clearable: boolean;\n\n @property({ type: Boolean })\n gsm: boolean;\n\n @property({ type: String })\n counter: string;\n\n // if we are still loading\n @property({ type: Boolean })\n loading = true;\n\n @property({ type: Boolean })\n submitOnEnter = true;\n\n @property()\n onBlur: any;\n\n @property({ type: Boolean })\n autogrow = false;\n\n counterElement: CharCount = null;\n cursorStart = -1;\n cursorEnd = -1;\n\n public constructor() {\n super();\n }\n\n public firstUpdated(changes: Map<string, any>) {\n super.firstUpdated(changes);\n\n this.inputElement = this.shadowRoot.querySelector('.textinput');\n\n if (changes.has('counter')) {\n let root = this.getParentModax() as any;\n if (root) {\n root = root.shadowRoot;\n }\n if (!root) {\n root = document;\n }\n this.counterElement = root.querySelector(this.counter);\n this.counterElement.text = this.value;\n }\n }\n\n public updated(changes: Map<string, any>) {\n super.updated(changes);\n\n if (changes.has('value')) {\n this.setValues([this.value]);\n this.fireEvent('change');\n\n if (this.textarea && this.autogrow) {\n const autogrow = this.shadowRoot.querySelector(\n '.grow-wrap > div'\n ) as HTMLDivElement;\n autogrow.innerText = this.value + String.fromCharCode(10);\n }\n\n if (this.cursorStart > -1 && this.cursorEnd > -1) {\n this.inputElement.setSelectionRange(this.cursorStart, this.cursorEnd);\n this.cursorStart = -1;\n this.cursorEnd = -1;\n }\n }\n }\n\n public getDisplayValue() {\n return this.inputElement.value;\n }\n\n private handleClear(event: any): void {\n event.stopPropagation();\n event.preventDefault();\n this.setValue(null);\n }\n\n private updateValue(value: string): void {\n const cursorStart = this.inputElement.selectionStart;\n const cursorEnd = this.inputElement.selectionEnd;\n\n const sanitized = this.sanitizeGSM(value);\n\n if (sanitized !== value) {\n this.cursorStart = cursorStart;\n this.cursorEnd = cursorEnd;\n }\n\n this.value = sanitized;\n\n if (this.textarea) {\n this.inputElement.value = this.value;\n }\n\n if (this.counterElement) {\n this.counterElement.text = value;\n }\n }\n\n private sanitizeGSM(text: string): string {\n return this.gsm ? sanitize(text) : text;\n }\n\n private handleChange(update: any): void {\n if (this.disabled) {\n return;\n }\n this.updateValue(update.target.value);\n this.fireEvent('change');\n }\n\n private handleContainerClick(): void {\n if (this.disabled) {\n return;\n }\n\n if (this.inputElement) {\n this.inputElement.focus();\n }\n }\n\n private handleInput(update: any): void {\n if (this.disabled) {\n return;\n }\n\n this.updateValue(update.target.value);\n this.setValues([this.value]);\n this.fireEvent('input');\n }\n\n /** we just return the value since it should be a string */\n public serializeValue(value: any): string {\n return value;\n }\n\n public getParentModax(): Modax {\n let parent = this as HTMLElement;\n\n while (parent) {\n if (parent.parentElement) {\n parent = parent.parentElement;\n } else {\n parent = (parent as any).getRootNode().host;\n }\n\n if (!parent) {\n return null;\n }\n\n if (parent.tagName == 'TEMBA-MODAX') {\n return parent as Modax;\n }\n }\n }\n\n public getParentForm(): HTMLFormElement {\n let parent = this as HTMLElement;\n\n while (parent) {\n if (parent.parentElement) {\n parent = parent.parentElement;\n } else {\n parent = (parent as any).getRootNode().host;\n }\n\n if (!parent) {\n return null;\n }\n\n if (parent.tagName === 'FORM') {\n return parent as HTMLFormElement;\n }\n }\n }\n\n public click(): void {\n super.click();\n this.handleContainerClick();\n }\n\n // TODO make this a formelement and have contactsearch set the root\n public render(): TemplateResult {\n const containerStyle = {\n height: `${this.textarea ? '100%' : 'auto'}`,\n };\n\n const clear =\n this.clearable && this.inputElement && this.inputElement.value\n ? html`<temba-icon\n name=\"x\"\n class=\"clear-icon\"\n @click=${this.handleClear}\n />`\n : null;\n\n let input = html`\n <input\n class=\"textinput\"\n name=${this.name}\n type=\"${this.password ? 'password' : 'text'}\"\n maxlength=\"${ifDefined(this.maxlength)}\"\n @change=${this.handleChange}\n @input=${this.handleInput}\n @blur=${this.blur}\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const input = this;\n\n if (this.submitOnEnter) {\n const parentModax = input.getParentModax();\n const parentForm = !parentModax ? input.getParentForm() : null;\n\n this.value = this.values[0];\n this.fireEvent('change');\n\n // if we don't have something to submit then bail\n if (!parentModax && !parentForm) {\n return false;\n }\n\n // don't submit disabled forms on enter\n if (parentModax && parentModax.disabled) {\n return false;\n }\n\n input.blur();\n\n // look for a form to submit\n window.setTimeout(function () {\n // first, look for a modax that contains us\n const modax = input.getParentModax();\n if (modax) {\n input.blur();\n\n modax.submit();\n } else {\n // otherwise, just look for a vanilla submit button\n const form = input.getParentForm();\n\n if (form) {\n const submitButton = form.querySelector(\n \"input[type='submit']\"\n ) as HTMLInputElement;\n if (submitButton) {\n submitButton.click();\n } else {\n form.submit();\n }\n }\n }\n }, 10);\n // this is needed for firefox, would be nice to\n // find a way to do this with a callback instead\n }\n }\n }}\n placeholder=${this.placeholder}\n .value=${this.value}\n .disabled=${this.disabled}\n />\n `;\n\n if (this.textarea) {\n input = html`\n <textarea\n class=\"textinput\"\n name=${this.name}\n placeholder=${this.placeholder}\n @change=${this.handleChange}\n @input=${this.handleInput}\n @blur=${this.blur}\n .value=${this.value}\n .disabled=${this.disabled}\n ></textarea>\n `;\n\n if (this.autogrow) {\n input = html` <div class=\"grow-wrap\">\n <div></div>\n ${input}\n </div>`;\n }\n }\n\n return html`\n <temba-field\n name=${this.name}\n .label=\"${this.label}\"\n .helpText=\"${this.helpText}\"\n .errors=${this.errors}\n .widgetOnly=${this.widgetOnly}\n .hideLabel=${this.hideLabel}\n .disabled=${this.disabled}\n >\n <div\n class=\"input-container\"\n style=${styleMap(containerStyle)}\n @click=${this.handleContainerClick}\n >\n <slot name=\"prefix\"></slot>\n ${input} ${clear}\n <slot></slot>\n </div>\n </temba-field>\n `;\n }\n}\n"]}
|
package/out-tsc/src/tip/Tip.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { css, html } from 'lit';
|
|
3
|
-
import { property } from 'lit/decorators';
|
|
4
|
-
import { styleMap } from 'lit-html/directives/style-map';
|
|
3
|
+
import { property } from 'lit/decorators.js';
|
|
4
|
+
import { styleMap } from 'lit-html/directives/style-map.js';
|
|
5
5
|
import { RapidElement } from '../RapidElement';
|
|
6
6
|
import { getClasses } from '../utils';
|
|
7
7
|
import { getCenter, getMiddle } from './helpers';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tip.js","sourceRoot":"","sources":["../../../src/tip/Tip.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Tip.js","sourceRoot":"","sources":["../../../src/tip/Tip.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { styleMap } from 'lit-html/directives/style-map.js';\nimport { RapidElement } from '../RapidElement';\nimport { getClasses } from '../utils';\nimport { getCenter, getMiddle } from './helpers';\n\nexport class Tip extends RapidElement {\n static get styles() {\n return css`\n .tip {\n transition: opacity 200ms ease-in-out;\n margin: 0px;\n position: fixed;\n opacity: 0;\n background: #fff;\n padding: 4px 8px;\n pointer-events: none;\n border-radius: var(--curvature-widget);\n box-shadow: 0 1px 10px 10px rgba(0, 0, 0, 0.035),\n 0 1px 3px 0px rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);\n font-size: 14px;\n z-index: 10000;\n color: #333;\n }\n\n .tip.hide-on-change {\n transition: none;\n }\n\n .show {\n opacity: 1;\n }\n\n .slot {\n display: flex;\n flex-direction: column;\n }\n\n .arrow {\n position: absolute;\n color: #fff;\n font-size: 10px;\n line-height: 0px;\n }\n\n .◀ {\n text-shadow: -1px 2px 2px rgba(0, 0, 0, 0.1);\n }\n\n .▶ {\n text-shadow: 1px 2px 2px rgba(0, 0, 0, 0.1);\n }\n\n .▼ {\n text-shadow: 0px 3px 3px rgba(0, 0, 0, 0.1);\n }\n\n .▲ {\n text-shadow: 0px -1px 1px rgba(0, 0, 0, 0.1);\n }\n `;\n }\n\n @property({ type: String })\n text: string;\n\n @property({ type: Boolean })\n visible = false;\n\n @property({ type: String })\n position = 'auto';\n\n @property({ type: Boolean })\n hideOnChange: boolean;\n\n @property({ type: Number, attribute: false })\n top: number;\n\n @property({ type: Number, attribute: false })\n left: number;\n\n @property({ type: Number, attribute: false })\n width: number;\n\n @property({ type: Boolean, attribute: false })\n poppedTop: boolean;\n\n arrow: string;\n arrowTop: number;\n arrowLeft: number;\n arrowDirection: string;\n\n lastEnter = 0;\n failSafe = 0;\n\n public updated(changed: Map<string, any>) {\n if ((changed.has('visible') || changed.has('text')) && this.visible) {\n this.calculatePosition();\n }\n\n if (changed.has('text') && this.hideOnChange) {\n this.visible = false;\n }\n }\n\n private calculatePosition() {\n if (this.visible) {\n const tipBounds = this.getDiv('.tip').getBoundingClientRect();\n const anchorBounds = this.getDiv('.slot').getBoundingClientRect();\n\n // TODO: pick a direction automatically\n let tipSide = this.position;\n if (tipSide === 'auto') {\n tipSide = 'left';\n }\n\n this.arrowLeft = 0;\n this.arrowTop = 0;\n\n if (tipSide === 'left') {\n this.left = anchorBounds.left - tipBounds.width - 16;\n this.top = getMiddle(anchorBounds, tipBounds);\n\n // position our arrow\n this.arrowTop = tipBounds.height / 2;\n this.arrowLeft = tipBounds.width - 1;\n this.arrow = '▶';\n } else if (tipSide === 'right') {\n this.left = anchorBounds.right + 12;\n this.top = getMiddle(anchorBounds, tipBounds);\n\n this.arrowTop = tipBounds.height / 2;\n this.arrowLeft = -8;\n this.arrow = '◀';\n } else if (tipSide === 'top') {\n this.top = anchorBounds.top - tipBounds.height - 12;\n this.left = getCenter(anchorBounds, tipBounds);\n\n this.arrowTop = tipBounds.height + 2;\n this.arrowLeft = tipBounds.width / 2 - 4;\n this.arrow = '▼';\n } else if (tipSide === 'bottom') {\n this.top = anchorBounds.bottom + 10;\n this.left = getCenter(anchorBounds, tipBounds);\n\n this.arrowTop = -2;\n this.arrowLeft = tipBounds.width / 2 - 3;\n this.arrow = '▲';\n }\n }\n }\n\n private handleMouseEnter() {\n this.lastEnter = window.setTimeout(() => {\n this.visible = true;\n this.failSafe = window.setTimeout(() => {\n this.visible = false;\n }, 2000);\n }, 600);\n }\n\n private handleMouseLeave() {\n window.clearTimeout(this.lastEnter);\n window.clearTimeout(this.failSafe);\n this.visible = false;\n }\n\n public render(): TemplateResult {\n const tipStyle: any = {\n top: this.top ? `${this.top}px` : '0px',\n left: this.left ? `${this.left}px` : '0px',\n };\n\n const arrowStyle: any = {\n top: this.arrowTop ? `${this.arrowTop}px` : '0px',\n left: this.arrowLeft ? `${this.arrowLeft}px` : '0px',\n };\n\n if (this.width) {\n tipStyle.width = `${this.width}px`;\n }\n\n const classes = getClasses({\n tip: true,\n show: this.visible,\n top: this.poppedTop,\n 'hide-on-change': this.hideOnChange,\n });\n\n return html`\n <div\n class=\"slot\"\n @click=${this.handleMouseLeave}\n @mouseenter=${this.handleMouseEnter}\n @mouseleave=${this.handleMouseLeave}\n >\n <slot></slot>\n </div>\n <div class=\"${classes}\" style=${styleMap(tipStyle)}>\n ${this.text}\n <div class=\"arrow ${this.arrow}\" style=${styleMap(arrowStyle)}>\n ${this.arrow}\n </div>\n </div>\n `;\n }\n}\n"]}
|
|
@@ -164,12 +164,7 @@ export const postFormData = (url, formData) => {
|
|
|
164
164
|
postUrl(url, formData, true)
|
|
165
165
|
.then(response => {
|
|
166
166
|
if (response.status >= 200 && response.status < 300) {
|
|
167
|
-
|
|
168
|
-
resolve(response);
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
reject({ errors: response.json.errors });
|
|
172
|
-
}
|
|
167
|
+
resolve(response);
|
|
173
168
|
}
|
|
174
169
|
reject('Server failure');
|
|
175
170
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-this-alias */\nimport { html, TemplateResult } from 'lit-html';\nimport { Button } from '../button/Button';\nimport { Dialog } from '../dialog/Dialog';\nimport { ContactField, Ticket } from '../interfaces';\n\nexport type Asset = KeyedAsset & Ticket & ContactField;\n\nexport const DATE_FORMAT =\n /(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))/;\n\ninterface KeyedAsset {\n key?: string;\n}\n\ninterface AssetPage {\n assets: Asset[];\n next: string;\n}\n\nexport interface ResultsPage {\n results: any[];\n next: string;\n}\n/** Get the value for a named cookie */\nexport const getHTTPCookie = (name: string): string => {\n for (const cookie of document.cookie.split(';')) {\n const idx = cookie.indexOf('=');\n let key = cookie.substr(0, idx);\n let value = cookie.substr(idx + 1);\n\n // no spaces allowed\n key = key.trim();\n value = value.trim();\n\n if (key === name) {\n return value;\n }\n }\n return null;\n};\n\nexport const getHeaders = (headers: any = {}) => {\n const csrf = getHTTPCookie('csrftoken');\n const fetchHeaders: any = csrf ? { 'X-CSRFToken': csrf } : {};\n\n // mark us as ajax\n fetchHeaders['X-Requested-With'] = 'XMLHttpRequest';\n\n Object.keys(headers).forEach(key => {\n fetchHeaders[key] = headers[key];\n });\n\n return fetchHeaders;\n};\n\nexport const getUrl = (\n url: string,\n controller: AbortController = null,\n headers: { [key: string]: string } = {}\n): Promise<WebResponse> => {\n return new Promise<WebResponse>((resolve, reject) => {\n const options = {\n method: 'GET',\n headers: getHeaders(headers),\n };\n\n if (controller) {\n options['signal'] = controller.signal;\n }\n\n fetch(url, options)\n .then(response => {\n response.text().then((body: string) => {\n let json = {};\n try {\n json = JSON.parse(body);\n // eslint-disable-next-line no-empty\n } catch (err) {}\n resolve({\n controller,\n body,\n json,\n headers: response.headers,\n status: response.status,\n });\n });\n })\n .catch(error => {\n reject(error);\n });\n });\n};\n\nexport type ClassMap = {\n [className: string]: boolean;\n};\n\nexport const getClasses = (map: ClassMap): string => {\n const classNames: string[] = [];\n Object.keys(map).forEach((className: string) => {\n if (map[className]) {\n classNames.push(className);\n }\n });\n\n let result = classNames.join(' ');\n if (result.trim().length > 0) {\n result = ' ' + result;\n }\n return result;\n};\n\nexport const fetchResultsPage = (\n url: string,\n controller: AbortController = null\n): Promise<ResultsPage> => {\n return new Promise<ResultsPage>((resolve, reject) => {\n getUrl(url, controller)\n .then((response: WebResponse) => {\n resolve({\n results: response.json.results,\n next: response.json.next,\n });\n })\n .catch(error => reject(error));\n });\n};\n\nexport const fetchResults = async (url: string): Promise<any[]> => {\n if (!url) {\n return new Promise<any[]>(resolve => resolve([]));\n }\n\n let results: any[] = [];\n let pageUrl = url;\n while (pageUrl) {\n const resultsPage = await fetchResultsPage(pageUrl);\n if (resultsPage.results) {\n results = results.concat(resultsPage.results);\n }\n pageUrl = resultsPage.next;\n }\n return results;\n};\n\nexport const getAssetPage = (url: string): Promise<AssetPage> => {\n return new Promise<AssetPage>((resolve, reject) => {\n getUrl(url)\n .then((response: WebResponse) => {\n resolve({\n assets: response.json.results,\n next: response.json.next,\n });\n })\n .catch(error => reject(error));\n });\n};\n\nexport const getAssets = async (url: string): Promise<Asset[]> => {\n if (!url) {\n return new Promise<Asset[]>(resolve => resolve([]));\n }\n\n let assets: Asset[] = [];\n let pageUrl = url;\n while (pageUrl) {\n const assetPage = await getAssetPage(pageUrl);\n assets = assets.concat(assetPage.assets);\n pageUrl = assetPage.next;\n }\n return assets;\n};\n\nexport interface WebResponse {\n json: any;\n body?: string;\n status: number;\n url?: string;\n headers: Headers;\n controller?: AbortController;\n}\n\nexport const postUrl = (\n url: string,\n payload: any,\n headers: any = {},\n contentType = null\n): Promise<WebResponse> => {\n const fetchHeaders = getHeaders(headers);\n\n if (contentType) {\n fetchHeaders['Content-Type'] = contentType;\n }\n\n const options = {\n method: 'POST',\n headers: fetchHeaders,\n body: payload,\n };\n\n return new Promise<WebResponse>((resolve, reject) => {\n fetch(url, options)\n .then(async response => {\n response.text().then((body: string) => {\n let json = {};\n try {\n json = JSON.parse(body);\n // eslint-disable-next-line no-empty\n } catch (err) {}\n resolve({\n body,\n json,\n headers: response.headers,\n status: response.status,\n });\n });\n })\n .catch(error => {\n reject(error);\n });\n });\n};\n\nexport const postJSON = (url: string, payload: any): Promise<WebResponse> => {\n return postUrl(url, JSON.stringify(payload), false, 'application/json');\n};\n\nexport const postFormData = (\n url: string,\n formData: FormData\n): Promise<WebResponse> => {\n return new Promise<WebResponse>((resolve, reject) => {\n postUrl(url, formData, true)\n .then(response => {\n if (response.status >= 200 && response.status < 300) {\n if (response.json.status === 'success' || response.status === 201) {\n resolve(response);\n } else {\n reject({ errors: response.json.errors });\n }\n }\n reject('Server failure');\n })\n .catch(err => {\n reject(err);\n });\n });\n};\n\nexport const postForm = (\n url: string,\n payload: any | FormData\n): Promise<WebResponse> => {\n const formData = new FormData();\n Object.keys(payload).forEach((key: string) => {\n formData.append(key, payload[key]);\n });\n return postFormData(url, formData);\n};\n\n/**\n */\nexport const renderIf =\n (predicate: boolean | any) =>\n (then: () => TemplateResult, otherwise?: () => TemplateResult) => {\n return predicate ? then() : otherwise ? otherwise() : html``;\n };\n\nexport const hexToRgb = (hex: string): { r: number; g: number; b: number } => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result\n ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n }\n : null;\n};\n\nexport const getElementOffset = (\n ele: HTMLElement\n): {\n top: number;\n left: number;\n bottom: number;\n right: number;\n width: number;\n height: number;\n} => {\n const rect = ele.getBoundingClientRect();\n const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n return {\n top: rect.top + scrollTop,\n left: rect.left + scrollLeft,\n bottom: rect.top + rect.height,\n right: rect.left + rect.width,\n width: rect.width,\n height: rect.height,\n };\n};\n\nexport const plural = (count: number, singular: string, plural: string) => {\n return count === 1 ? singular : plural;\n};\n\nexport const range = (start: number, end: number) =>\n Array.from({ length: end - start }, (v: number, k: number) => k + start);\n\nexport const fillTemplate = (\n template: string,\n replacements: { [key: string]: string | number }\n): TemplateResult => {\n for (const key in replacements) {\n const className = key + '-replaced';\n replacements[\n key\n ] = `<span class=\"${className}\">${replacements[key]}</span>`;\n }\n\n const templateDiv = document.createElement('div');\n // templateDiv.innerHTML = dynamicTemplate(template, replacements);\n return html` ${templateDiv} `;\n};\n\n/*!\n * Serialize all form data into a query string\n * (c) 2018 Chris Ferdinandi, MIT License, https://gomakethings.com\n * @param {Node} form The form to serialize\n * @return {String} The serialized form data\n */\nexport const serialize = function (form: any) {\n // Setup our serialized data\n const serialized = [];\n\n // Loop through each field in the form\n for (let i = 0; i < form.elements.length; i++) {\n const field = form.elements[i];\n\n // Don't serialize fields without a name, submits, buttons, file and reset inputs, and disabled fields\n if (\n !field.name ||\n field.disabled ||\n field.type === 'file' ||\n field.type === 'reset' ||\n field.type === 'submit' ||\n field.type === 'button'\n )\n continue;\n\n // If a multi-select, get all selections\n if (field.type === 'select-multiple') {\n for (let n = 0; n < field.options.length; n++) {\n if (!field.options[n].selected) continue;\n serialized.push(\n encodeURIComponent(field.name) +\n '=' +\n encodeURIComponent(field.options[n].value)\n );\n }\n }\n\n // Convert field data to a query string\n else if (\n (field.type !== 'checkbox' && field.type !== 'radio') ||\n field.checked\n ) {\n serialized.push(\n encodeURIComponent(field.name) + '=' + encodeURIComponent(field.value)\n );\n }\n }\n return serialized.join('&');\n};\n\nexport const getScrollParent = (node: any): any => {\n const parent = node.parentNode || node.host;\n if (parent) {\n const isElement = parent instanceof HTMLElement;\n const overflowY = isElement && window.getComputedStyle(parent).overflowY;\n const isScrollable =\n overflowY &&\n !(overflowY.includes('hidden') || overflowY.includes('visible'));\n\n if (!parent) {\n return null;\n } else if (isScrollable && parent.scrollHeight >= parent.clientHeight) {\n return parent;\n }\n\n return getScrollParent(parent);\n }\n return null;\n};\n\nexport const isElementVisible = (el: any, holder: any) => {\n holder = holder || document.body;\n const { top, bottom } = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n\n return top <= holderRect.top\n ? bottom > holderRect.top\n : bottom < holderRect.bottom;\n};\n\nconst HOUR = 3600;\nconst DAY = HOUR * 24;\nconst MONTH = DAY * 30;\n\nexport class Stubbable {\n public getCurrentDate() {\n return new Date();\n }\n}\n\nexport const stubbable = new Stubbable();\n\nexport const timeSince = (\n date: Date,\n options: { compareDate?: Date; hideRecentText?: boolean; suffix?: string } = {\n suffix: '',\n }\n) => {\n const { compareDate, hideRecentText, suffix } = options;\n const now = compareDate || stubbable.getCurrentDate();\n const secondsPast = Math.floor((now.getTime() - date.getTime()) / 1000);\n\n if (secondsPast < 60) {\n if (compareDate) {\n return secondsPast + 's' + suffix;\n }\n\n if (!hideRecentText && suffix) {\n return suffix;\n }\n return 'just now';\n }\n\n if (secondsPast < HOUR) {\n return Math.round(secondsPast / 60) + 'm' + suffix;\n }\n\n if (secondsPast <= DAY) {\n return Math.round(secondsPast / HOUR) + 'h' + suffix;\n }\n\n if (secondsPast <= MONTH) {\n return Math.round(secondsPast / DAY) + 'd' + suffix;\n }\n\n if (secondsPast < MONTH * 6) {\n return Math.round(secondsPast / MONTH) + 'mth' + suffix;\n } else {\n const day = date.getDate();\n const month = date\n .toDateString()\n .match(/ [a-zA-Z]*/)[0]\n .replace(' ', '');\n const year =\n date.getFullYear() == now.getFullYear() ? '' : ' ' + date.getFullYear();\n return day + ' ' + month + year;\n }\n};\n\nexport const isDate = (value: string): boolean => {\n if (toString.call(value) === '[object Date]') {\n return true;\n }\n if (typeof value.replace === 'function') {\n value.replace(/^\\s+|\\s+$/gm, '');\n }\n\n // value = value.split(\"+\")[0];\n return DATE_FORMAT.test(value);\n};\n\nexport const debounce = (fn: any, millis: number, immediate = false) => {\n let timeout: any;\n return function (...args: any) {\n const context = this;\n const later = function () {\n timeout = null;\n if (!immediate) {\n fn.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, millis);\n if (callNow) {\n fn.apply(context, args);\n }\n };\n};\n\nexport const throttle = (fn: any, millis: number) => {\n let ready = true;\n return function (...args: any) {\n const context = this;\n if (!ready) {\n return;\n }\n\n ready = false;\n fn.apply(context, args);\n setTimeout(() => {\n ready = true;\n }, millis);\n };\n};\n\nexport interface NamedObject {\n name: string;\n}\n\nexport const truncate = (input: string, max: number): string => {\n if (input.length > max) {\n return input.substring(0, max) + '...';\n }\n\n return input;\n};\n\nexport const oxford = (items: any[], joiner = 'and'): any => {\n if (items.length === 1) {\n return items[0];\n }\n\n if (items.length === 2) {\n // TemplateResults get a different treatment\n if (items[0].type === 'html') {\n return html`${items[0]} ${joiner} ${items[1]}`;\n }\n return items.join(' ' + joiner + ' ');\n }\n\n // TemplateResults get a different treatment\n if (items[0].type === 'html') {\n return items.map((tr: TemplateResult, idx: number) => {\n if (idx < items.length - 1) {\n return html`${tr}, `;\n }\n return html`${joiner} ${tr}`;\n });\n }\n\n return items.join(', ') + joiner + items[items.length - 1];\n};\n\nexport const oxfordFn = (\n items: any[],\n fn: (item: any) => any,\n joiner = 'and'\n): any => {\n return oxford(items.map(fn), joiner);\n};\n\nexport const oxfordNamed = (items: NamedObject[], joiner = 'and'): any => {\n return oxfordFn(items, (value: any) => value.name, joiner);\n};\n\nexport const getDialog = (button: Button): Dialog => {\n return (button.getRootNode() as ShadowRoot).host as Dialog;\n};\n\nexport const setCookie = (name: string, value: any, path = undefined) => {\n if (!path) {\n // default path is the first word in the url\n const url = document.location.pathname;\n path = url.substring(0, url.indexOf('/', 1));\n }\n const now = new Date();\n now.setTime(now.getTime() + 60 * 1000 * 60 * 24 * 30);\n document.cookie = `${name}=${value};expires=${now.toUTCString()};path=${path}`;\n};\n\nexport const getCookie = (name: string) => {\n let cookieValue = null;\n if (document.cookie && document.cookie != '') {\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].trim();\n // Does this cookie string begin with the name we want?\n if (cookie.substring(0, name.length + 1) == name + '=') {\n cookieValue = decodeURIComponent(cookie.substring(name.length + 1));\n break;\n }\n }\n }\n return cookieValue;\n};\n\nexport const getCookieBoolean = (name: string) => {\n return (getCookie(name) || '') === 'true';\n};\n\nexport enum COOKIE_KEYS {\n MENU_COLLAPSED = 'menu-collapsed',\n TICKET_SHOW_DETAILS = 'tickets.show-details',\n}\n\nexport const capitalize = ([first, ...rest], locale = navigator.language) =>\n first === undefined ? '' : first.toLocaleUpperCase(locale) + rest.join('');\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-this-alias */\nimport { html, TemplateResult } from 'lit-html';\nimport { Button } from '../button/Button';\nimport { Dialog } from '../dialog/Dialog';\nimport { ContactField, Ticket } from '../interfaces';\n\nexport type Asset = KeyedAsset & Ticket & ContactField;\n\nexport const DATE_FORMAT =\n /(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))/;\n\ninterface KeyedAsset {\n key?: string;\n}\n\ninterface AssetPage {\n assets: Asset[];\n next: string;\n}\n\nexport interface ResultsPage {\n results: any[];\n next: string;\n}\n/** Get the value for a named cookie */\nexport const getHTTPCookie = (name: string): string => {\n for (const cookie of document.cookie.split(';')) {\n const idx = cookie.indexOf('=');\n let key = cookie.substr(0, idx);\n let value = cookie.substr(idx + 1);\n\n // no spaces allowed\n key = key.trim();\n value = value.trim();\n\n if (key === name) {\n return value;\n }\n }\n return null;\n};\n\nexport const getHeaders = (headers: any = {}) => {\n const csrf = getHTTPCookie('csrftoken');\n const fetchHeaders: any = csrf ? { 'X-CSRFToken': csrf } : {};\n\n // mark us as ajax\n fetchHeaders['X-Requested-With'] = 'XMLHttpRequest';\n\n Object.keys(headers).forEach(key => {\n fetchHeaders[key] = headers[key];\n });\n\n return fetchHeaders;\n};\n\nexport const getUrl = (\n url: string,\n controller: AbortController = null,\n headers: { [key: string]: string } = {}\n): Promise<WebResponse> => {\n return new Promise<WebResponse>((resolve, reject) => {\n const options = {\n method: 'GET',\n headers: getHeaders(headers),\n };\n\n if (controller) {\n options['signal'] = controller.signal;\n }\n\n fetch(url, options)\n .then(response => {\n response.text().then((body: string) => {\n let json = {};\n try {\n json = JSON.parse(body);\n // eslint-disable-next-line no-empty\n } catch (err) {}\n resolve({\n controller,\n body,\n json,\n headers: response.headers,\n status: response.status,\n });\n });\n })\n .catch(error => {\n reject(error);\n });\n });\n};\n\nexport type ClassMap = {\n [className: string]: boolean;\n};\n\nexport const getClasses = (map: ClassMap): string => {\n const classNames: string[] = [];\n Object.keys(map).forEach((className: string) => {\n if (map[className]) {\n classNames.push(className);\n }\n });\n\n let result = classNames.join(' ');\n if (result.trim().length > 0) {\n result = ' ' + result;\n }\n return result;\n};\n\nexport const fetchResultsPage = (\n url: string,\n controller: AbortController = null\n): Promise<ResultsPage> => {\n return new Promise<ResultsPage>((resolve, reject) => {\n getUrl(url, controller)\n .then((response: WebResponse) => {\n resolve({\n results: response.json.results,\n next: response.json.next,\n });\n })\n .catch(error => reject(error));\n });\n};\n\nexport const fetchResults = async (url: string): Promise<any[]> => {\n if (!url) {\n return new Promise<any[]>(resolve => resolve([]));\n }\n\n let results: any[] = [];\n let pageUrl = url;\n while (pageUrl) {\n const resultsPage = await fetchResultsPage(pageUrl);\n if (resultsPage.results) {\n results = results.concat(resultsPage.results);\n }\n pageUrl = resultsPage.next;\n }\n return results;\n};\n\nexport const getAssetPage = (url: string): Promise<AssetPage> => {\n return new Promise<AssetPage>((resolve, reject) => {\n getUrl(url)\n .then((response: WebResponse) => {\n resolve({\n assets: response.json.results,\n next: response.json.next,\n });\n })\n .catch(error => reject(error));\n });\n};\n\nexport const getAssets = async (url: string): Promise<Asset[]> => {\n if (!url) {\n return new Promise<Asset[]>(resolve => resolve([]));\n }\n\n let assets: Asset[] = [];\n let pageUrl = url;\n while (pageUrl) {\n const assetPage = await getAssetPage(pageUrl);\n assets = assets.concat(assetPage.assets);\n pageUrl = assetPage.next;\n }\n return assets;\n};\n\nexport interface WebResponse {\n json: any;\n body?: string;\n status: number;\n url?: string;\n headers: Headers;\n controller?: AbortController;\n}\n\nexport const postUrl = (\n url: string,\n payload: any,\n headers: any = {},\n contentType = null\n): Promise<WebResponse> => {\n const fetchHeaders = getHeaders(headers);\n\n if (contentType) {\n fetchHeaders['Content-Type'] = contentType;\n }\n\n const options = {\n method: 'POST',\n headers: fetchHeaders,\n body: payload,\n };\n\n return new Promise<WebResponse>((resolve, reject) => {\n fetch(url, options)\n .then(async response => {\n response.text().then((body: string) => {\n let json = {};\n try {\n json = JSON.parse(body);\n // eslint-disable-next-line no-empty\n } catch (err) {}\n resolve({\n body,\n json,\n headers: response.headers,\n status: response.status,\n });\n });\n })\n .catch(error => {\n reject(error);\n });\n });\n};\n\nexport const postJSON = (url: string, payload: any): Promise<WebResponse> => {\n return postUrl(url, JSON.stringify(payload), false, 'application/json');\n};\n\nexport const postFormData = (\n url: string,\n formData: FormData\n): Promise<WebResponse> => {\n return new Promise<WebResponse>((resolve, reject) => {\n postUrl(url, formData, true)\n .then(response => {\n if (response.status >= 200 && response.status < 300) {\n resolve(response);\n }\n reject('Server failure');\n })\n .catch(err => {\n reject(err);\n });\n });\n};\n\nexport const postForm = (\n url: string,\n payload: any | FormData\n): Promise<WebResponse> => {\n const formData = new FormData();\n Object.keys(payload).forEach((key: string) => {\n formData.append(key, payload[key]);\n });\n return postFormData(url, formData);\n};\n\n/**\n */\nexport const renderIf =\n (predicate: boolean | any) =>\n (then: () => TemplateResult, otherwise?: () => TemplateResult) => {\n return predicate ? then() : otherwise ? otherwise() : html``;\n };\n\nexport const hexToRgb = (hex: string): { r: number; g: number; b: number } => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result\n ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n }\n : null;\n};\n\nexport const getElementOffset = (\n ele: HTMLElement\n): {\n top: number;\n left: number;\n bottom: number;\n right: number;\n width: number;\n height: number;\n} => {\n const rect = ele.getBoundingClientRect();\n const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n return {\n top: rect.top + scrollTop,\n left: rect.left + scrollLeft,\n bottom: rect.top + rect.height,\n right: rect.left + rect.width,\n width: rect.width,\n height: rect.height,\n };\n};\n\nexport const plural = (count: number, singular: string, plural: string) => {\n return count === 1 ? singular : plural;\n};\n\nexport const range = (start: number, end: number) =>\n Array.from({ length: end - start }, (v: number, k: number) => k + start);\n\nexport const fillTemplate = (\n template: string,\n replacements: { [key: string]: string | number }\n): TemplateResult => {\n for (const key in replacements) {\n const className = key + '-replaced';\n replacements[\n key\n ] = `<span class=\"${className}\">${replacements[key]}</span>`;\n }\n\n const templateDiv = document.createElement('div');\n // templateDiv.innerHTML = dynamicTemplate(template, replacements);\n return html` ${templateDiv} `;\n};\n\n/*!\n * Serialize all form data into a query string\n * (c) 2018 Chris Ferdinandi, MIT License, https://gomakethings.com\n * @param {Node} form The form to serialize\n * @return {String} The serialized form data\n */\nexport const serialize = function (form: any) {\n // Setup our serialized data\n const serialized = [];\n\n // Loop through each field in the form\n for (let i = 0; i < form.elements.length; i++) {\n const field = form.elements[i];\n\n // Don't serialize fields without a name, submits, buttons, file and reset inputs, and disabled fields\n if (\n !field.name ||\n field.disabled ||\n field.type === 'file' ||\n field.type === 'reset' ||\n field.type === 'submit' ||\n field.type === 'button'\n )\n continue;\n\n // If a multi-select, get all selections\n if (field.type === 'select-multiple') {\n for (let n = 0; n < field.options.length; n++) {\n if (!field.options[n].selected) continue;\n serialized.push(\n encodeURIComponent(field.name) +\n '=' +\n encodeURIComponent(field.options[n].value)\n );\n }\n }\n\n // Convert field data to a query string\n else if (\n (field.type !== 'checkbox' && field.type !== 'radio') ||\n field.checked\n ) {\n serialized.push(\n encodeURIComponent(field.name) + '=' + encodeURIComponent(field.value)\n );\n }\n }\n return serialized.join('&');\n};\n\nexport const getScrollParent = (node: any): any => {\n const parent = node.parentNode || node.host;\n if (parent) {\n const isElement = parent instanceof HTMLElement;\n const overflowY = isElement && window.getComputedStyle(parent).overflowY;\n const isScrollable =\n overflowY &&\n !(overflowY.includes('hidden') || overflowY.includes('visible'));\n\n if (!parent) {\n return null;\n } else if (isScrollable && parent.scrollHeight >= parent.clientHeight) {\n return parent;\n }\n\n return getScrollParent(parent);\n }\n return null;\n};\n\nexport const isElementVisible = (el: any, holder: any) => {\n holder = holder || document.body;\n const { top, bottom } = el.getBoundingClientRect();\n const holderRect = holder.getBoundingClientRect();\n\n return top <= holderRect.top\n ? bottom > holderRect.top\n : bottom < holderRect.bottom;\n};\n\nconst HOUR = 3600;\nconst DAY = HOUR * 24;\nconst MONTH = DAY * 30;\n\nexport class Stubbable {\n public getCurrentDate() {\n return new Date();\n }\n}\n\nexport const stubbable = new Stubbable();\n\nexport const timeSince = (\n date: Date,\n options: { compareDate?: Date; hideRecentText?: boolean; suffix?: string } = {\n suffix: '',\n }\n) => {\n const { compareDate, hideRecentText, suffix } = options;\n const now = compareDate || stubbable.getCurrentDate();\n const secondsPast = Math.floor((now.getTime() - date.getTime()) / 1000);\n\n if (secondsPast < 60) {\n if (compareDate) {\n return secondsPast + 's' + suffix;\n }\n\n if (!hideRecentText && suffix) {\n return suffix;\n }\n return 'just now';\n }\n\n if (secondsPast < HOUR) {\n return Math.round(secondsPast / 60) + 'm' + suffix;\n }\n\n if (secondsPast <= DAY) {\n return Math.round(secondsPast / HOUR) + 'h' + suffix;\n }\n\n if (secondsPast <= MONTH) {\n return Math.round(secondsPast / DAY) + 'd' + suffix;\n }\n\n if (secondsPast < MONTH * 6) {\n return Math.round(secondsPast / MONTH) + 'mth' + suffix;\n } else {\n const day = date.getDate();\n const month = date\n .toDateString()\n .match(/ [a-zA-Z]*/)[0]\n .replace(' ', '');\n const year =\n date.getFullYear() == now.getFullYear() ? '' : ' ' + date.getFullYear();\n return day + ' ' + month + year;\n }\n};\n\nexport const isDate = (value: string): boolean => {\n if (toString.call(value) === '[object Date]') {\n return true;\n }\n if (typeof value.replace === 'function') {\n value.replace(/^\\s+|\\s+$/gm, '');\n }\n\n // value = value.split(\"+\")[0];\n return DATE_FORMAT.test(value);\n};\n\nexport const debounce = (fn: any, millis: number, immediate = false) => {\n let timeout: any;\n return function (...args: any) {\n const context = this;\n const later = function () {\n timeout = null;\n if (!immediate) {\n fn.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, millis);\n if (callNow) {\n fn.apply(context, args);\n }\n };\n};\n\nexport const throttle = (fn: any, millis: number) => {\n let ready = true;\n return function (...args: any) {\n const context = this;\n if (!ready) {\n return;\n }\n\n ready = false;\n fn.apply(context, args);\n setTimeout(() => {\n ready = true;\n }, millis);\n };\n};\n\nexport interface NamedObject {\n name: string;\n}\n\nexport const truncate = (input: string, max: number): string => {\n if (input.length > max) {\n return input.substring(0, max) + '...';\n }\n\n return input;\n};\n\nexport const oxford = (items: any[], joiner = 'and'): any => {\n if (items.length === 1) {\n return items[0];\n }\n\n if (items.length === 2) {\n // TemplateResults get a different treatment\n if (items[0].type === 'html') {\n return html`${items[0]} ${joiner} ${items[1]}`;\n }\n return items.join(' ' + joiner + ' ');\n }\n\n // TemplateResults get a different treatment\n if (items[0].type === 'html') {\n return items.map((tr: TemplateResult, idx: number) => {\n if (idx < items.length - 1) {\n return html`${tr}, `;\n }\n return html`${joiner} ${tr}`;\n });\n }\n\n return items.join(', ') + joiner + items[items.length - 1];\n};\n\nexport const oxfordFn = (\n items: any[],\n fn: (item: any) => any,\n joiner = 'and'\n): any => {\n return oxford(items.map(fn), joiner);\n};\n\nexport const oxfordNamed = (items: NamedObject[], joiner = 'and'): any => {\n return oxfordFn(items, (value: any) => value.name, joiner);\n};\n\nexport const getDialog = (button: Button): Dialog => {\n return (button.getRootNode() as ShadowRoot).host as Dialog;\n};\n\nexport const setCookie = (name: string, value: any, path = undefined) => {\n if (!path) {\n // default path is the first word in the url\n const url = document.location.pathname;\n path = url.substring(0, url.indexOf('/', 1));\n }\n const now = new Date();\n now.setTime(now.getTime() + 60 * 1000 * 60 * 24 * 30);\n document.cookie = `${name}=${value};expires=${now.toUTCString()};path=${path}`;\n};\n\nexport const getCookie = (name: string) => {\n let cookieValue = null;\n if (document.cookie && document.cookie != '') {\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].trim();\n // Does this cookie string begin with the name we want?\n if (cookie.substring(0, name.length + 1) == name + '=') {\n cookieValue = decodeURIComponent(cookie.substring(name.length + 1));\n break;\n }\n }\n }\n return cookieValue;\n};\n\nexport const getCookieBoolean = (name: string) => {\n return (getCookie(name) || '') === 'true';\n};\n\nexport enum COOKIE_KEYS {\n MENU_COLLAPSED = 'menu-collapsed',\n TICKET_SHOW_DETAILS = 'tickets.show-details',\n}\n\nexport const capitalize = ([first, ...rest], locale = navigator.language) =>\n first === undefined ? '' : first.toLocaleUpperCase(locale) + rest.join('');\n"]}
|
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { LitElement, html, css } from 'lit';
|
|
3
|
-
import { property } from 'lit/decorators';
|
|
3
|
+
import { property } from 'lit/decorators.js';
|
|
4
4
|
import { Icon } from '.';
|
|
5
5
|
import { getClasses } from '../utils';
|
|
6
6
|
// for cache busting, increase whenever the icon set changes
|
|
7
7
|
const ICON_VERSION = 15;
|
|
8
8
|
export class VectorIcon extends LitElement {
|
|
9
|
-
constructor() {
|
|
10
|
-
super();
|
|
11
|
-
this.size = 1;
|
|
12
|
-
this.animationDuration = 200;
|
|
13
|
-
this.src = '';
|
|
14
|
-
this.steps = 2;
|
|
15
|
-
this.easing = 'cubic-bezier(0.68, -0.55, 0.265, 1.55)';
|
|
16
|
-
}
|
|
17
9
|
static get styles() {
|
|
18
10
|
return css `
|
|
19
11
|
:host {
|
|
@@ -92,6 +84,14 @@ export class VectorIcon extends LitElement {
|
|
|
92
84
|
}
|
|
93
85
|
`;
|
|
94
86
|
}
|
|
87
|
+
constructor() {
|
|
88
|
+
super();
|
|
89
|
+
this.size = 1;
|
|
90
|
+
this.animationDuration = 200;
|
|
91
|
+
this.src = '';
|
|
92
|
+
this.steps = 2;
|
|
93
|
+
this.easing = 'cubic-bezier(0.68, -0.55, 0.265, 1.55)';
|
|
94
|
+
}
|
|
95
95
|
firstUpdated(changes) {
|
|
96
96
|
super.firstUpdated(changes);
|
|
97
97
|
if (changes.has('animateChange')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VectorIcon.js","sourceRoot":"","sources":["../../../src/vectoricon/VectorIcon.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAkB,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"VectorIcon.js","sourceRoot":"","sources":["../../../src/vectoricon/VectorIcon.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, TemplateResult, html, css } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Icon } from '.';\n\nimport { getClasses } from '../utils';\n\n// for cache busting, increase whenever the icon set changes\nconst ICON_VERSION = 15;\n\nexport class VectorIcon extends LitElement {\n @property({ type: String })\n name: string;\n\n @property({ type: String })\n prefix: string;\n\n // same as name but without implicit coloring\n @property({ type: String })\n id: string;\n\n @property({ type: Number })\n size = 1;\n\n @property({ type: Boolean })\n clickable: boolean;\n\n @property({ type: Boolean })\n circled: boolean;\n\n @property({ type: String })\n animateChange: string;\n\n @property({ type: String })\n animateClick: string;\n\n @property({ type: Number })\n animationDuration = 200;\n\n @property({ type: String })\n src = '';\n\n @property({ type: Number, attribute: false })\n steps = 2;\n\n @property({ type: Number, attribute: false })\n animationStep: number;\n\n @property({ type: String })\n easing = 'cubic-bezier(0.68, -0.55, 0.265, 1.55)';\n\n static get styles() {\n return css`\n :host {\n margin: auto;\n }\n\n .sheet {\n color: var(--icon-color);\n transform: scale(1);\n transition: fill 100ms ease-in-out,\n background 200ms cubic-bezier(0.68, -0.55, 0.265, 1.55),\n padding 200ms cubic-bezier(0.68, -0.55, 0.265, 1.55),\n margin 200ms cubic-bezier(0.68, -0.55, 0.265, 1.55);\n }\n\n .sheet.spin {\n transform: rotate(0deg);\n }\n\n .sheet.spin-1 {\n transform: rotate(180deg);\n }\n\n .sheet.spin-2 {\n transform: rotate(360deg);\n }\n\n .sheet.spin-3 {\n transform: rotate(0deg);\n transition-duration: 0ms !important;\n }\n\n .sheet.pulse {\n transform: scale(1);\n }\n\n .sheet.pulse-1 {\n transform: scale(1.2);\n }\n\n .clickable:hover {\n cursor: pointer;\n fill: var(--color-link-primary) !important;\n background: rgb(255, 255, 255);\n }\n\n .circled {\n background: rgb(240, 240, 240);\n padding: 0.15em;\n margin: -0.15em;\n box-shadow: var(--shadow);\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n border-radius: 999px;\n transition: background 200ms linear,\n transform 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55),\n padding 150ms linear, margin 150ms linear;\n }\n\n .wrapper.clickable {\n transform: scale(1);\n }\n\n .wrapper.clickable:hover {\n --icon-circle-size: 0.35em;\n --icon-background: var(--icon-color-circle-hover);\n }\n\n .wrapper.clickable {\n padding: var(--icon-circle-size);\n margin: calc(-1 * var(--icon-circle-size));\n background: var(--icon-background);\n }\n `;\n }\n\n constructor() {\n super();\n }\n\n private lastName: string;\n\n public firstUpdated(changes: Map<string, any>) {\n super.firstUpdated(changes);\n if (changes.has('animateChange')) {\n // set our default duration if we need one\n if (!changes.has('animationDuration')) {\n this.animationDuration = this.steps * this.animationDuration;\n }\n\n if (this.animateChange === 'spin') {\n this.steps = 3;\n this.animationDuration = 400;\n this.easing = 'linear';\n }\n }\n }\n\n public handleClicked() {\n if (this.animateClick) {\n this.animationStep = 1;\n }\n }\n\n public updated(changes: Map<string, any>) {\n super.updated(changes);\n\n if (changes.has('animationStep')) {\n // if we are halfway through, change the icon\n if (this.lastName && this.animationStep >= this.steps / 2) {\n this.lastName = null;\n this.requestUpdate();\n }\n\n setTimeout(() => {\n if (this.animationStep > 0 && this.animationStep < this.steps) {\n this.animationStep++;\n } else {\n this.animationStep = 0;\n }\n }, this.animationDuration / this.steps);\n }\n\n if (changes.has('name') && this.animateChange) {\n this.lastName = changes.get('name');\n\n // our name changed, lets animate it\n if (this.lastName && this.animateChange) {\n this.animationStep = 1;\n }\n }\n }\n\n public render(): TemplateResult {\n // let icon name mappings take precedence\n let name = this.lastName || this.name;\n name = Icon[name.replace('icon.', '')] || name;\n\n // referencing icons by id is explicit\n if (!name) {\n name = this.id;\n }\n\n return html`\n <div\n @click=${this.handleClicked}\n class=\"wrapper ${getClasses({\n clickable: this.clickable,\n circled: this.circled,\n animate: !!this.animateChange || !!this.animateClick,\n })}\"\n >\n <svg\n style=\"height:${this.size}em;width:${this\n .size}em;transition:transform ${this.animationDuration /\n this.steps}ms\n ${this.easing}\"\n class=\"${getClasses({\n sheet: this.src === '',\n [this.animateChange]: !!this.animateChange,\n [this.animateChange + '-' + this.animationStep]:\n this.animationStep > 0,\n [this.animateClick]: !!this.animateClick,\n [this.animateClick + '-' + this.animationStep]:\n this.animationStep > 0,\n })}\"\n >\n <use\n href=\"${this.src\n ? this.src\n : `${\n this.prefix || (window as any).static_url || '/static/'\n }svg/index.svg?v=${ICON_VERSION}#${name}`}\"\n />\n </svg>\n </div>\n `;\n }\n}\n"]}
|
package/out-tsc/temba-modules.js
CHANGED
|
@@ -40,6 +40,7 @@ import { ContactNameFetch } from './src/contacts/ContactNameFetch';
|
|
|
40
40
|
import DatePicker from './src/datepicker/DatePicker';
|
|
41
41
|
import { FieldManager } from './src/fields/FieldManager';
|
|
42
42
|
import { SortableList } from './src/list/SortableList';
|
|
43
|
+
import { ContentMenu } from './src/list/ContentMenu';
|
|
43
44
|
import { TembaDate } from './src/date/TembaDate';
|
|
44
45
|
export function addCustomElement(name, comp) {
|
|
45
46
|
if (!window.customElements.get(name)) {
|
|
@@ -66,6 +67,7 @@ addCustomElement('temba-contact-field', ContactFieldEditor);
|
|
|
66
67
|
addCustomElement('temba-contact-fields', ContactFields);
|
|
67
68
|
addCustomElement('temba-field-manager', FieldManager);
|
|
68
69
|
addCustomElement('temba-urn', ContactUrn);
|
|
70
|
+
addCustomElement('temba-content-menu', ContentMenu);
|
|
69
71
|
addCustomElement('temba-field', FormField);
|
|
70
72
|
addCustomElement('temba-dialog', Dialog);
|
|
71
73
|
addCustomElement('temba-modax', Modax);
|
|
@@ -89,4 +91,5 @@ addCustomElement('temba-contact-badges', ContactBadges);
|
|
|
89
91
|
addCustomElement('temba-contact-pending', ContactPending);
|
|
90
92
|
addCustomElement('temba-contact-tickets', ContactTickets);
|
|
91
93
|
addCustomElement('temba-slider', TembaSlider);
|
|
94
|
+
addCustomElement('temba-content-menu', ContentMenu);
|
|
92
95
|
//# sourceMappingURL=temba-modules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temba-modules.js","sourceRoot":"","sources":["../temba-modules.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"temba-modules.js","sourceRoot":"","sources":["../temba-modules.ts"],"names":[],"mappings":"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","sourcesContent":["import { Checkbox } from './src/checkbox/Checkbox';\nimport { TextInput } from './src/textinput/TextInput';\nimport { Store } from './src/store/Store';\nimport { Select } from './src/select/Select';\nimport { Completion } from './src/completion/Completion';\nimport { Modax } from './src/dialog/Modax';\nimport { Dialog } from './src/dialog/Dialog';\nimport { Button } from './src/button/Button';\nimport { FormField } from './src/formfield/FormField';\nimport { Loading } from './src/loading/Loading';\nimport { CharCount } from './src/charcount/CharCount';\nimport { Options } from './src/options/Options';\nimport { ContactChat } from './src/contacts/ContactChat';\nimport { ContactHistory } from './src/contacts/ContactHistory';\nimport { TicketList } from './src/list/TicketList';\nimport { ContactDetails } from './src/contacts/ContactDetails';\nimport { TembaList } from './src/list/TembaList';\nimport { ContactSearch } from './src/contactsearch/ContactSearch';\nimport { VectorIcon } from './src/vectoricon/VectorIcon';\nimport { Alert } from './src/alert/Alert';\nimport { Omnibox } from './src/omnibox/Omnibox';\nimport { Tip } from './src/tip/Tip';\nimport { TembaMenu } from './src/list/TembaMenu';\nimport { Anchor } from './src/anchor/Anchor';\nimport { Dropdown } from './src/dropdown/Dropdown';\nimport { TabPane } from './src/tabpane/TabPane';\nimport { Tab } from './src/tabpane/Tab';\nimport Label from './src/label/Label';\nimport { ContactName } from './src/contacts/ContactName';\nimport { ContactUrn } from './src/contacts/ContactUrn';\nimport { ContactFields } from './src/contacts/ContactFields';\nimport { ContactFieldEditor } from './src/contacts/ContactFieldEditor';\n\nimport { ContactBadges } from './src/contacts/ContactBadges';\nimport { ContactPending } from './src/contacts/ContactPending';\nimport { ContactTickets } from './src/contacts/ContactTickets';\nimport { TembaSlider } from './src/slider/TembaSlider';\nimport { RunList } from './src/list/RunList';\nimport { FlowStoreElement } from './src/flow/FlowStoreElement';\nimport { ContactNameFetch } from './src/contacts/ContactNameFetch';\nimport DatePicker from './src/datepicker/DatePicker';\nimport { FieldManager } from './src/fields/FieldManager';\nimport { SortableList } from './src/list/SortableList';\nimport { ContentMenu } from './src/list/ContentMenu';\nimport { TembaDate } from './src/date/TembaDate';\n\nexport function addCustomElement(name: string, comp: any) {\n if (!window.customElements.get(name)) {\n window.customElements.define(name, comp);\n }\n}\n\naddCustomElement('temba-anchor', Anchor);\naddCustomElement('temba-alert', Alert);\naddCustomElement('temba-store', Store);\naddCustomElement('temba-textinput', TextInput);\naddCustomElement('temba-datepicker', DatePicker);\naddCustomElement('temba-date', TembaDate);\naddCustomElement('temba-completion', Completion);\naddCustomElement('temba-checkbox', Checkbox);\naddCustomElement('temba-select', Select);\naddCustomElement('temba-options', Options);\naddCustomElement('temba-loading', Loading);\naddCustomElement('temba-button', Button);\naddCustomElement('temba-omnibox', Omnibox);\naddCustomElement('temba-tip', Tip);\naddCustomElement('temba-contact-name', ContactName);\naddCustomElement('temba-contact-name-fetch', ContactNameFetch);\naddCustomElement('temba-contact-field', ContactFieldEditor);\naddCustomElement('temba-contact-fields', ContactFields);\naddCustomElement('temba-field-manager', FieldManager);\naddCustomElement('temba-urn', ContactUrn);\naddCustomElement('temba-content-menu', ContentMenu);\n\naddCustomElement('temba-field', FormField);\naddCustomElement('temba-dialog', Dialog);\naddCustomElement('temba-modax', Modax);\naddCustomElement('temba-charcount', CharCount);\naddCustomElement('temba-contact-history', ContactHistory);\naddCustomElement('temba-contact-chat', ContactChat);\naddCustomElement('temba-contact-details', ContactDetails);\naddCustomElement('temba-ticket-list', TicketList);\naddCustomElement('temba-list', TembaList);\naddCustomElement('temba-sortable-list', SortableList);\naddCustomElement('temba-run-list', RunList);\naddCustomElement('temba-flow-details', FlowStoreElement);\naddCustomElement('temba-label', Label);\naddCustomElement('temba-menu', TembaMenu);\naddCustomElement('temba-contact-search', ContactSearch);\naddCustomElement('temba-icon', VectorIcon);\naddCustomElement('temba-dropdown', Dropdown);\naddCustomElement('temba-tabs', TabPane);\naddCustomElement('temba-tab', Tab);\naddCustomElement('temba-contact-badges', ContactBadges);\naddCustomElement('temba-contact-pending', ContactPending);\naddCustomElement('temba-contact-tickets', ContactTickets);\naddCustomElement('temba-slider', TembaSlider);\naddCustomElement('temba-content-menu', ContentMenu);\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { css, html } from 'lit';
|
|
3
|
-
import { customElement } from 'lit/decorators';
|
|
3
|
+
import { customElement } from 'lit/decorators.js';
|
|
4
4
|
import { RapidElement } from '../src/RapidElement';
|
|
5
5
|
let MouseHelper = class MouseHelper extends RapidElement {
|
|
6
6
|
static get styles() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MouseHelper.js","sourceRoot":"","sources":["../../test/MouseHelper.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MouseHelper.js","sourceRoot":"","sources":["../../test/MouseHelper.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGpC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,YAAY;IACnD,MAAM,KAAK,MAAM;QACf,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;KAgBT,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5D,CAAC;IAED,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC;IAEM,YAAY,CAAC,KAAiB;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAmB,CAAC;QAC5E,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3C,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAA,6BAA6B,CAAC;IAC3C,CAAC;CACF,CAAA;AAzCoB,WAAW;IAD/B,aAAa,CAAC,cAAc,CAAC;GACT,WAAW,CAyC/B;eAzCoB,WAAW","sourcesContent":["import { css, html, TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport { RapidElement } from '../src/RapidElement';\n\n@customElement('mouse-helper')\nexport default class MouseHelper extends RapidElement {\n static get styles() {\n return css`\n :host {\n position: absolute;\n }\n\n .pointer {\n position: absolute;\n width: 6px;\n height: 6px;\n z-index: 1000;\n background: rgba(0, 250, 0, 0.3);\n border-radius: 20px;\n margin-left: -3px;\n margin-top: -3px;\n pointer-events: none;\n }\n `;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.updateCursor = this.updateCursor.bind(this);\n document.addEventListener('mousemove', this.updateCursor);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n document.removeEventListener('mousemove', this.updateCursor);\n }\n\n public updateCursor(event: MouseEvent) {\n const pointer = this.shadowRoot.querySelector('.pointer') as HTMLDivElement;\n pointer.style.left = event.offsetX + 'px';\n pointer.style.top = event.offsetY + 'px';\n }\n\n public render(): TemplateResult {\n return html`<div class=\"pointer\"></div>`;\n }\n}\n"]}
|