@things-factory/compliance 10.1.255 → 10.1.257

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist-client/components/compliance-case-form.d.ts +11 -6
  2. package/dist-client/components/compliance-case-form.js +67 -88
  3. package/dist-client/components/compliance-case-form.js.map +1 -1
  4. package/dist-client/components/compliance-case-sheet.d.ts +14 -12
  5. package/dist-client/components/compliance-case-sheet.js +92 -133
  6. package/dist-client/components/compliance-case-sheet.js.map +1 -1
  7. package/dist-client/components/compliance-my-inventions.d.ts +3 -4
  8. package/dist-client/components/compliance-my-inventions.js +10 -30
  9. package/dist-client/components/compliance-my-inventions.js.map +1 -1
  10. package/dist-client/components/compliance-my-privacy-requests.d.ts +6 -6
  11. package/dist-client/components/compliance-my-privacy-requests.js +30 -66
  12. package/dist-client/components/compliance-my-privacy-requests.js.map +1 -1
  13. package/dist-client/components/compliance-my-reports.d.ts +3 -4
  14. package/dist-client/components/compliance-my-reports.js +19 -40
  15. package/dist-client/components/compliance-my-reports.js.map +1 -1
  16. package/dist-client/components/invention-report-form.d.ts +5 -4
  17. package/dist-client/components/invention-report-form.js +24 -45
  18. package/dist-client/components/invention-report-form.js.map +1 -1
  19. package/dist-client/components/my-trainings.d.ts +3 -5
  20. package/dist-client/components/my-trainings.js +20 -49
  21. package/dist-client/components/my-trainings.js.map +1 -1
  22. package/dist-client/components/seal-use-form.d.ts +9 -6
  23. package/dist-client/components/seal-use-form.js +60 -81
  24. package/dist-client/components/seal-use-form.js.map +1 -1
  25. package/dist-client/components/training-attendance-form.d.ts +6 -4
  26. package/dist-client/components/training-attendance-form.js +30 -50
  27. package/dist-client/components/training-attendance-form.js.map +1 -1
  28. package/dist-client/pages/regulation-detail.d.ts +17 -5
  29. package/dist-client/pages/regulation-detail.js +202 -133
  30. package/dist-client/pages/regulation-detail.js.map +1 -1
  31. package/dist-client/pages/regulations.d.ts +7 -5
  32. package/dist-client/pages/regulations.js +79 -68
  33. package/dist-client/pages/regulations.js.map +1 -1
  34. package/dist-client/regulation/regulation-fragments.js +5 -0
  35. package/dist-client/regulation/regulation-fragments.js.map +1 -1
  36. package/dist-client/regulation/regulation-guide.js +2 -1
  37. package/dist-client/regulation/regulation-guide.js.map +1 -1
  38. package/dist-client/tsconfig.tsbuildinfo +1 -1
  39. package/dist-client/words.js +2 -2
  40. package/dist-client/words.js.map +1 -1
  41. package/dist-server/index.d.ts +1 -0
  42. package/dist-server/index.js +1 -0
  43. package/dist-server/index.js.map +1 -1
  44. package/dist-server/service/compliance-case/compliance-case-query.js +1 -1
  45. package/dist-server/service/compliance-case/compliance-case-query.js.map +1 -1
  46. package/dist-server/service/compliance-case/compliance-case-rules.d.ts +1 -3
  47. package/dist-server/service/compliance-case/compliance-case-rules.js +2 -4
  48. package/dist-server/service/compliance-case/compliance-case-rules.js.map +1 -1
  49. package/dist-server/service/compliance-case/compliance-case-service.d.ts +3 -3
  50. package/dist-server/service/compliance-case/compliance-case-service.js +4 -6
  51. package/dist-server/service/compliance-case/compliance-case-service.js.map +1 -1
  52. package/dist-server/service/compliance-case/compliance-case-type.js +1 -1
  53. package/dist-server/service/compliance-case/compliance-case-type.js.map +1 -1
  54. package/dist-server/service/compliance-case/compliance-case.js +1 -1
  55. package/dist-server/service/compliance-case/compliance-case.js.map +1 -1
  56. package/dist-server/service/index.d.ts +1 -1
  57. package/dist-server/service/index.js +2 -1
  58. package/dist-server/service/index.js.map +1 -1
  59. package/dist-server/service/regulation/regulation-mutation.d.ts +1 -0
  60. package/dist-server/service/regulation/regulation-mutation.js +14 -0
  61. package/dist-server/service/regulation/regulation-mutation.js.map +1 -1
  62. package/dist-server/service/regulation/regulation-read.js +11 -2
  63. package/dist-server/service/regulation/regulation-read.js.map +1 -1
  64. package/dist-server/service/regulation/regulation-rules.d.ts +25 -6
  65. package/dist-server/service/regulation/regulation-rules.js +85 -29
  66. package/dist-server/service/regulation/regulation-rules.js.map +1 -1
  67. package/dist-server/service/regulation/regulation-service.d.ts +12 -0
  68. package/dist-server/service/regulation/regulation-service.js +48 -7
  69. package/dist-server/service/regulation/regulation-service.js.map +1 -1
  70. package/dist-server/service/regulation/regulation-type.d.ts +4 -0
  71. package/dist-server/service/regulation/regulation-type.js +16 -0
  72. package/dist-server/service/regulation/regulation-type.js.map +1 -1
  73. package/dist-server/service/regulation/regulation.d.ts +3 -1
  74. package/dist-server/service/regulation/regulation.js +12 -2
  75. package/dist-server/service/regulation/regulation.js.map +1 -1
  76. package/dist-server/tsconfig.tsbuildinfo +1 -1
  77. package/dist-server/work-doors.d.ts +1 -0
  78. package/dist-server/work-doors.js +15 -0
  79. package/dist-server/work-doors.js.map +1 -0
  80. package/package.json +17 -17
  81. package/translations/en.json +46 -14
  82. package/translations/es.json +46 -14
  83. package/translations/ja.json +46 -14
  84. package/translations/ko.json +46 -14
  85. package/translations/ms.json +46 -14
  86. package/translations/zh.json +46 -14
