@things-factory/auth-ui 8.0.46 → 8.0.47

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.
@@ -115,13 +115,14 @@ export class AuthCheckIn extends localize(i18next)(LitElement) {
115
115
  @property({ type: Object }) user: any
116
116
 
117
117
  @state() searchValue: string = ''
118
- @state() showDomainSearch: boolean = false
118
+ DOMAIN_SEARCH_LENGTH = 5
119
119
 
120
120
  private _applicationMeta?: { icon?: string; title?: string; description?: string }
121
121
  private redirectTo?: string
122
122
 
123
123
  render() {
124
124
  var { icon, title, description } = this.applicationMeta
125
+ const showDomainSearch = this.domains?.length >= this.DOMAIN_SEARCH_LENGTH
125
126
 
126
127
  return html`
127
128
  <div class="content md-typescale-display-medium">
@@ -137,7 +138,7 @@ export class AuthCheckIn extends localize(i18next)(LitElement) {
137
138
  ${html`
138
139
  <input
139
140
  search-input
140
- ?visible=${this.showDomainSearch}
141
+ ?visible=${showDomainSearch}
141
142
  type="text"
142
143
  placeholder=${i18next.t('label.search_domain')}
143
144
  .value=${this.searchValue}
@@ -148,9 +149,9 @@ export class AuthCheckIn extends localize(i18next)(LitElement) {
148
149
  ? html`
149
150
  <ul class="domains">
150
151
  ${this.domains.map(domain => {
151
- // config에 showDomainSearch 옵션이 켜져있으면 검색 필터링 처리
152
+ // 도메인이 5개 이상이면 검색 필터링 처리
152
153
  if (
153
- this.showDomainSearch &&
154
+ showDomainSearch &&
154
155
  this.searchValue &&
155
156
  !domain.name.toLowerCase().includes(this.searchValue.toLowerCase()) &&
156
157
  !domain.description.toLowerCase().includes(this.searchValue.toLowerCase())
@@ -191,14 +192,13 @@ export class AuthCheckIn extends localize(i18next)(LitElement) {
191
192
  `
192
193
  }
193
194
 
194
- async updated(changed) {
195
+ updated(changed) {
195
196
  if (changed.has('data')) {
196
197
  this.domains = this.data.domains
197
198
  this.user = this.data.user
198
199
  this.domainTypes = this.data.domainTypes
199
200
  this.redirectTo = this.data.redirectTo
200
201
 
201
- await this.fetchConfig()
202
202
  this.requestUpdate()
203
203
  }
204
204
  }
@@ -207,12 +207,6 @@ export class AuthCheckIn extends localize(i18next)(LitElement) {
207
207
  location.pathname = url
208
208
  }
209
209
 
210
- async fetchConfig() {
211
- const response = await fetch('/get-config')
212
- const data = await response.json()
213
- this.showDomainSearch = data.showDomainSearch || false
214
- }
215
-
216
210
  get applicationMeta() {
217
211
  if (!this._applicationMeta) {
218
212
  var iconLink: HTMLLinkElement | null = document.querySelector('link[rel="application-icon"]')
@@ -10,13 +10,12 @@ export declare class AuthCheckIn extends AuthCheckIn_base {
10
10
  domainTypes?: string[];
11
11
  user: any;
12
12
  searchValue: string;
13
- showDomainSearch: boolean;
13
+ DOMAIN_SEARCH_LENGTH: number;
14
14
  private _applicationMeta?;
15
15
  private redirectTo?;
16
16
  render(): import("lit-html").TemplateResult<1>;
17
- updated(changed: any): Promise<void>;
17
+ updated(changed: any): void;
18
18
  navigateToUrl(url: any): void;
19
- fetchConfig(): Promise<void>;
20
19
  get applicationMeta(): {
21
20
  icon?: string;
22
21
  title?: string;
@@ -13,11 +13,12 @@ let AuthCheckIn = class AuthCheckIn extends localize(i18next)(LitElement) {
13
13
  super(...arguments);
14
14
  this.domains = [];
15
15
  this.searchValue = '';
16
- this.showDomainSearch = false;
16
+ this.DOMAIN_SEARCH_LENGTH = 5;
17
17
  }
18
18
  render() {
19
- var _a;
19
+ var _a, _b;
20
20
  var { icon, title, description } = this.applicationMeta;
21
+ const showDomainSearch = ((_a = this.domains) === null || _a === void 0 ? void 0 : _a.length) >= this.DOMAIN_SEARCH_LENGTH;
21
22
  return html `
22
23
  <div class="content md-typescale-display-medium">
23
24
  <div class="wrap">
@@ -32,19 +33,19 @@ let AuthCheckIn = class AuthCheckIn extends localize(i18next)(LitElement) {
32
33
  ${html `
33
34
  <input
34
35
  search-input
35
- ?visible=${this.showDomainSearch}
36
+ ?visible=${showDomainSearch}
36
37
  type="text"
37
38
  placeholder=${i18next.t('label.search_domain')}
38
39
  .value=${this.searchValue}
39
40
  @input=${e => (this.searchValue = e.target.value)}
40
41
  />
41
42
  `}
42
- ${((_a = this.domains) === null || _a === void 0 ? void 0 : _a.length)
43
+ ${((_b = this.domains) === null || _b === void 0 ? void 0 : _b.length)
43
44
  ? html `
44
45
  <ul class="domains">
45
46
  ${this.domains.map(domain => {
46
- // config에 showDomainSearch 옵션이 켜져있으면 검색 필터링 처리
47
- if (this.showDomainSearch &&
47
+ // 도메인이 5개 이상이면 검색 필터링 처리
48
+ if (showDomainSearch &&
48
49
  this.searchValue &&
49
50
  !domain.name.toLowerCase().includes(this.searchValue.toLowerCase()) &&
50
51
  !domain.description.toLowerCase().includes(this.searchValue.toLowerCase())) {
@@ -81,24 +82,18 @@ let AuthCheckIn = class AuthCheckIn extends localize(i18next)(LitElement) {
81
82
  </div>
82
83
  `;
83
84
  }
84
- async updated(changed) {
85
+ updated(changed) {
85
86
  if (changed.has('data')) {
86
87
  this.domains = this.data.domains;
87
88
  this.user = this.data.user;
88
89
  this.domainTypes = this.data.domainTypes;
89
90
  this.redirectTo = this.data.redirectTo;
90
- await this.fetchConfig();
91
91
  this.requestUpdate();
92
92
  }
93
93
  }
94
94
  navigateToUrl(url) {
95
95
  location.pathname = url;
96
96
  }
97
- async fetchConfig() {
98
- const response = await fetch('/get-config');
99
- const data = await response.json();
100
- this.showDomainSearch = data.showDomainSearch || false;
101
- }
102
97
  get applicationMeta() {
103
98
  if (!this._applicationMeta) {
104
99
  var iconLink = document.querySelector('link[rel="application-icon"]');
@@ -227,10 +222,6 @@ __decorate([
227
222
  state(),
228
223
  __metadata("design:type", String)
229
224
  ], AuthCheckIn.prototype, "searchValue", void 0);
230
- __decorate([
231
- state(),
232
- __metadata("design:type", Boolean)
233
- ], AuthCheckIn.prototype, "showDomainSearch", void 0);
234
225
  AuthCheckIn = __decorate([
235
226
  customElement('auth-checkin')
236
227
  ], AuthCheckIn);
@@ -1 +1 @@
1
- {"version":3,"file":"checkin.js","sourceRoot":"","sources":["../../../client/entries/auth/checkin.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@material/web/button/elevated-button.js'\n\nimport '@operato/lottie-player'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { i18next, localize } from '@operato/i18n'\nimport { ScrollbarStyles } from '@operato/styles'\nimport { isSafari } from '@operato/utils'\n\nimport { AUTH_STYLE_SIGN } from '../../auth-style-sign'\n\n@customElement('auth-checkin')\nexport class AuthCheckIn extends localize(i18next)(LitElement) {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n margin: auto;\n background-color: var(--md-sys-color-primary);\n color: var(--md-sys-color-on-primary);\n height: 100vh;\n height: 100dvh;\n }\n\n .header {\n background-color: var(--md-sys-color-primary);\n color: var(--md-sys-color-on-primary);\n height: var(--checkin-header-height);\n }\n\n .content {\n flex: 1;\n overflow: auto;\n }\n\n .domains {\n margin: var(--spacing-large) 0;\n padding: 0;\n background-color: var(--md-sys-color-surface);\n color: var(--md-sys-color-on-surface);\n border-radius: var(--border-radius);\n border: var(--border-dim-color);\n list-style: none;\n }\n\n li {\n border-bottom: var(--border-dim-color);\n padding: var(--spacing-medium) var(--spacing-large);\n font-size: 18px;\n text-align: left;\n\n cursor: pointer;\n }\n\n li:hover {\n background-color: var(--md-sys-color-primary-container);\n color: var(--md-sys-color-on-primary-container);\n }\n\n li span {\n display: block;\n font: normal var(--fontsize-default) var(--theme-font);\n }\n\n li md-icon {\n float: right;\n margin: 10px 0 0 0;\n opacity: 0.5;\n }\n\n .button-container {\n text-align: center;\n }\n\n .button-container md-elevated-button {\n margin-left: var(--spacing-small);\n }\n\n input[search-input] {\n width: 250px;\n height: 35px;\n margin-top: 10px;\n border-radius: 5px;\n padding: 3px 10px;\n font-size: 17px;\n color: var(--md-sys-color-primary);\n background: var(--md-sys-color-surface);\n border: var(--border-dim-color);\n font-weight: 500;\n display: none;\n }\n\n input[search-input][visible] {\n display: inline-block;\n }\n\n @media (max-width: 450px) {\n .button-container md-elevated-button {\n width: 100%;\n margin: var(--spacing-medium) 0 0 0;\n }\n }\n `,\n AUTH_STYLE_SIGN\n ]\n\n @property({ type: Object }) data: any\n @property({ type: Array }) domains: any[] = []\n @property({ type: Array }) domainTypes?: string[]\n @property({ type: Object }) user: any\n\n @state() searchValue: string = ''\n @state() showDomainSearch: boolean = false\n\n private _applicationMeta?: { icon?: string; title?: string; description?: string }\n private redirectTo?: string\n\n render() {\n var { icon, title, description } = this.applicationMeta\n\n return html`\n <div class=\"content md-typescale-display-medium\">\n <div class=\"wrap\">\n <div class=\"auth-brand\">\n <img src=${icon || ''} />\n <strong class=\"name\">${title}</strong>\n <span class=\"welcome-msg\">${description}</span>\n </div>\n\n <h3>${i18next.t('label.select_domain')}</h3>\n\n ${html`\n <input\n search-input\n ?visible=${this.showDomainSearch}\n type=\"text\"\n placeholder=${i18next.t('label.search_domain')}\n .value=${this.searchValue}\n @input=${e => (this.searchValue = e.target.value)}\n />\n `}\n ${this.domains?.length\n ? html`\n <ul class=\"domains\">\n ${this.domains.map(domain => {\n // config에 showDomainSearch 옵션이 켜져있으면 검색 필터링 처리\n if (\n this.showDomainSearch &&\n this.searchValue &&\n !domain.name.toLowerCase().includes(this.searchValue.toLowerCase()) &&\n !domain.description.toLowerCase().includes(this.searchValue.toLowerCase())\n ) {\n return html``\n }\n\n return html`\n <li\n @click=${() =>\n (location.href = `/auth/checkin/${domain.subdomain}?redirect_to=${encodeURIComponent(this.redirectTo || '/')}`)}\n >\n <md-icon>keyboard_arrow_right</md-icon>\n <strong>${domain.name}</strong>\n <span>${domain.description}&nbsp;</span>\n </li>\n `\n })}\n </ul>\n `\n : html` <h3>${i18next.t('text.no domain available')}</h3> `}\n\n <div class=\"button-container\">\n <md-elevated-button @click=${() => (location.pathname = '/auth/signout')}\n >${String(i18next.t('button.logout'))}</md-elevated-button\n >\n </div>\n\n ${isSafari()\n ? html``\n : html`\n <div class=\"lottie-container\">\n <lottie-player autoplay loop src=\"../../assets/images/background-animation.json\"></lottie-player>\n </div>\n `}\n </div>\n </div>\n `\n }\n\n async updated(changed) {\n if (changed.has('data')) {\n this.domains = this.data.domains\n this.user = this.data.user\n this.domainTypes = this.data.domainTypes\n this.redirectTo = this.data.redirectTo\n\n await this.fetchConfig()\n this.requestUpdate()\n }\n }\n\n navigateToUrl(url) {\n location.pathname = url\n }\n\n async fetchConfig() {\n const response = await fetch('/get-config')\n const data = await response.json()\n this.showDomainSearch = data.showDomainSearch || false\n }\n\n get applicationMeta() {\n if (!this._applicationMeta) {\n var iconLink: HTMLLinkElement | null = document.querySelector('link[rel=\"application-icon\"]')\n var titleMeta: HTMLMetaElement | null = document.querySelector('meta[name=\"application-name\"]')\n var descriptionMeta: HTMLMetaElement | null = document.querySelector('meta[name=\"application-description\"]')\n\n this._applicationMeta = {\n icon: iconLink?.href,\n title: titleMeta ? titleMeta.content : 'Things Factory',\n description: descriptionMeta ? descriptionMeta.content : 'Reimagining Software'\n }\n }\n\n return this._applicationMeta\n }\n}\n"]}
1
+ {"version":3,"file":"checkin.js","sourceRoot":"","sources":["../../../client/entries/auth/checkin.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,yCAAyC,CAAA;AAEhD,OAAO,wBAAwB,CAAA;AAE/B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGhD,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;IAAvD;;QAiGsB,YAAO,GAAU,EAAE,CAAA;QAIrC,gBAAW,GAAW,EAAE,CAAA;QACjC,yBAAoB,GAAG,CAAC,CAAA;IA2G1B,CAAC;IAtGC,MAAM;;QACJ,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,eAAe,CAAA;QACvD,MAAM,gBAAgB,GAAG,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,KAAI,IAAI,CAAC,oBAAoB,CAAA;QAE1E,OAAO,IAAI,CAAA;;;;uBAIQ,IAAI,IAAI,EAAE;mCACE,KAAK;wCACA,WAAW;;;gBAGnC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;;YAEpC,IAAI,CAAA;;;yBAGS,gBAAgB;;4BAEb,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;uBACrC,IAAI,CAAC,WAAW;uBAChB,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;;WAEpD;YACC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM;YACpB,CAAC,CAAC,IAAI,CAAA;;oBAEE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC1B,yBAAyB;gBACzB,IACE,gBAAgB;oBAChB,IAAI,CAAC,WAAW;oBAChB,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;oBACnE,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAC1E,CAAC;oBACD,OAAO,IAAI,CAAA,EAAE,CAAA;gBACf,CAAC;gBAED,OAAO,IAAI,CAAA;;iCAEE,GAAG,EAAE,CACZ,CAAC,QAAQ,CAAC,IAAI,GAAG,iBAAiB,MAAM,CAAC,SAAS,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC;;;kCAGvG,MAAM,CAAC,IAAI;gCACb,MAAM,CAAC,WAAW;;qBAE7B,CAAA;YACH,CAAC,CAAC;;eAEL;YACH,CAAC,CAAC,IAAI,CAAA,QAAQ,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,QAAQ;;;yCAG9B,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,eAAe,CAAC;iBACnE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;;;;YAIvC,QAAQ,EAAE;YACV,CAAC,CAAC,IAAI,CAAA,EAAE;YACR,CAAC,CAAC,IAAI,CAAA;;;;eAIH;;;KAGV,CAAA;IACH,CAAC;IAED,OAAO,CAAC,OAAO;QACb,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;YAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;YAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAA;YACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAA;YAEtC,IAAI,CAAC,aAAa,EAAE,CAAA;QACtB,CAAC;IACH,CAAC;IAED,aAAa,CAAC,GAAG;QACf,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAA;IACzB,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,QAAQ,GAA2B,QAAQ,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAA;YAC7F,IAAI,SAAS,GAA2B,QAAQ,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAA;YAC/F,IAAI,eAAe,GAA2B,QAAQ,CAAC,aAAa,CAAC,sCAAsC,CAAC,CAAA;YAE5G,IAAI,CAAC,gBAAgB,GAAG;gBACtB,IAAI,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI;gBACpB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;gBACvD,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB;aAChF,CAAA;QACH,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAA;IAC9B,CAAC;;AA/MM,kBAAM,GAAG;IACd,eAAe;IACf,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAyFF;IACD,eAAe;CAChB,AA7FY,CA6FZ;AAE2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yCAAU;AACV;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;4CAAoB;AACnB;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;gDAAuB;AACrB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yCAAU;AAE5B;IAAR,KAAK,EAAE;;gDAAyB;AArGtB,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAiNvB","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@material/web/button/elevated-button.js'\n\nimport '@operato/lottie-player'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { i18next, localize } from '@operato/i18n'\nimport { ScrollbarStyles } from '@operato/styles'\nimport { isSafari } from '@operato/utils'\n\nimport { AUTH_STYLE_SIGN } from '../../auth-style-sign'\n\n@customElement('auth-checkin')\nexport class AuthCheckIn extends localize(i18next)(LitElement) {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n margin: auto;\n background-color: var(--md-sys-color-primary);\n color: var(--md-sys-color-on-primary);\n height: 100vh;\n height: 100dvh;\n }\n\n .header {\n background-color: var(--md-sys-color-primary);\n color: var(--md-sys-color-on-primary);\n height: var(--checkin-header-height);\n }\n\n .content {\n flex: 1;\n overflow: auto;\n }\n\n .domains {\n margin: var(--spacing-large) 0;\n padding: 0;\n background-color: var(--md-sys-color-surface);\n color: var(--md-sys-color-on-surface);\n border-radius: var(--border-radius);\n border: var(--border-dim-color);\n list-style: none;\n }\n\n li {\n border-bottom: var(--border-dim-color);\n padding: var(--spacing-medium) var(--spacing-large);\n font-size: 18px;\n text-align: left;\n\n cursor: pointer;\n }\n\n li:hover {\n background-color: var(--md-sys-color-primary-container);\n color: var(--md-sys-color-on-primary-container);\n }\n\n li span {\n display: block;\n font: normal var(--fontsize-default) var(--theme-font);\n }\n\n li md-icon {\n float: right;\n margin: 10px 0 0 0;\n opacity: 0.5;\n }\n\n .button-container {\n text-align: center;\n }\n\n .button-container md-elevated-button {\n margin-left: var(--spacing-small);\n }\n\n input[search-input] {\n width: 250px;\n height: 35px;\n margin-top: 10px;\n border-radius: 5px;\n padding: 3px 10px;\n font-size: 17px;\n color: var(--md-sys-color-primary);\n background: var(--md-sys-color-surface);\n border: var(--border-dim-color);\n font-weight: 500;\n display: none;\n }\n\n input[search-input][visible] {\n display: inline-block;\n }\n\n @media (max-width: 450px) {\n .button-container md-elevated-button {\n width: 100%;\n margin: var(--spacing-medium) 0 0 0;\n }\n }\n `,\n AUTH_STYLE_SIGN\n ]\n\n @property({ type: Object }) data: any\n @property({ type: Array }) domains: any[] = []\n @property({ type: Array }) domainTypes?: string[]\n @property({ type: Object }) user: any\n\n @state() searchValue: string = ''\n DOMAIN_SEARCH_LENGTH = 5\n\n private _applicationMeta?: { icon?: string; title?: string; description?: string }\n private redirectTo?: string\n\n render() {\n var { icon, title, description } = this.applicationMeta\n const showDomainSearch = this.domains?.length >= this.DOMAIN_SEARCH_LENGTH\n\n return html`\n <div class=\"content md-typescale-display-medium\">\n <div class=\"wrap\">\n <div class=\"auth-brand\">\n <img src=${icon || ''} />\n <strong class=\"name\">${title}</strong>\n <span class=\"welcome-msg\">${description}</span>\n </div>\n\n <h3>${i18next.t('label.select_domain')}</h3>\n\n ${html`\n <input\n search-input\n ?visible=${showDomainSearch}\n type=\"text\"\n placeholder=${i18next.t('label.search_domain')}\n .value=${this.searchValue}\n @input=${e => (this.searchValue = e.target.value)}\n />\n `}\n ${this.domains?.length\n ? html`\n <ul class=\"domains\">\n ${this.domains.map(domain => {\n // 도메인이 5개 이상이면 검색 필터링 처리\n if (\n showDomainSearch &&\n this.searchValue &&\n !domain.name.toLowerCase().includes(this.searchValue.toLowerCase()) &&\n !domain.description.toLowerCase().includes(this.searchValue.toLowerCase())\n ) {\n return html``\n }\n\n return html`\n <li\n @click=${() =>\n (location.href = `/auth/checkin/${domain.subdomain}?redirect_to=${encodeURIComponent(this.redirectTo || '/')}`)}\n >\n <md-icon>keyboard_arrow_right</md-icon>\n <strong>${domain.name}</strong>\n <span>${domain.description}&nbsp;</span>\n </li>\n `\n })}\n </ul>\n `\n : html` <h3>${i18next.t('text.no domain available')}</h3> `}\n\n <div class=\"button-container\">\n <md-elevated-button @click=${() => (location.pathname = '/auth/signout')}\n >${String(i18next.t('button.logout'))}</md-elevated-button\n >\n </div>\n\n ${isSafari()\n ? html``\n : html`\n <div class=\"lottie-container\">\n <lottie-player autoplay loop src=\"../../assets/images/background-animation.json\"></lottie-player>\n </div>\n `}\n </div>\n </div>\n `\n }\n\n updated(changed) {\n if (changed.has('data')) {\n this.domains = this.data.domains\n this.user = this.data.user\n this.domainTypes = this.data.domainTypes\n this.redirectTo = this.data.redirectTo\n\n this.requestUpdate()\n }\n }\n\n navigateToUrl(url) {\n location.pathname = url\n }\n\n get applicationMeta() {\n if (!this._applicationMeta) {\n var iconLink: HTMLLinkElement | null = document.querySelector('link[rel=\"application-icon\"]')\n var titleMeta: HTMLMetaElement | null = document.querySelector('meta[name=\"application-name\"]')\n var descriptionMeta: HTMLMetaElement | null = document.querySelector('meta[name=\"application-description\"]')\n\n this._applicationMeta = {\n icon: iconLink?.href,\n title: titleMeta ? titleMeta.content : 'Things Factory',\n description: descriptionMeta ? descriptionMeta.content : 'Reimagining Software'\n }\n }\n\n return this._applicationMeta\n }\n}\n"]}