@@ -1 +1 @@
1
- {"version":3,"file":"regulation-detail.js","sourceRoot":"","sources":["../../client/pages/regulation-detail.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/input/ox-input-file.js'\nimport '@operato/input/ox-input-select-buttons.js'\nimport '@operato/list-state/ox-page-state.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, nothing } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\n\nimport { client, uploadContext } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify } from '@operato/layout'\nimport { OxPrompt } from '@operato/popup/ox-prompt.js'\nimport { navigate, PageView } from '@operato/shell'\nimport { CommonButtonStyles, DocumentPageStyles, FormFieldStyles, ScrollbarStyles } from '@operato/styles'\n\nimport { VERSION_VIEW } from '../regulation/regulation-fragments.js'\nimport { failureOf, PROCEDURE_KINDS, PROCEDURE_METHODS, wordOf } from '../words.js'\n\n/**\n * 규정 한 건 (ADR-0187 decisions 2-6) - its versions, and of the one chosen: its text, the day it takes effect, what\n * changed, whether it is against the workers, the procedure with its papers, its approval and whether the employees were\n * told. A version being written changes here; one in approval is taken back to change; an adopted one stays and gets its\n * filing.\n */\n@customElement('regulation-detail')\nexport class RegulationDetail extends localize(i18next)(PageView) {\n static styles = [\n DocumentPageStyles,\n FormFieldStyles,\n ScrollbarStyles,\n css`\n :host {\n display: block;\n overflow: auto;\n }\n .field {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-small, 4px);\n }\n .field > span:not(:first-child) {\n color: var(--ui-muted, var(--md-sys-color-on-surface-variant));\n font-size: var(--ui-t-small, 12px);\n }\n .form {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));\n gap: var(--spacing-large, 12px);\n }\n textarea.body {\n width: 100%;\n min-height: 320px;\n box-sizing: border-box;\n font-family: inherit;\n }\n table {\n border-collapse: collapse;\n width: 100%;\n }\n td,\n th {\n text-align: left;\n padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);\n border-bottom: 1px solid var(--ui-line-soft, var(--md-sys-color-outline-variant));\n }\n .note {\n color: var(--ui-warn, var(--md-sys-color-error));\n }\n .muted {\n color: var(--ui-muted, var(--md-sys-color-on-surface-variant));\n }\n .procedure-form {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));\n gap: var(--spacing-medium, 8px);\n align-items: end;\n }\n `\n ]\n\n @state() private view: any = null\n @state() private failure = ''\n @state() private chosen = ''\n @state() private draft: any = {}\n @state() private employees: number | null = null\n @state() private procedure: any = { kind: 'OPINION', day: '', method: '', workersCount: '', consentCount: '', notes: '' }\n @state() private files: File[] = []\n\n get context() {\n const version = this.current?.version\n const actions: any[] = []\n if (version?.status === 'DRAFT') {\n actions.push({ title: i18next.t('button.regulation-version-delete'), action: () => this.deleteVersion(), ...CommonButtonStyles.delete })\n actions.push({ title: i18next.t('button.save'), action: () => this.saveVersion() })\n actions.push({ title: i18next.t('button.regulation-submit'), icon: 'approval', action: () => this.submit(), raised: true })\n }\n if (version?.status === 'IN_APPROVAL') actions.push({ title: i18next.t('button.regulation-withdraw'), icon: 'undo', action: () => this.withdraw() })\n if (this.view && !this.view.versions.some((one: any) => one.version.status !== 'ADOPTED')) actions.push({ title: i18next.t('button.regulation-new-version'), icon: 'add', action: () => this.newVersion() })\n return { title: this.view ? this.view.regulation.name : i18next.t('title.regulation-list'), frame: 'document', actions }\n }\n\n private get current() {\n const versions = this.view?.versions ?? []\n return versions.find((one: any) => one.version.id === this.chosen) ?? versions[0]\n }\n\n render() {\n if (this.failure) return html`<ox-page-state state=\"error\" .message=${this.failure}></ox-page-state>`\n if (!this.view) return html`<ox-page-state state=\"loading\"></ox-page-state>`\n const current = this.current\n const { regulation } = this.view\n return html`<div class=\"page\">\n <section class=\"page-section\">\n <header class=\"page-section-header\">\n <h3>${regulation.code} · ${wordOf('regulation-kind', regulation.kind)}</h3>\n <div class=\"page-section-actions\"><button @click=${() => navigate('regulation-list')}>${i18next.t('button.regulation-all')}</button></div>\n </header>\n <ox-input-select-buttons\n .value=${current.version.id}\n .options=${this.view.versions.map((one: any) => ({ value: one.version.id, display: `${i18next.t('text.regulation-version-of', { version: one.version.version })} · ${wordOf('regulation-period', one.period)}` }))}\n @change=${(e: CustomEvent) => e.detail && this.choose(e.detail)}\n ></ox-input-select-buttons>\n </section>\n ${current ? this.renderVersion(current) : nothing}\n </div>`\n }\n\n private renderVersion(view: any) {\n const { version } = view\n const writing = version.status === 'DRAFT'\n const value = (name: string) => this.draft[name] ?? version[name] ?? ''\n const set = (name: string, given: any) => (this.draft = { ...this.draft, [name]: given })\n const words: Record<string, string> = { ADDED: i18next.t('text.regulation-change-added'), CHANGED: i18next.t('text.regulation-change-changed'), REMOVED: i18next.t('text.regulation-change-removed') }\n const filing = this.view.regulation.kind === 'WORK_RULES' || this.view.regulation.kind === 'WORK_RULES_ANNEX'\n const kinds = version.status === 'ADOPTED' ? ['FILING'] : writing ? PROCEDURE_KINDS : []\n return html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-version-of', { version: version.version })} · ${wordOf('regulation-period', view.period)}</h3></header>\n ${version.adoptionNote ? html`<p class=\"page-section-note note\">${version.adoptionNote}</p>` : nothing}\n ${version.status === 'ADOPTED' && !view.told ? html`<p class=\"page-section-note note\">${i18next.t('text.regulation-not-told-note')}</p>` : nothing}\n <div class=\"form\">\n <label class=\"field\">\n <span>${i18next.t('field.regulation-effective-on')}</span>\n <input type=\"date\" ?disabled=${!writing} .value=${value('effectiveOn')} @input=${(e: any) => set('effectiveOn', e.target.value)} />\n <span>${i18next.t('text.regulation-effective-hint')}</span>\n </label>\n <div class=\"field\">\n <span>${i18next.t('field.regulation-unfavourable')}</span>\n <ox-input-select-buttons\n ?disabled=${!writing}\n .value=${value('unfavourable') === '' ? '' : String(value('unfavourable'))}\n .options=${[{ value: 'true', display: i18next.t('text.regulation-unfavourable-yes') }, { value: 'false', display: i18next.t('text.regulation-unfavourable-no') }]}\n @change=${(e: CustomEvent) => writing && e.detail && set('unfavourable', e.detail === 'true')}\n ></ox-input-select-buttons>\n <span>${i18next.t('text.regulation-unfavourable-hint')}</span>\n </div>\n <label class=\"field\">\n <span>${i18next.t('field.regulation-change-summary')}</span>\n <input ?disabled=${!writing} .value=${value('changeSummary')} @input=${(e: any) => set('changeSummary', e.target.value)} />\n </label>\n </div>\n </section>\n <section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('field.regulation-body')}</h3></header>\n <p class=\"page-section-note muted\">${i18next.t('text.regulation-body-hint')}</p>\n <textarea class=\"body\" ?disabled=${!writing} .value=${value('body')} @input=${(e: any) => set('body', e.target.value)}></textarea>\n </section>\n ${view.changes.length\n ? html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-changes')}</h3></header>\n <table>\n ${view.changes.map((one: any) => html`<tr><td>제${one.number}조${one.title ? `(${one.title})` : ''}</td><td>${words[one.change]}</td></tr>`)}\n </table>\n </section>`\n : nothing}\n <section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-procedures')}</h3></header>\n <p class=\"page-section-note muted\">${i18next.t(filing ? 'text.regulation-procedures-hint' : 'text.regulation-procedures-none-asked')}</p>\n <table>\n ${(view.procedures ?? []).map(\n (one: any) =>\n html`<tr>\n <td>${wordOf('regulation-procedure-kind', one.kind)}</td>\n <td>${one.day}</td>\n <td>${one.method ? wordOf('regulation-procedure-method', one.method) : ''}</td>\n <td>${one.kind === 'CONSENT' ? i18next.t('text.regulation-consent-count', { consented: one.consentCount, workers: one.workersCount }) : ''}</td>\n <td>${i18next.t('text.regulation-files', { count: one.files })}</td>\n <td>${writing ? html`<button class=\"danger\" @click=${() => this.deleteProcedure(one.id)}>${i18next.t('button.delete')}</button>` : nothing}</td>\n </tr>`\n )}\n </table>\n ${kinds.length ? this.renderProcedureForm(kinds) : nothing}\n </section>`\n }\n\n private renderProcedureForm(kinds: string[]) {\n const kind = kinds.includes(this.procedure.kind) ? this.procedure.kind : kinds[0]\n const set = (name: string, given: any) => (this.procedure = { ...this.procedure, kind, [name]: given })\n return html`<div class=\"procedure-form\">\n <div class=\"field\">\n <span>${i18next.t('field.regulation-procedure-kind')}</span>\n <ox-input-select-buttons .value=${kind} .options=${kinds.map(code => ({ value: code, display: wordOf('regulation-procedure-kind', code) }))} @change=${(e: CustomEvent) => e.detail && set('kind', e.detail)}></ox-input-select-buttons>\n </div>\n <label class=\"field\"><span>${i18next.t('field.regulation-procedure-day')}</span><input type=\"date\" .value=${this.procedure.day} @input=${(e: any) => set('day', e.target.value)} /></label>\n <div class=\"field\">\n <span>${i18next.t('field.regulation-procedure-method')}</span>\n <ox-input-select-buttons .value=${this.procedure.method} .options=${PROCEDURE_METHODS[kind].map(code => ({ value: code, display: wordOf('regulation-procedure-method', code) }))} @change=${(e: CustomEvent) => set('method', e.detail ?? '')}></ox-input-select-buttons>\n </div>\n ${kind === 'CONSENT'\n ? html`<label class=\"field\">\n <span>${i18next.t('field.regulation-workers-count')}</span>\n <input type=\"number\" min=\"1\" .value=${this.procedure.workersCount} @input=${(e: any) => set('workersCount', e.target.value)} />\n ${this.employees !== null ? html`<span>${i18next.t('text.regulation-active-employees', { count: this.employees })}</span>` : nothing}\n </label>\n <label class=\"field\"><span>${i18next.t('field.regulation-consent-count')}</span><input type=\"number\" min=\"0\" .value=${this.procedure.consentCount} @input=${(e: any) => set('consentCount', e.target.value)} /></label>`\n : nothing}\n <label class=\"field\"><span>${i18next.t('field.regulation-procedure-notes')}</span><input .value=${this.procedure.notes} @input=${(e: any) => set('notes', e.target.value)} /></label>\n <div class=\"field\">\n <span>${i18next.t('field.regulation-procedure-files')}</span>\n <ox-input-file multiple .value=${this.files} @change=${(e: CustomEvent) => (this.files = e.detail ?? [])}></ox-input-file>\n </div>\n <button @click=${() => this.recordProcedure(kind)}>${i18next.t('button.regulation-procedure-record')}</button>\n </div>`\n }\n\n async pageUpdated(changes: any, lifecycle: any) {\n if (!this.active) return\n const params = new URLSearchParams(location.search)\n this.chosen = params.get('version') ?? this.chosen\n await this.fetch(params.get('id') ?? lifecycle?.params?.id)\n }\n\n private async fetch(id = this.view?.regulation?.id) {\n if (!id) return\n try {\n const response = await client.query({\n query: gql`\n query ($id: String) {\n companyRegulation(id: $id) {\n regulation { id code name kind topics }\n versions {\n ...RegulationVersionViewFields\n procedures { id kind day method workersCount consentCount notes files }\n }\n }\n activeEmployeeCount\n }\n ${VERSION_VIEW}\n `,\n variables: { id },\n fetchPolicy: 'no-cache'\n })\n if ((response as any).errors?.length) throw response\n this.view = response.data.companyRegulation\n this.employees = response.data.activeEmployeeCount\n this.failure = ''\n this.updateContext()\n } catch (error) {\n this.failure = failureOf(error)\n }\n }\n\n private choose(id: string) {\n this.chosen = id\n this.draft = {}\n this.updateContext()\n }\n\n private async call(mutation: any, variables: any, done = 'text.regulation-saved', context?: any) {\n try {\n const response = await client.mutate({ mutation, variables, ...(context ? { context } : {}) })\n if ((response as any).errors?.length) throw response\n notify({ message: i18next.t(done) })\n this.draft = {}\n await this.fetch()\n return response.data\n } catch (error) {\n notify({ level: 'error', message: failureOf(error) })\n return null\n }\n }\n\n private patchOf() {\n const patch: any = { ...this.draft }\n if (patch.effectiveOn === '') patch.effectiveOn = null\n return patch\n }\n\n private async saveVersion() {\n if (!Object.keys(this.draft).length) return\n await this.call(gql`mutation ($id: String!, $patch: RegulationVersionPatch!) { updateRegulationVersion(id: $id, patch: $patch) { id } }`, { id: this.current.version.id, patch: this.patchOf() })\n }\n\n private async submit() {\n const id = this.current.version.id\n if (Object.keys(this.draft).length && !(await this.call(gql`mutation ($id: String!, $patch: RegulationVersionPatch!) { updateRegulationVersion(id: $id, patch: $patch) { id } }`, { id, patch: this.patchOf() }))) return\n const confirmed = await OxPrompt.open({\n title: i18next.t('button.regulation-submit'),\n text: i18next.t('text.regulation-submit-confirm'),\n confirmButton: { text: i18next.t('button.regulation-submit') },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n if (confirmed) await this.call(gql`mutation ($id: String!) { submitRegulationVersion(id: $id) { id status } }`, { id }, 'text.regulation-submitted')\n }\n\n private async withdraw() {\n await this.call(gql`mutation ($id: String!) { withdrawRegulationVersion(id: $id) { id } }`, { id: this.current.version.id })\n }\n\n private async newVersion() {\n const data = await this.call(gql`mutation ($id: String!) { newRegulationVersion(regulationId: $id) { id } }`, { id: this.view.regulation.id })\n if (data) this.choose(data.newRegulationVersion.id)\n }\n\n private async deleteVersion() {\n const confirmed = await OxPrompt.open({\n title: i18next.t('button.regulation-version-delete'),\n text: i18next.t('text.regulation-version-delete-confirm'),\n confirmButton: { text: i18next.t('button.delete'), destructive: true },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n if (confirmed && (await this.call(gql`mutation ($id: String!) { deleteRegulationVersion(id: $id) }`, { id: this.current.version.id }))) this.chosen = ''\n }\n\n private async recordProcedure(kind: string) {\n const { day, method, workersCount, consentCount, notes } = this.procedure\n const done = await this.call(\n gql`\n mutation ($procedure: NewRegulationProcedure!, $files: [Upload!]) {\n recordRegulationProcedure(procedure: $procedure, files: $files) { id }\n }\n `,\n {\n procedure: { versionId: this.current.version.id, kind, day, method: method || null, workersCount: workersCount === '' ? null : Number(workersCount), consentCount: consentCount === '' ? null : Number(consentCount), notes: notes || null },\n files: this.files\n },\n 'text.regulation-saved',\n this.files.length ? uploadContext(() => {}) : undefined\n )\n if (done) {\n this.procedure = { kind: 'OPINION', day: '', method: '', workersCount: '', consentCount: '', notes: '' }\n this.files = []\n }\n }\n\n private async deleteProcedure(id: string) {\n await this.call(gql`mutation ($id: String!) { deleteRegulationProcedure(id: $id) }`, { id })\n }\n}\n"]}
1
+ {"version":3,"file":"regulation-detail.js","sourceRoot":"","sources":["../../client/pages/regulation-detail.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/input/ox-input-file.js'\nimport '@operato/input/ox-input-select-buttons.js'\nimport '@operato/list-state/ox-page-state.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, nothing } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\n\nimport { MutationController, QueryController, uploadContext } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify } from '@operato/layout'\nimport { OxPrompt } from '@operato/popup/ox-prompt.js'\nimport { navigate, PageView, DraftController } from '@operato/shell'\nimport { CommonButtonStyles, DocumentPageStyles, FormFieldStyles, ScrollbarStyles } from '@operato/styles'\n\nimport { VERSION_VIEW } from '../regulation/regulation-fragments.js'\nimport { failureOf, PROCEDURE_METHODS, wordOf } from '../words.js'\n\n/**\n * 규정 한 건 (ADR-0187 decisions 2-6) - its versions, and of the one chosen: its text, the day it takes effect, what\n * changed, whether it is against the workers, the procedure with its papers, its approval and whether the employees were\n * told. A version being written changes here; one in approval is taken back to change; an adopted one stays and gets its\n * filing.\n */\n@customElement('regulation-detail')\nexport class RegulationDetail extends localize(i18next)(PageView) {\n static styles = [\n DocumentPageStyles,\n FormFieldStyles,\n ScrollbarStyles,\n css`\n :host {\n display: block;\n overflow: auto;\n }\n .field {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-small, 4px);\n }\n .field > span:not(:first-child) {\n color: var(--ui-muted, var(--md-sys-color-on-surface-variant));\n font-size: var(--ui-t-small, 12px);\n }\n .form {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));\n gap: var(--spacing-large, 12px);\n }\n textarea.body {\n width: 100%;\n min-height: 320px;\n box-sizing: border-box;\n font-family: inherit;\n }\n table {\n border-collapse: collapse;\n width: 100%;\n }\n td,\n th {\n text-align: left;\n padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);\n border-bottom: 1px solid var(--ui-line-soft, var(--md-sys-color-outline-variant));\n }\n .note {\n color: var(--ui-warn, var(--md-sys-color-error));\n }\n .muted {\n color: var(--ui-muted, var(--md-sys-color-on-surface-variant));\n }\n .procedure-form {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));\n gap: var(--spacing-medium, 8px);\n align-items: end;\n }\n `\n ]\n\n @state() private ruleId = ''\n @state() private chosen = ''\n @state() private files: File[] = []\n @state() private originals: File[] = []\n /* The rule and its versions, read for the rule the address names (ADR-0190). */\n private rule = new QueryController(\n this,\n gql`\n query ($id: String) {\n companyRegulation(id: $id) {\n regulation { id code name kind topics }\n versions {\n ...RegulationVersionViewFields\n procedures { id kind day method workersCount consentCount notes files }\n originals\n }\n }\n }\n ${VERSION_VIEW}\n `,\n { variables: () => (this.ruleId ? { id: this.ruleId } : undefined) }\n )\n\n /* What is typed belongs to the version it was typed on: the text edits over the version read, and the procedure being\n recorded. Another version drops both, so none of it lands there. */\n private draft = new DraftController<any>(this, { read: () => this.current?.version, key: () => this.current?.version.id })\n private procedure = new DraftController<{ day: string; notes: string }>(this, { read: () => ({ day: '', notes: '' }), key: () => this.current?.version.id })\n\n /* Every change reads the rule again once it is done. */\n private saves = {\n draft: this.change(gql`mutation ($id: String!, $patch: RegulationVersionPatch!) { updateRegulationVersion(id: $id, patch: $patch) { id } }`),\n submit: this.change(gql`mutation ($id: String!) { submitRegulationVersion(id: $id) { id status } }`),\n inForce: this.change(gql`\n mutation ($id: String!, $files: [Upload!]!) {\n registerRegulationInForce(id: $id, files: $files) { id status }\n }\n `),\n withdraw: this.change(gql`mutation ($id: String!) { withdrawRegulationVersion(id: $id) { id } }`),\n newVersion: this.change(gql`mutation ($id: String!) { newRegulationVersion(regulationId: $id) { id } }`),\n deleteVersion: this.change(gql`mutation ($id: String!) { deleteRegulationVersion(id: $id) }`),\n procedure: this.change(gql`\n mutation ($procedure: NewRegulationProcedure!, $files: [Upload!]) {\n recordRegulationProcedure(procedure: $procedure, files: $files) { id }\n }\n `),\n deleteProcedure: this.change(gql`mutation ($id: String!) { deleteRegulationProcedure(id: $id) }`)\n }\n\n private change(mutation: any) {\n return new MutationController(this, mutation, { refetch: () => [this.rule] })\n }\n\n private get view(): any {\n return this.rule.data?.companyRegulation ?? null\n }\n\n /* A save, a submission or a procedure on its way: nothing is typed, switched or sent again until it is back, so what\n is sent is what the screen shows and no answer lands on input typed after it. */\n private get busy() {\n return Object.values(this.saves).some(save => save.pending)\n }\n\n get context() {\n const version = this.current?.version\n const actions: any[] = []\n if (version?.status === 'DRAFT') {\n actions.push({ title: i18next.t('button.regulation-version-delete'), action: () => this.deleteVersion(), ...CommonButtonStyles.delete })\n actions.push({ title: i18next.t('button.save'), action: () => this.saveVersion() })\n actions.push({ title: i18next.t('button.regulation-submit'), icon: 'approval', action: () => this.submit(), raised: true })\n }\n if (version?.status === 'IN_APPROVAL') actions.push({ title: i18next.t('button.regulation-withdraw'), icon: 'undo', action: () => this.withdraw() })\n if (this.view && !this.view.versions.some((one: any) => one.version.status !== 'ADOPTED')) actions.push({ title: i18next.t('button.regulation-new-version'), icon: 'add', action: () => this.newVersion() })\n return { title: this.view ? this.view.regulation.name : i18next.t('title.regulation-list'), frame: 'document', actions }\n }\n\n private get current() {\n const versions = this.view?.versions ?? []\n return versions.find((one: any) => one.version.id === this.chosen) ?? versions[0]\n }\n\n render() {\n if (this.rule.error) return html`<ox-page-state state=\"error\" .message=${failureOf(this.rule.error)}></ox-page-state>`\n if (!this.view) return html`<ox-page-state state=\"loading\"></ox-page-state>`\n const current = this.current\n const { regulation } = this.view\n return html`<div class=\"page\">\n <section class=\"page-section\">\n <header class=\"page-section-header\">\n <h3>${regulation.code} · ${wordOf('regulation-kind', regulation.kind)}</h3>\n <div class=\"page-section-actions\"><button @click=${() => navigate('regulation-list')}>${i18next.t('button.regulation-all')}</button></div>\n </header>\n <ox-input-select-buttons\n ?disabled=${this.busy}\n .value=${current.version.id}\n .options=${this.view.versions.map((one: any) => ({ value: one.version.id, display: `${i18next.t('text.regulation-version-of', { version: one.version.version })} · ${wordOf('regulation-period', one.period)}` }))}\n @change=${(e: CustomEvent) => e.detail && this.switchTo(e.detail)}\n ></ox-input-select-buttons>\n </section>\n ${current ? this.renderVersion(current) : nothing}\n </div>`\n }\n\n private renderVersion(view: any) {\n const { version } = view\n const writing = version.status === 'DRAFT'\n const locked = !writing || this.busy\n const value = (name: string) => this.draft.value(name) ?? ''\n const set = (name: string, given: any) => !this.busy && this.draft.set(name, given)\n const words: Record<string, string> = { ADDED: i18next.t('text.regulation-change-added'), CHANGED: i18next.t('text.regulation-change-changed'), REMOVED: i18next.t('text.regulation-change-removed') }\n const filing = this.view.regulation.kind === 'WORK_RULES' || this.view.regulation.kind === 'WORK_RULES_ANNEX'\n const kinds = !filing ? [] : version.status === 'ADOPTED' ? ['FILING'] : writing ? [value('unfavourable') === true ? 'CONSENT' : 'OPINION'] : []\n return html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-version-of', { version: version.version })} · ${wordOf('regulation-period', view.period)}</h3></header>\n ${version.adoptionNote ? html`<p class=\"page-section-note note\">${version.adoptionNote}</p>` : nothing}\n ${version.registeredInForce ? html`<p class=\"page-section-note\">${i18next.t('text.regulation-registered-note', { count: view.originals ?? 0 })}</p>` : nothing}\n ${version.status === 'ADOPTED' && !view.told && !version.registeredInForce ? html`<p class=\"page-section-note note\">${i18next.t('text.regulation-not-told-note')}</p>` : nothing}\n <div class=\"form\">\n <label class=\"field\">\n <span>${i18next.t('field.regulation-effective-on')}</span>\n <input type=\"date\" ?disabled=${locked} .value=${value('effectiveOn')} @input=${(e: any) => set('effectiveOn', e.target.value)} />\n <span>${i18next.t('text.regulation-effective-hint')}</span>\n </label>\n ${filing ? html`<div class=\"field\">\n <span>${i18next.t('field.regulation-unfavourable')}</span>\n <ox-input-select-buttons\n ?disabled=${locked}\n .value=${value('unfavourable') === '' ? '' : String(value('unfavourable'))}\n .options=${[{ value: 'true', display: i18next.t('text.regulation-unfavourable-yes') }, { value: 'false', display: i18next.t('text.regulation-unfavourable-no') }]}\n @change=${(e: CustomEvent) => writing && e.detail && set('unfavourable', e.detail === 'true')}\n ></ox-input-select-buttons>\n <span>${i18next.t('text.regulation-unfavourable-hint')}</span>\n </div>` : nothing}\n <label class=\"field\">\n <span>${i18next.t('field.regulation-change-summary')}</span>\n <input ?disabled=${locked} .value=${value('changeSummary')} @input=${(e: any) => set('changeSummary', e.target.value)} />\n </label>\n </div>\n </section>\n <section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('field.regulation-body')}</h3></header>\n <p class=\"page-section-note muted\">${i18next.t('text.regulation-body-hint')}</p>\n <textarea class=\"body\" ?disabled=${locked} .value=${value('body')} @input=${(e: any) => set('body', e.target.value)}></textarea>\n </section>\n ${view.changes.length\n ? html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-changes')}</h3></header>\n <table>\n ${view.changes.map((one: any) => html`<tr><td>${one.heading}</td><td>${words[one.change]}</td></tr>`)}\n </table>\n </section>`\n : nothing}\n ${filing || view.procedures?.length ? html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-procedures')}</h3></header>\n <p class=\"page-section-note muted\">${i18next.t(filing ? 'text.regulation-procedures-hint' : 'text.regulation-procedures-none-asked')}</p>\n <table>\n ${(view.procedures ?? []).map(\n (one: any) =>\n html`<tr>\n <td>${wordOf('regulation-procedure-kind', one.kind)}</td>\n <td>${one.day}</td>\n <td>${one.method && Object.values(PROCEDURE_METHODS).some(methods => methods.includes(one.method)) ? wordOf('regulation-procedure-method', one.method) : ''}</td>\n <td>${one.kind === 'CONSENT' && one.workersCount != null && one.consentCount != null ? i18next.t('text.regulation-consent-count', { consented: one.consentCount, workers: one.workersCount }) : ''}</td>\n <td>${i18next.t('text.regulation-files', { count: one.files })}</td>\n <td>${writing ? html`<button class=\"danger\" ?disabled=${this.busy} @click=${() => this.deleteProcedure(one.id)}>${i18next.t('button.delete')}</button>` : nothing}</td>\n </tr>`\n )}\n </table>\n ${kinds.length ? this.renderProcedureForm(kinds) : nothing}\n </section>` : nothing}\n ${writing && !this.view.versions.some((one: any) => one.version.status !== 'DRAFT') ? this.renderInForce() : nothing}`\n }\n\n /* A rule in force before the system - its first version registered from its own day with its original (ADR-0187 amendment 2). */\n private renderInForce() {\n return html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-in-force-title')}</h3></header>\n <p class=\"page-section-note muted\">${i18next.t('text.regulation-in-force-hint')}</p>\n <div class=\"procedure-form\">\n <div class=\"field\">\n <span>${i18next.t('field.regulation-original')}</span>\n <ox-input-file multiple ?disabled=${this.busy} .value=${this.originals} @change=${(e: CustomEvent) => !this.busy && (this.originals = e.detail ?? [])}></ox-input-file>\n </div>\n <button ?disabled=${this.busy} @click=${() => this.registerInForce()}>${i18next.t('button.regulation-register-in-force')}</button>\n </div>\n </section>`\n }\n\n private renderProcedureForm(kinds: string[]) {\n const kind = kinds[0]\n const set = (name: 'day' | 'notes', given: string) => !this.busy && this.procedure.set(name, given)\n return html`<div class=\"procedure-form\">\n <div class=\"field\">\n <span>${i18next.t('field.regulation-procedure-kind')}</span>\n <span>${wordOf('regulation-procedure-kind', kind)}</span>\n </div>\n <label class=\"field\"><span>${i18next.t('field.regulation-procedure-day')}</span><input type=\"date\" ?disabled=${this.busy} .value=${this.procedure.value('day')} @input=${(e: any) => set('day', e.target.value)} /></label>\n <label class=\"field\"><span>${i18next.t('field.regulation-procedure-notes')}</span><input ?disabled=${this.busy} .value=${this.procedure.value('notes')} @input=${(e: any) => set('notes', e.target.value)} /></label>\n <div class=\"field\">\n <span>${i18next.t('field.regulation-procedure-files')}</span>\n <ox-input-file multiple ?disabled=${this.busy} .value=${this.files} @change=${(e: CustomEvent) => !this.busy && (this.files = e.detail ?? [])}></ox-input-file>\n </div>\n <button ?disabled=${this.busy} @click=${() => this.recordProcedure(kind)}>${i18next.t('button.regulation-procedure-record')}</button>\n </div>`\n }\n\n async pageUpdated(changes: any, lifecycle: any) {\n if (!this.active) return\n const params = new URLSearchParams(location.search)\n const id = params.get('id') ?? lifecycle?.params?.id\n const version = params.get('version')\n /* Another rule, or another version asked by the address: the shell asked about what was typed (addressDirty) and\n dropped it before the address changed; this page only moves to it. */\n const another = !!this.view && !!id && id !== this.view.regulation.id\n if (another || (version && version !== this.chosen)) this.choose(version ?? '')\n if (id) this.ruleId = id\n }\n\n /* The files picked belong to the version they were picked on, as the drafts do: switching drops them. */\n private choose(id: string) {\n this.chosen = id\n this.files = []\n this.originals = []\n this.updateContext()\n }\n\n /*\n * PageView reads the drafts; the files picked are the page's own unsaved state too. The shell asks about them before\n * any move - 「규정 목록」, the menu, another rule's address, closing the tab - and drops them once the move is agreed.\n */\n get addressDirty() {\n return super.addressDirty || this.files.length > 0 || this.originals.length > 0\n }\n\n get addressDiscardText() {\n return i18next.t('text.regulation-leave-unsaved')\n }\n\n discardAddressEdits(change?: any) {\n super.discardAddressEdits(change)\n this.choose(this.chosen)\n }\n\n /* A version switch stays on the page, so the page asks the shell's question itself. */\n private async mayLeave() {\n return await this.canDeactivate()\n }\n\n private async switchTo(id: string) {\n if (this.busy || id === this.current?.version.id) {\n const buttons = this.renderRoot.querySelector('ox-input-select-buttons') as any\n if (buttons) buttons.value = this.current?.version.id\n return\n }\n if (await this.mayLeave()) return this.choose(id)\n /* Staying: the buttons already show the version clicked - put them back on the one still open. */\n const buttons = this.renderRoot.querySelector('ox-input-select-buttons') as any\n if (buttons) buttons.value = this.current?.version.id\n }\n\n private async call(save: MutationController, variables: any, done = 'text.regulation-saved', context?: any) {\n if (this.busy) return undefined\n const data = await save.run(variables, { context })\n if (data) notify({ message: i18next.t(done) })\n return data\n }\n\n private patchOf(sent: any) {\n const patch: any = { ...sent }\n if (patch.effectiveOn === '') patch.effectiveOn = null\n return patch\n }\n\n /* Saves the text edits of the version chosen - the one door that clears them. */\n private async saveDraft(done = 'text.regulation-saved') {\n const on = this.current.version.id\n return await this.draft.submit(sent => this.call(this.saves.draft, { id: on, patch: this.patchOf(sent) }, done))\n }\n\n private async saveVersion() {\n if (!this.draft.dirty) return\n await this.saveDraft()\n }\n\n private async submit() {\n const id = this.current.version.id\n if (this.draft.dirty && !(await this.saveDraft())) return\n /* Only what the screen shows is put up: anything not saved yet stops the submission. */\n if (this.draft.dirty || this.current?.version.id !== id) return\n const confirmed = await OxPrompt.open({\n title: i18next.t('button.regulation-submit'),\n text: i18next.t('text.regulation-submit-confirm'),\n confirmButton: { text: i18next.t('button.regulation-submit') },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n if (confirmed) await this.call(this.saves.submit, { id }, 'text.regulation-submitted')\n }\n\n private async registerInForce() {\n const id = this.current.version.id\n if (this.draft.dirty && !(await this.saveDraft())) return\n if (this.draft.dirty || this.current?.version.id !== id) return\n const originals = this.originals\n const confirmed = await OxPrompt.open({\n title: i18next.t('button.regulation-register-in-force'),\n text: i18next.t('text.regulation-in-force-confirm', { version: this.current.version.version, day: this.current.version.effectiveOn ?? '' }),\n confirmButton: { text: i18next.t('button.regulation-register-in-force') },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n if (!confirmed) return\n const done = await this.call(\n this.saves.inForce,\n { id, files: originals },\n 'text.regulation-registered-in-force',\n originals.length ? uploadContext(() => {}) : undefined\n )\n if (done && this.originals === originals) this.originals = []\n }\n\n private async withdraw() {\n await this.call(this.saves.withdraw, { id: this.current.version.id })\n }\n\n private async newVersion() {\n const data = await this.call(this.saves.newVersion, { id: this.view.regulation.id })\n if (data) this.choose(data.newRegulationVersion.id)\n }\n\n /** The revision asked about is the one deleted: if the screen shows another once confirmed, nothing is deleted. */\n private async deleteVersion() {\n const id = this.current?.version.id\n if (!id) return\n const confirmed = await OxPrompt.open({\n title: i18next.t('button.regulation-version-delete'),\n text: i18next.t('text.regulation-version-delete-confirm'),\n confirmButton: { text: i18next.t('button.delete'), destructive: true },\n cancelButton: { text: i18next.t('button.cancel') }\n })\n if (!confirmed || this.current?.version.id !== id) return\n if (await this.call(this.saves.deleteVersion, { id })) this.choose('')\n }\n\n private async recordProcedure(kind: string) {\n const files = this.files\n const done = await this.procedure.submit(sent =>\n this.call(\n this.saves.procedure,\n {\n procedure: { versionId: this.current.version.id, kind, day: sent.day ?? '', notes: sent.notes || null },\n files\n },\n 'text.regulation-saved',\n files.length ? uploadContext(() => {}) : undefined\n )\n )\n /* Only what was sent is done - a file picked since stays. */\n if (done && this.files === files) this.files = []\n }\n\n private async deleteProcedure(id: string) {\n await this.call(this.saves.deleteProcedure, { id })\n }\n}\n"]}
@@ -15,10 +15,12 @@ declare const Regulations_base: (new (...args: any[]) => import("lit").LitElemen
15
15
  export declare class Regulations extends Regulations_base {
16
16
  static styles: import("lit").CSSResult[];
17
17
  private tab;
18
- private rules;
19
- private failure;
20
- private keeper;
21
- private employee;
18
+ private clause;
19
+ private read;
20
+ private get rules();
21
+ private get failure();
22
+ private get keeper();
23
+ private get employee();
22
24
  private reading;
23
25
  private sections;
24
26
  private chosenVersion;
@@ -41,7 +43,7 @@ export declare class Regulations extends Regulations_base {
41
43
  private readGuide;
42
44
  pageInitialized(): Promise<void>;
43
45
  pageUpdated(changes: any, lifecycle: any): Promise<void>;
44
- private fetch;
46
+ updated(): void;
45
47
  private open;
46
48
  /** 「읽었습니다」 is the acknowledgement of the announcement that told of the version - one record, wherever it is pressed. */
47
49
  private acknowledge;
@@ -9,9 +9,10 @@ import gql from 'graphql-tag';
9
9
  import { css, html, nothing } from 'lit';
10
10
  import { customElement, state } from 'lit/decorators.js';
11
11
  import { unsafeHTML } from 'lit/directives/unsafe-html.js';
12
- import { client } from '@operato/graphql';
12
+ import { client, QueryController } from '@operato/graphql';
13
13
  import { i18next, localize } from '@operato/i18n';
14
14
  import { notify } from '@operato/layout';
15
+ import { renderMarkdown } from '@things-factory/ai-assistant/dist-client/index.js';
15
16
  import { navigate, PageView } from '@operato/shell';
16
17
  import { DocumentPageStyles, ScrollbarStyles } from '@operato/styles';
17
18
  import { guideSectionOf, guideSections } from '../regulation/regulation-guide.js';
@@ -30,10 +31,22 @@ let Regulations = class Regulations extends localize(i18next)(PageView) {
30
31
  constructor() {
31
32
  super(...arguments);
32
33
  this.tab = 'rules';
33
- this.rules = null;
34
- this.failure = '';
35
- this.keeper = false;
36
- this.employee = false;
34
+ /* The clause the address points to, scrolled to once the rules it is in are drawn. */
35
+ this.clause = '';
36
+ /* The rules, and what the person is to them (ADR-0190). */
37
+ this.read = new QueryController(this, gql `
38
+ query {
39
+ companyRegulations {
40
+ regulation { id code name kind topics }
41
+ inForce { ...RegulationVersionViewFields }
42
+ due { ...RegulationVersionViewFields }
43
+ versions { ...RegulationVersionViewFields }
44
+ }
45
+ keeper: regulationKeeper
46
+ employee: amIComplianceEmployee
47
+ }
48
+ ${VERSION_VIEW}
49
+ `);
37
50
  this.reading = null;
38
51
  this.sections = [];
39
52
  this.chosenVersion = '';
@@ -158,8 +171,34 @@ let Regulations = class Regulations extends localize(i18next)(PageView) {
158
171
  margin: 0;
159
172
  white-space: pre-wrap;
160
173
  }
174
+ .markdown {
175
+ line-height: 1.6;
176
+ overflow-wrap: anywhere;
177
+ }
178
+ .markdown :is(p, ul, ol, table) {
179
+ margin: 0 0 var(--spacing-medium, 8px);
180
+ }
181
+ .markdown table {
182
+ border-collapse: collapse;
183
+ }
184
+ .markdown :is(th, td) {
185
+ border: 1px solid var(--ui-line-soft, var(--md-sys-color-outline-variant));
186
+ padding: 2px var(--spacing-small, 4px);
187
+ }
161
188
  `
162
189
  ]; }
190
+ get rules() {
191
+ return this.read.data?.companyRegulations ?? null;
192
+ }
193
+ get failure() {
194
+ return this.read.error ? failureOf(this.read.error) : '';
195
+ }
196
+ get keeper() {
197
+ return !!this.read.data?.keeper;
198
+ }
199
+ get employee() {
200
+ return !!this.read.data?.employee;
201
+ }
163
202
  get context() {
164
203
  return {
165
204
  title: i18next.t('title.regulations'),
@@ -246,21 +285,35 @@ let Regulations = class Regulations extends localize(i18next)(PageView) {
246
285
  <header class="page-section-header"><h3>${i18next.t('text.regulation-changes')}</h3></header>
247
286
  ${shown.version.changeSummary ? html `<p class="page-section-note">${shown.version.changeSummary}</p>` : nothing}
248
287
  <table class="changes">
249
- ${shown.changes.map((one) => html `<tr><td>제${one.number}조${one.title ? `(${one.title})` : ''}</td><td>${words[one.change]}</td></tr>`)}
288
+ ${shown.changes.map((one) => html `<tr><td>${one.heading}</td><td>${words[one.change]}</td></tr>`)}
250
289
  </table>
251
290
  </section>`
252
291
  : nothing}
253
- <section class="page-section">
254
- <header class="page-section-header"><h3>${i18next.t('text.regulation-articles')}</h3></header>
255
- <ol class="toc">
256
- ${shown.clauses.map((one) => html `<li><a @click=${() => this.renderRoot.querySelector(`#clause-${CSS.escape(one.number)}`)?.scrollIntoView()}>제${one.number}조${one.title ? `(${one.title})` : ''}</a></li>`)}
257
- </ol>
258
- ${shown.clauses.map((one, index) => html `${one.chapter && one.chapter !== shown.clauses[index - 1]?.chapter ? html `<h4>${one.chapter}</h4>` : nothing}
259
- <div class="clause" id="clause-${one.number}" ?data-chosen=${clause === one.number}>
260
- <h4>제${one.number}조${one.title ? `(${one.title})` : ''}</h4>
261
- <p>${one.text}</p>
262
- </div>`)}
263
- </section>`;
292
+ ${shown.clauses.length
293
+ ? html `<section class="page-section">
294
+ <header class="page-section-header"><h3>${i18next.t('text.regulation-articles')}</h3></header>
295
+ <ol class="toc">
296
+ ${shown.clauses.map((one) => html `<li><a @click=${() => this.renderRoot.querySelector(`#clause-${CSS.escape(one.number)}`)?.scrollIntoView()}>${one.heading}</a></li>`)}
297
+ </ol>
298
+ ${shown.clauses.map((one, index) => html `${one.chapter && one.chapter !== shown.clauses[index - 1]?.chapter ? html `<h4>${one.chapter}</h4>` : nothing}
299
+ <div class="clause" id="clause-${one.number}" ?data-chosen=${clause === one.number}>
300
+ <h4>${one.heading}</h4>
301
+ <p>${one.text}</p>
302
+ </div>`)}
303
+ </section>`
304
+ : nothing}
305
+ ${shown.text
306
+ ? html `<section class="page-section">
307
+ <header class="page-section-header"><h3>${i18next.t('text.regulation-text')}</h3></header>
308
+ <div class="markdown">${unsafeHTML(renderMarkdown(shown.text))}</div>
309
+ </section>`
310
+ : nothing}
311
+ ${shown.appendix
312
+ ? html `<section class="page-section">
313
+ <header class="page-section-header"><h3>${i18next.t('text.regulation-appendix')}</h3></header>
314
+ <div class="markdown">${unsafeHTML(renderMarkdown(shown.appendix))}</div>
315
+ </section>`
316
+ : nothing}`;
264
317
  }
265
318
  /* A topic of the guide at a time - the topics beside it, or above it on a narrow screen; `?guide=<id>` names the topic. */
266
319
  renderGuide() {
@@ -304,43 +357,17 @@ let Regulations = class Regulations extends localize(i18next)(PageView) {
304
357
  if (!this.active)
305
358
  return;
306
359
  this.tab = (lifecycle?.params?.tab || this.query.get('tab') || 'rules');
307
- await this.fetch();
308
360
  if (this.tab === 'guide')
309
361
  await this.readGuide();
310
- const clause = this.query.get('clause');
311
- if (!clause)
312
- return;
313
- await this.updateComplete;
314
- this.renderRoot.querySelector(`#clause-${CSS.escape(clause)}`)?.scrollIntoView();
362
+ this.clause = this.query.get('clause') ?? '';
363
+ this.requestUpdate();
315
364
  }
316
- async fetch() {
317
- try {
318
- const response = await client.query({
319
- query: gql `
320
- query {
321
- companyRegulations {
322
- regulation { id code name kind topics }
323
- inForce { ...RegulationVersionViewFields }
324
- due { ...RegulationVersionViewFields }
325
- versions { ...RegulationVersionViewFields }
326
- }
327
- keeper: regulationKeeper
328
- employee: amIComplianceEmployee
329
- }
330
- ${VERSION_VIEW}
331
- `,
332
- fetchPolicy: 'no-cache'
333
- });
334
- if (response.errors?.length)
335
- throw response;
336
- this.rules = response.data.companyRegulations;
337
- this.keeper = !!response.data.keeper;
338
- this.employee = !!response.data.employee;
339
- this.failure = '';
340
- }
341
- catch (error) {
342
- this.failure = failureOf(error);
343
- }
365
+ updated() {
366
+ const at = this.clause && this.renderRoot.querySelector(`#clause-${CSS.escape(this.clause)}`);
367
+ if (!at)
368
+ return;
369
+ this.clause = '';
370
+ at.scrollIntoView();
344
371
  }
345
372
  open(code) {
346
373
  this.chosenVersion = '';
@@ -366,7 +393,7 @@ let Regulations = class Regulations extends localize(i18next)(PageView) {
366
393
  if (response.errors?.length)
367
394
  throw response;
368
395
  notify({ message: i18next.t('text.regulation-acknowledged') });
369
- await this.fetch();
396
+ await this.read.refetch();
370
397
  }
371
398
  catch (error) {
372
399
  notify({ level: 'error', message: failureOf(error) });
@@ -377,22 +404,6 @@ __decorate([
377
404
  state(),
378
405
  __metadata("design:type", String)
379
406
  ], Regulations.prototype, "tab", void 0);
380
- __decorate([
381
- state(),
382
- __metadata("design:type", Object)
383
- ], Regulations.prototype, "rules", void 0);
384
- __decorate([
385
- state(),
386
- __metadata("design:type", Object)
387
- ], Regulations.prototype, "failure", void 0);
388
- __decorate([
389
- state(),
390
- __metadata("design:type", Object)
391
- ], Regulations.prototype, "keeper", void 0);
392
- __decorate([
393
- state(),
394
- __metadata("design:type", Object)
395
- ], Regulations.prototype, "employee", void 0);
396
407
  __decorate([
397
408
  state(),
398
409
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"regulations.js","sourceRoot":"","sources":["../../client/pages/regulations.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/input/ox-input-select-buttons.js'\nimport '@operato/list-state/ox-page-state.js'\nimport '../components/my-trainings.js'\nimport '../components/compliance-my-reports.js'\nimport '../components/compliance-my-privacy-requests.js'\nimport '../components/compliance-my-inventions.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, nothing } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js'\n\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify } from '@operato/layout'\nimport { navigate, PageView } from '@operato/shell'\nimport { DocumentPageStyles, ScrollbarStyles } from '@operato/styles'\n\nimport { guideSectionOf, guideSections, type GuideSection } from '../regulation/regulation-guide.js'\nimport { VERSION_VIEW } from '../regulation/regulation-fragments.js'\nimport { failureOf, wordOf } from '../words.js'\n\nconst TABS = ['rules', 'trainings', 'report', 'privacy', 'inventions', 'guide'] as const\ntype Tab = (typeof TABS)[number]\n/* What an employee does as one - a keeper of the rules who is not an employee reads the rules and the guide only. */\nconst EMPLOYEE_TABS: Tab[] = ['trainings', 'report', 'privacy', 'inventions']\n\n/**\n * 회사 규정과 안내 (ADR-0187 decision 10) - the one way in for an employee: the company's rules in force and to come, with\n * what changed and whether I read them; my legal trainings; reporting a case; my privacy requests; reporting an\n * invention; and the guide on the law, read here a topic at a time at the page's width. A partner is not an employee and is told so. The keepers of the rules find their\n * way to managing them at the top.\n */\n@customElement('compliance-regulations')\nexport class Regulations extends localize(i18next)(PageView) {\n static styles = [\n DocumentPageStyles,\n ScrollbarStyles,\n css`\n :host {\n display: block;\n overflow: auto;\n }\n ul.rules,\n ul.guide,\n ol.toc {\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n gap: var(--spacing-medium, 8px);\n }\n .rule {\n display: grid;\n grid-template-columns: 1fr auto;\n gap: var(--spacing-small, 4px) var(--spacing-large, 12px);\n padding: var(--spacing-large, 12px);\n border: 1px solid var(--ui-line-soft, var(--md-sys-color-outline-variant));\n border-radius: var(--md-sys-shape-corner-small, 4px);\n cursor: pointer;\n }\n .rule strong {\n font-weight: 600;\n }\n .muted {\n color: var(--ui-muted, var(--md-sys-color-on-surface-variant));\n }\n .read {\n color: var(--ui-ok, var(--md-sys-color-primary));\n }\n .unread {\n color: var(--ui-warn, var(--md-sys-color-error));\n }\n table.changes {\n border-collapse: collapse;\n width: 100%;\n }\n table.changes td,\n table.changes th {\n text-align: left;\n padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);\n border-bottom: 1px solid var(--ui-line-soft, var(--md-sys-color-outline-variant));\n }\n ol.toc a,\n ul.guide a {\n cursor: pointer;\n }\n .guide-page {\n container-type: inline-size;\n }\n .guide-layout {\n display: grid;\n grid-template-columns: 200px minmax(0, 1fr);\n gap: var(--spacing-large, 12px) 24px;\n align-items: start;\n }\n ul.guide {\n position: sticky;\n top: 0;\n gap: 2px;\n }\n ul.guide a {\n display: block;\n padding: 6px var(--spacing-medium, 8px);\n border-radius: var(--md-sys-shape-corner-small, 4px);\n color: inherit;\n text-decoration: none;\n }\n ul.guide a[data-chosen] {\n background: var(--md-sys-color-secondary-container);\n color: var(--md-sys-color-on-secondary-container);\n font-weight: 600;\n }\n .guide-body {\n max-width: 960px;\n line-height: 1.65;\n }\n .guide-body h2 {\n margin: 0 0 var(--spacing-medium, 8px);\n font-size: var(--ui-t-title, 18px);\n }\n .guide-body h3 {\n margin: 24px 0 var(--spacing-small, 4px);\n font-size: var(--ui-t-body, 13px);\n font-weight: 600;\n }\n /* Narrow, the topics wrap above the text. */\n @container (max-width: 640px) {\n .guide-layout {\n grid-template-columns: minmax(0, 1fr);\n }\n ul.guide {\n position: static;\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n }\n ul.guide a {\n border: 1px solid var(--ui-line-soft, var(--md-sys-color-outline-variant));\n border-radius: 999px;\n padding: 4px 10px;\n }\n }\n .clause {\n scroll-margin-top: var(--spacing-large, 12px);\n }\n .clause h4 {\n margin: var(--spacing-large, 12px) 0 var(--spacing-small, 4px);\n font-size: var(--ui-t-body, 13px);\n font-weight: 600;\n }\n .clause p {\n margin: 0;\n white-space: pre-wrap;\n }\n `\n ]\n\n @state() private tab: Tab = 'rules'\n @state() private rules: any[] | null = null\n @state() private failure = ''\n @state() private keeper = false\n @state() private employee = false\n @state() private reading: { id: string; styles: string; html: string } | null = null\n @state() private sections: GuideSection[] = []\n @state() private chosenVersion = ''\n\n get context() {\n return {\n title: i18next.t('title.regulations'),\n frame: 'document',\n actions: this.keeper ? [{ title: i18next.t('button.regulation-manage'), icon: 'settings', action: () => navigate('regulation-list') }] : []\n }\n }\n\n private get query() {\n return new URLSearchParams(location.search)\n }\n\n render() {\n if (this.failure) return html`<ox-page-state state=\"error\" .message=${this.failure}></ox-page-state>`\n if (!this.rules) return html`<ox-page-state state=\"loading\"></ox-page-state>`\n const tabs = TABS.filter(tab => (tab !== 'guide' || this.sections.length) && (this.employee || !EMPLOYEE_TABS.includes(tab)))\n /* An address to a tab one has not is the rules. */\n const tab = tabs.includes(this.tab) ? this.tab : 'rules'\n return html`<div class=\"page\">\n <ox-url-tabs .tabs=${tabs.map(key => ({ key, label: i18next.t(`text.regulations-tab-${key}`) }))} @tab-change=${(e: CustomEvent) => ((this.tab = e.detail.key), this.tab === 'guide' && this.readGuide())}></ox-url-tabs>\n ${tab === 'rules' ? this.renderRules() : nothing}\n ${tab === 'trainings' ? html`<compliance-my-trainings></compliance-my-trainings>` : nothing}\n ${tab === 'report' ? html`<compliance-my-reports></compliance-my-reports>` : nothing}\n ${tab === 'privacy' ? html`<compliance-my-privacy-requests></compliance-my-privacy-requests>` : nothing}\n ${tab === 'inventions' ? html`<compliance-my-inventions></compliance-my-inventions>` : nothing}\n ${tab === 'guide' ? this.renderGuide() : nothing}\n </div>`\n }\n\n private renderRules() {\n const code = this.query.get('regulation')\n const topic = this.query.get('topic')\n const shown = (this.rules ?? []).filter(one => !topic || (one.regulation.topics ?? []).includes(topic))\n const chosen = code ? shown.find(one => one.regulation.code === code) : null\n if (chosen) return this.renderRule(chosen)\n return html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulations-company')}</h3></header>\n ${topic ? html`<p class=\"page-section-note\">${i18next.t('text.regulations-of-topic', { topic: this.sections.find(one => one.id === topic)?.title ?? topic })}</p>` : nothing}\n ${shown.length\n ? html`<ul class=\"rules\">\n ${shown.map(one => {\n const current = one.inForce ?? one.due\n return html`<li class=\"rule\" @click=${() => this.open(one.regulation.code)}>\n <strong>${one.regulation.name}</strong>\n <span class=${current?.readAt ? 'read' : current?.told ? 'unread' : 'muted'}>${current?.readAt ? i18next.t('text.regulation-read') : current?.told ? i18next.t('text.regulation-unread') : ''}</span>\n <span class=\"muted\"\n >${one.inForce ? i18next.t('text.regulation-in-force', { version: one.inForce.version.version, day: one.inForce.version.effectiveOn }) : i18next.t('text.regulation-none-in-force')}</span\n >\n <span class=\"muted\">${one.due ? i18next.t('text.regulation-due', { version: one.due.version.version, day: one.due.version.effectiveOn }) : ''}</span>\n </li>`\n })}\n </ul>`\n : html`<ox-page-state state=\"empty\" .message=${i18next.t(topic ? 'text.regulations-none-of-topic' : 'text.regulations-none')}></ox-page-state>`}\n </section>`\n }\n\n private renderRule(view: any) {\n const versions = view.versions as any[]\n const shown = versions.find(one => one.version.id === (this.chosenVersion || this.query.get('version'))) ?? view.inForce ?? view.due ?? versions[0]\n const clause = this.query.get('clause')\n if (!shown) return nothing\n const words: Record<string, string> = { ADDED: i18next.t('text.regulation-change-added'), CHANGED: i18next.t('text.regulation-change-changed'), REMOVED: i18next.t('text.regulation-change-removed') }\n return html`<section class=\"page-section\">\n <header class=\"page-section-header\">\n <h3>${view.regulation.name} · ${i18next.t('text.regulation-version-of', { version: shown.version.version })}</h3>\n <div class=\"page-section-actions\">\n <button @click=${() => this.open('')}>${i18next.t('button.regulation-all')}</button>\n ${shown.told && !shown.readAt ? html`<button class=\"primary\" @click=${() => this.acknowledge(shown)}>${i18next.t('button.regulation-acknowledge')}</button>` : nothing}\n </div>\n </header>\n <p class=\"page-section-note\">\n ${wordOf('regulation-period', shown.period)} · ${i18next.t('text.regulation-effective', { day: shown.version.effectiveOn })}${shown.endsOn ? ` ~ ${shown.endsOn}` : ''}\n ${shown.readAt ? html` · <span class=\"read\">${i18next.t('text.regulation-read-at', { at: new Date(shown.readAt).toLocaleString() })}</span>` : nothing}\n </p>\n <p class=\"page-section-note muted\">${i18next.t('text.regulation-read-is-not-consent')}</p>\n <ox-input-select-buttons\n .value=${shown.version.id}\n .options=${versions.map((one: any) => ({ value: one.version.id, display: `${i18next.t('text.regulation-version-of', { version: one.version.version })} · ${wordOf('regulation-period', one.period)}` }))}\n @change=${(e: CustomEvent) => e.detail && (this.chosenVersion = e.detail)}\n ></ox-input-select-buttons>\n </section>\n ${shown.changes.length && shown.version.version > 1\n ? html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-changes')}</h3></header>\n ${shown.version.changeSummary ? html`<p class=\"page-section-note\">${shown.version.changeSummary}</p>` : nothing}\n <table class=\"changes\">\n ${shown.changes.map((one: any) => html`<tr><td>제${one.number}조${one.title ? `(${one.title})` : ''}</td><td>${words[one.change]}</td></tr>`)}\n </table>\n </section>`\n : nothing}\n <section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-articles')}</h3></header>\n <ol class=\"toc\">\n ${shown.clauses.map((one: any) => html`<li><a @click=${() => this.renderRoot.querySelector(`#clause-${CSS.escape(one.number)}`)?.scrollIntoView()}>제${one.number}조${one.title ? `(${one.title})` : ''}</a></li>`)}\n </ol>\n ${shown.clauses.map(\n (one: any, index: number) => html`${one.chapter && one.chapter !== shown.clauses[index - 1]?.chapter ? html`<h4>${one.chapter}</h4>` : nothing}\n <div class=\"clause\" id=\"clause-${one.number}\" ?data-chosen=${clause === one.number}>\n <h4>제${one.number}조${one.title ? `(${one.title})` : ''}</h4>\n <p>${one.text}</p>\n </div>`\n )}\n </section>`\n }\n\n /* A topic of the guide at a time - the topics beside it, or above it on a narrow screen; `?guide=<id>` names the topic. */\n private renderGuide() {\n const chosen = this.chosenGuide()\n return html`<section class=\"page-section guide-page\">\n <div class=\"guide-layout\">\n <ul class=\"guide\">\n ${this.sections.map(one => html`<li><a ?data-chosen=${one.id === chosen?.id} @click=${() => this.openGuide(one.id)}>${one.title}</a></li>`)}\n </ul>\n <article class=\"guide-body\">${this.reading?.id === chosen?.id ? unsafeHTML(this.reading!.styles + this.reading!.html) : nothing}</article>\n </div>\n </section>`\n }\n\n private chosenGuide(): GuideSection | undefined {\n const id = this.query.get('guide')\n return this.sections.find(one => one.id === id) ?? this.sections[0]\n }\n\n private openGuide(id: string) {\n const params = new URLSearchParams(location.search)\n params.set('tab', 'guide')\n params.set('guide', id)\n navigate(`regulations?${params}`)\n }\n\n private async readGuide() {\n const chosen = this.chosenGuide()\n if (!chosen || this.reading?.id === chosen.id) return\n const section = await guideSectionOf(chosen.topic, chosen.id)\n this.reading = section ? { id: chosen.id, ...section } : null\n await this.updateComplete\n this.renderRoot.querySelector('.guide-body')?.scrollTo?.({ top: 0 })\n ;(this as any).scrollTop = 0\n }\n\n async pageInitialized() {\n this.sections = await guideSections()\n this.updateContext()\n if (this.tab === 'guide') await this.readGuide()\n }\n\n async pageUpdated(changes: any, lifecycle: any) {\n if (!this.active) return\n this.tab = ((lifecycle?.params?.tab as Tab) || this.query.get('tab') || 'rules') as Tab\n await this.fetch()\n if (this.tab === 'guide') await this.readGuide()\n const clause = this.query.get('clause')\n if (!clause) return\n await this.updateComplete\n this.renderRoot.querySelector(`#clause-${CSS.escape(clause)}`)?.scrollIntoView()\n }\n\n private async fetch() {\n try {\n const response = await client.query({\n query: gql`\n query {\n companyRegulations {\n regulation { id code name kind topics }\n inForce { ...RegulationVersionViewFields }\n due { ...RegulationVersionViewFields }\n versions { ...RegulationVersionViewFields }\n }\n keeper: regulationKeeper\n employee: amIComplianceEmployee\n }\n ${VERSION_VIEW}\n `,\n fetchPolicy: 'no-cache'\n })\n if ((response as any).errors?.length) throw response\n this.rules = response.data.companyRegulations\n this.keeper = !!response.data.keeper\n this.employee = !!response.data.employee\n this.failure = ''\n } catch (error) {\n this.failure = failureOf(error)\n }\n }\n\n private open(code: string) {\n this.chosenVersion = ''\n const params = new URLSearchParams(location.search)\n if (code) params.set('regulation', code)\n else ['regulation', 'version', 'clause'].forEach(name => params.delete(name))\n const query = params.toString()\n navigate(`regulations${query ? `?${query}` : ''}`)\n }\n\n /** 「읽었습니다」 is the acknowledgement of the announcement that told of the version - one record, wherever it is pressed. */\n private async acknowledge(view: any) {\n try {\n const response = await client.mutate({\n mutation: gql`\n mutation ($id: String!) {\n acknowledgeAnnouncement(id: $id) { id }\n }\n `,\n variables: { id: view.version.announcementId }\n })\n if ((response as any).errors?.length) throw response\n notify({ message: i18next.t('text.regulation-acknowledged') })\n await this.fetch()\n } catch (error) {\n notify({ level: 'error', message: failureOf(error) })\n }\n }\n}\n"]}
1
+ {"version":3,"file":"regulations.js","sourceRoot":"","sources":["../../client/pages/regulations.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/input/ox-input-select-buttons.js'\nimport '@operato/list-state/ox-page-state.js'\nimport '../components/my-trainings.js'\nimport '../components/compliance-my-reports.js'\nimport '../components/compliance-my-privacy-requests.js'\nimport '../components/compliance-my-inventions.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, nothing } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js'\n\nimport { client, QueryController } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify } from '@operato/layout'\nimport { renderMarkdown } from '@things-factory/ai-assistant/dist-client/index.js'\nimport { navigate, PageView } from '@operato/shell'\nimport { DocumentPageStyles, ScrollbarStyles } from '@operato/styles'\n\nimport { guideSectionOf, guideSections, type GuideSection } from '../regulation/regulation-guide.js'\nimport { VERSION_VIEW } from '../regulation/regulation-fragments.js'\nimport { failureOf, wordOf } from '../words.js'\n\nconst TABS = ['rules', 'trainings', 'report', 'privacy', 'inventions', 'guide'] as const\ntype Tab = (typeof TABS)[number]\n/* What an employee does as one - a keeper of the rules who is not an employee reads the rules and the guide only. */\nconst EMPLOYEE_TABS: Tab[] = ['trainings', 'report', 'privacy', 'inventions']\n\n/**\n * 회사 규정과 안내 (ADR-0187 decision 10) - the one way in for an employee: the company's rules in force and to come, with\n * what changed and whether I read them; my legal trainings; reporting a case; my privacy requests; reporting an\n * invention; and the guide on the law, read here a topic at a time at the page's width. A partner is not an employee and is told so. The keepers of the rules find their\n * way to managing them at the top.\n */\n@customElement('compliance-regulations')\nexport class Regulations extends localize(i18next)(PageView) {\n static styles = [\n DocumentPageStyles,\n ScrollbarStyles,\n css`\n :host {\n display: block;\n overflow: auto;\n }\n ul.rules,\n ul.guide,\n ol.toc {\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n gap: var(--spacing-medium, 8px);\n }\n .rule {\n display: grid;\n grid-template-columns: 1fr auto;\n gap: var(--spacing-small, 4px) var(--spacing-large, 12px);\n padding: var(--spacing-large, 12px);\n border: 1px solid var(--ui-line-soft, var(--md-sys-color-outline-variant));\n border-radius: var(--md-sys-shape-corner-small, 4px);\n cursor: pointer;\n }\n .rule strong {\n font-weight: 600;\n }\n .muted {\n color: var(--ui-muted, var(--md-sys-color-on-surface-variant));\n }\n .read {\n color: var(--ui-ok, var(--md-sys-color-primary));\n }\n .unread {\n color: var(--ui-warn, var(--md-sys-color-error));\n }\n table.changes {\n border-collapse: collapse;\n width: 100%;\n }\n table.changes td,\n table.changes th {\n text-align: left;\n padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);\n border-bottom: 1px solid var(--ui-line-soft, var(--md-sys-color-outline-variant));\n }\n ol.toc a,\n ul.guide a {\n cursor: pointer;\n }\n .guide-page {\n container-type: inline-size;\n }\n .guide-layout {\n display: grid;\n grid-template-columns: 200px minmax(0, 1fr);\n gap: var(--spacing-large, 12px) 24px;\n align-items: start;\n }\n ul.guide {\n position: sticky;\n top: 0;\n gap: 2px;\n }\n ul.guide a {\n display: block;\n padding: 6px var(--spacing-medium, 8px);\n border-radius: var(--md-sys-shape-corner-small, 4px);\n color: inherit;\n text-decoration: none;\n }\n ul.guide a[data-chosen] {\n background: var(--md-sys-color-secondary-container);\n color: var(--md-sys-color-on-secondary-container);\n font-weight: 600;\n }\n .guide-body {\n max-width: 960px;\n line-height: 1.65;\n }\n .guide-body h2 {\n margin: 0 0 var(--spacing-medium, 8px);\n font-size: var(--ui-t-title, 18px);\n }\n .guide-body h3 {\n margin: 24px 0 var(--spacing-small, 4px);\n font-size: var(--ui-t-body, 13px);\n font-weight: 600;\n }\n /* Narrow, the topics wrap above the text. */\n @container (max-width: 640px) {\n .guide-layout {\n grid-template-columns: minmax(0, 1fr);\n }\n ul.guide {\n position: static;\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n }\n ul.guide a {\n border: 1px solid var(--ui-line-soft, var(--md-sys-color-outline-variant));\n border-radius: 999px;\n padding: 4px 10px;\n }\n }\n .clause {\n scroll-margin-top: var(--spacing-large, 12px);\n }\n .clause h4 {\n margin: var(--spacing-large, 12px) 0 var(--spacing-small, 4px);\n font-size: var(--ui-t-body, 13px);\n font-weight: 600;\n }\n .clause p {\n margin: 0;\n white-space: pre-wrap;\n }\n .markdown {\n line-height: 1.6;\n overflow-wrap: anywhere;\n }\n .markdown :is(p, ul, ol, table) {\n margin: 0 0 var(--spacing-medium, 8px);\n }\n .markdown table {\n border-collapse: collapse;\n }\n .markdown :is(th, td) {\n border: 1px solid var(--ui-line-soft, var(--md-sys-color-outline-variant));\n padding: 2px var(--spacing-small, 4px);\n }\n `\n ]\n\n @state() private tab: Tab = 'rules'\n /* The clause the address points to, scrolled to once the rules it is in are drawn. */\n private clause = ''\n\n /* The rules, and what the person is to them (ADR-0190). */\n private read = new QueryController(\n this,\n gql`\n query {\n companyRegulations {\n regulation { id code name kind topics }\n inForce { ...RegulationVersionViewFields }\n due { ...RegulationVersionViewFields }\n versions { ...RegulationVersionViewFields }\n }\n keeper: regulationKeeper\n employee: amIComplianceEmployee\n }\n ${VERSION_VIEW}\n `\n )\n\n private get rules(): any[] | null {\n return this.read.data?.companyRegulations ?? null\n }\n\n private get failure() {\n return this.read.error ? failureOf(this.read.error) : ''\n }\n\n private get keeper() {\n return !!this.read.data?.keeper\n }\n\n private get employee() {\n return !!this.read.data?.employee\n }\n @state() private reading: { id: string; styles: string; html: string } | null = null\n @state() private sections: GuideSection[] = []\n @state() private chosenVersion = ''\n\n get context() {\n return {\n title: i18next.t('title.regulations'),\n frame: 'document',\n actions: this.keeper ? [{ title: i18next.t('button.regulation-manage'), icon: 'settings', action: () => navigate('regulation-list') }] : []\n }\n }\n\n private get query() {\n return new URLSearchParams(location.search)\n }\n\n render() {\n if (this.failure) return html`<ox-page-state state=\"error\" .message=${this.failure}></ox-page-state>`\n if (!this.rules) return html`<ox-page-state state=\"loading\"></ox-page-state>`\n const tabs = TABS.filter(tab => (tab !== 'guide' || this.sections.length) && (this.employee || !EMPLOYEE_TABS.includes(tab)))\n /* An address to a tab one has not is the rules. */\n const tab = tabs.includes(this.tab) ? this.tab : 'rules'\n return html`<div class=\"page\">\n <ox-url-tabs .tabs=${tabs.map(key => ({ key, label: i18next.t(`text.regulations-tab-${key}`) }))} @tab-change=${(e: CustomEvent) => ((this.tab = e.detail.key), this.tab === 'guide' && this.readGuide())}></ox-url-tabs>\n ${tab === 'rules' ? this.renderRules() : nothing}\n ${tab === 'trainings' ? html`<compliance-my-trainings></compliance-my-trainings>` : nothing}\n ${tab === 'report' ? html`<compliance-my-reports></compliance-my-reports>` : nothing}\n ${tab === 'privacy' ? html`<compliance-my-privacy-requests></compliance-my-privacy-requests>` : nothing}\n ${tab === 'inventions' ? html`<compliance-my-inventions></compliance-my-inventions>` : nothing}\n ${tab === 'guide' ? this.renderGuide() : nothing}\n </div>`\n }\n\n private renderRules() {\n const code = this.query.get('regulation')\n const topic = this.query.get('topic')\n const shown = (this.rules ?? []).filter(one => !topic || (one.regulation.topics ?? []).includes(topic))\n const chosen = code ? shown.find(one => one.regulation.code === code) : null\n if (chosen) return this.renderRule(chosen)\n return html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulations-company')}</h3></header>\n ${topic ? html`<p class=\"page-section-note\">${i18next.t('text.regulations-of-topic', { topic: this.sections.find(one => one.id === topic)?.title ?? topic })}</p>` : nothing}\n ${shown.length\n ? html`<ul class=\"rules\">\n ${shown.map(one => {\n const current = one.inForce ?? one.due\n return html`<li class=\"rule\" @click=${() => this.open(one.regulation.code)}>\n <strong>${one.regulation.name}</strong>\n <span class=${current?.readAt ? 'read' : current?.told ? 'unread' : 'muted'}>${current?.readAt ? i18next.t('text.regulation-read') : current?.told ? i18next.t('text.regulation-unread') : ''}</span>\n <span class=\"muted\"\n >${one.inForce ? i18next.t('text.regulation-in-force', { version: one.inForce.version.version, day: one.inForce.version.effectiveOn }) : i18next.t('text.regulation-none-in-force')}</span\n >\n <span class=\"muted\">${one.due ? i18next.t('text.regulation-due', { version: one.due.version.version, day: one.due.version.effectiveOn }) : ''}</span>\n </li>`\n })}\n </ul>`\n : html`<ox-page-state state=\"empty\" .message=${i18next.t(topic ? 'text.regulations-none-of-topic' : 'text.regulations-none')}></ox-page-state>`}\n </section>`\n }\n\n private renderRule(view: any) {\n const versions = view.versions as any[]\n const shown = versions.find(one => one.version.id === (this.chosenVersion || this.query.get('version'))) ?? view.inForce ?? view.due ?? versions[0]\n const clause = this.query.get('clause')\n if (!shown) return nothing\n const words: Record<string, string> = { ADDED: i18next.t('text.regulation-change-added'), CHANGED: i18next.t('text.regulation-change-changed'), REMOVED: i18next.t('text.regulation-change-removed') }\n return html`<section class=\"page-section\">\n <header class=\"page-section-header\">\n <h3>${view.regulation.name} · ${i18next.t('text.regulation-version-of', { version: shown.version.version })}</h3>\n <div class=\"page-section-actions\">\n <button @click=${() => this.open('')}>${i18next.t('button.regulation-all')}</button>\n ${shown.told && !shown.readAt ? html`<button class=\"primary\" @click=${() => this.acknowledge(shown)}>${i18next.t('button.regulation-acknowledge')}</button>` : nothing}\n </div>\n </header>\n <p class=\"page-section-note\">\n ${wordOf('regulation-period', shown.period)} · ${i18next.t('text.regulation-effective', { day: shown.version.effectiveOn })}${shown.endsOn ? ` ~ ${shown.endsOn}` : ''}\n ${shown.readAt ? html` · <span class=\"read\">${i18next.t('text.regulation-read-at', { at: new Date(shown.readAt).toLocaleString() })}</span>` : nothing}\n </p>\n <p class=\"page-section-note muted\">${i18next.t('text.regulation-read-is-not-consent')}</p>\n <ox-input-select-buttons\n .value=${shown.version.id}\n .options=${versions.map((one: any) => ({ value: one.version.id, display: `${i18next.t('text.regulation-version-of', { version: one.version.version })} · ${wordOf('regulation-period', one.period)}` }))}\n @change=${(e: CustomEvent) => e.detail && (this.chosenVersion = e.detail)}\n ></ox-input-select-buttons>\n </section>\n ${shown.changes.length && shown.version.version > 1\n ? html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-changes')}</h3></header>\n ${shown.version.changeSummary ? html`<p class=\"page-section-note\">${shown.version.changeSummary}</p>` : nothing}\n <table class=\"changes\">\n ${shown.changes.map((one: any) => html`<tr><td>${one.heading}</td><td>${words[one.change]}</td></tr>`)}\n </table>\n </section>`\n : nothing}\n ${shown.clauses.length\n ? html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-articles')}</h3></header>\n <ol class=\"toc\">\n ${shown.clauses.map((one: any) => html`<li><a @click=${() => this.renderRoot.querySelector(`#clause-${CSS.escape(one.number)}`)?.scrollIntoView()}>${one.heading}</a></li>`)}\n </ol>\n ${shown.clauses.map(\n (one: any, index: number) => html`${one.chapter && one.chapter !== shown.clauses[index - 1]?.chapter ? html`<h4>${one.chapter}</h4>` : nothing}\n <div class=\"clause\" id=\"clause-${one.number}\" ?data-chosen=${clause === one.number}>\n <h4>${one.heading}</h4>\n <p>${one.text}</p>\n </div>`\n )}\n </section>`\n : nothing}\n ${shown.text\n ? html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-text')}</h3></header>\n <div class=\"markdown\">${unsafeHTML(renderMarkdown(shown.text))}</div>\n </section>`\n : nothing}\n ${shown.appendix\n ? html`<section class=\"page-section\">\n <header class=\"page-section-header\"><h3>${i18next.t('text.regulation-appendix')}</h3></header>\n <div class=\"markdown\">${unsafeHTML(renderMarkdown(shown.appendix))}</div>\n </section>`\n : nothing}`\n }\n\n /* A topic of the guide at a time - the topics beside it, or above it on a narrow screen; `?guide=<id>` names the topic. */\n private renderGuide() {\n const chosen = this.chosenGuide()\n return html`<section class=\"page-section guide-page\">\n <div class=\"guide-layout\">\n <ul class=\"guide\">\n ${this.sections.map(one => html`<li><a ?data-chosen=${one.id === chosen?.id} @click=${() => this.openGuide(one.id)}>${one.title}</a></li>`)}\n </ul>\n <article class=\"guide-body\">${this.reading?.id === chosen?.id ? unsafeHTML(this.reading!.styles + this.reading!.html) : nothing}</article>\n </div>\n </section>`\n }\n\n private chosenGuide(): GuideSection | undefined {\n const id = this.query.get('guide')\n return this.sections.find(one => one.id === id) ?? this.sections[0]\n }\n\n private openGuide(id: string) {\n const params = new URLSearchParams(location.search)\n params.set('tab', 'guide')\n params.set('guide', id)\n navigate(`regulations?${params}`)\n }\n\n private async readGuide() {\n const chosen = this.chosenGuide()\n if (!chosen || this.reading?.id === chosen.id) return\n const section = await guideSectionOf(chosen.topic, chosen.id)\n this.reading = section ? { id: chosen.id, ...section } : null\n await this.updateComplete\n this.renderRoot.querySelector('.guide-body')?.scrollTo?.({ top: 0 })\n ;(this as any).scrollTop = 0\n }\n\n async pageInitialized() {\n this.sections = await guideSections()\n this.updateContext()\n if (this.tab === 'guide') await this.readGuide()\n }\n\n async pageUpdated(changes: any, lifecycle: any) {\n if (!this.active) return\n this.tab = ((lifecycle?.params?.tab as Tab) || this.query.get('tab') || 'rules') as Tab\n if (this.tab === 'guide') await this.readGuide()\n this.clause = this.query.get('clause') ?? ''\n this.requestUpdate()\n }\n\n updated() {\n const at = this.clause && this.renderRoot.querySelector(`#clause-${CSS.escape(this.clause)}`)\n if (!at) return\n this.clause = ''\n at.scrollIntoView()\n }\n\n private open(code: string) {\n this.chosenVersion = ''\n const params = new URLSearchParams(location.search)\n if (code) params.set('regulation', code)\n else ['regulation', 'version', 'clause'].forEach(name => params.delete(name))\n const query = params.toString()\n navigate(`regulations${query ? `?${query}` : ''}`)\n }\n\n /** 「읽었습니다」 is the acknowledgement of the announcement that told of the version - one record, wherever it is pressed. */\n private async acknowledge(view: any) {\n try {\n const response = await client.mutate({\n mutation: gql`\n mutation ($id: String!) {\n acknowledgeAnnouncement(id: $id) { id }\n }\n `,\n variables: { id: view.version.announcementId }\n })\n if ((response as any).errors?.length) throw response\n notify({ message: i18next.t('text.regulation-acknowledged') })\n await this.read.refetch()\n } catch (error) {\n notify({ level: 'error', message: failureOf(error) })\n }\n }\n}\n"]}
@@ -17,6 +17,7 @@ export const VERSION_VIEW = gql `
17
17
  workersCount
18
18
  adoptedAt
19
19
  adoptionNote
20
+ registeredInForce
20
21
  announcementId
21
22
  activityInstanceId
22
23
  }
@@ -25,11 +26,15 @@ export const VERSION_VIEW = gql `
25
26
  number
26
27
  title
27
28
  chapter
29
+ heading
28
30
  text
29
31
  }
32
+ appendix
33
+ text
30
34
  changes {
31
35
  number
32
36
  title
37
+ heading
33
38
  change
34
39
  }
35
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"regulation-fragments.js","sourceRoot":"","sources":["../../client/regulation/regulation-fragments.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAE7B,iGAAiG;AACjG,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiC9B,CAAA","sourcesContent":["import gql from 'graphql-tag'\n\n/* What the rule screens read of a version - one shape for the reader's page and the keeper's. */\nexport const VERSION_VIEW = gql`\n fragment RegulationVersionViewFields on RegulationVersionView {\n period\n endsOn\n told\n readAt\n version {\n id\n version\n body\n effectiveOn\n changeSummary\n unfavourable\n status\n workersCount\n adoptedAt\n adoptionNote\n announcementId\n activityInstanceId\n }\n clauses {\n id\n number\n title\n chapter\n text\n }\n changes {\n number\n title\n change\n }\n }\n`\n"]}
1
+ {"version":3,"file":"regulation-fragments.js","sourceRoot":"","sources":["../../client/regulation/regulation-fragments.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAE7B,iGAAiG;AACjG,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsC9B,CAAA","sourcesContent":["import gql from 'graphql-tag'\n\n/* What the rule screens read of a version - one shape for the reader's page and the keeper's. */\nexport const VERSION_VIEW = gql`\n fragment RegulationVersionViewFields on RegulationVersionView {\n period\n endsOn\n told\n readAt\n version {\n id\n version\n body\n effectiveOn\n changeSummary\n unfavourable\n status\n workersCount\n adoptedAt\n adoptionNote\n registeredInForce\n announcementId\n activityInstanceId\n }\n clauses {\n id\n number\n title\n chapter\n heading\n text\n }\n appendix\n text\n changes {\n number\n title\n heading\n change\n }\n }\n`\n"]}
@@ -39,7 +39,8 @@ export async function guideSectionOf(topic, id) {
39
39
  const head = doc?.querySelector(`h2[id="${CSS.escape(id)}"]`);
40
40
  if (!doc || !head)
41
41
  return null;
42
- const parts = [head.outerHTML];
42
+ const notice = doc.querySelector('.notice[role="note"]');
43
+ const parts = [...(notice ? [notice.outerHTML] : []), head.outerHTML];
43
44
  for (let node = head.nextElementSibling; node && node.tagName !== 'H2'; node = node.nextElementSibling)
44
45
  if (node.tagName !== 'STYLE')
45
46
  parts.push(node.outerHTML);