PageSourceSearch

https://appt.doctorsfile.jp/_next/static/chunks/pages/doctor-setti…/notification-setting-ac3ae5dc17649de4.js

js doctorsfile.jp collected 2026-09-24 08:50:48 UTC 19,481 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4821],{48361:function(e,t,i){"use strict";i.d(t,{$Y:function(){return d}});var a=i(85893),n=i(67294),s=i(48583);function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(e[a]=i[a])}return e}).apply(this,arguments)}let l=(e,t)=>e.unstable_is?e.unstable_is(t):t===e,r=(e,t)=>e===t||e.size===t.size&&Array.from(e).every(e=>t.has(e)),c=(0,n.createContext)([e=>e,void 0]),d=({atoms:e,children:t})=>{let i=(0,n.useContext)(c),d=new Set(e),[m,p]=i,u=(0,s.oR)(),f=null!=p?p:u,x=()=>{let e=new WeakMap,t=(e,t)=>{let i=(e,i)=>l(i,e)?t?a(i):m(i):a(i),n=o({},e,"read"in e&&{read:(t,a)=>e.read(a=>t(i(e,a)),a)},"write"in e&&{write:(t,a,...n)=>e.write(a=>t(i(e,a)),(t,...n)=>a(i(e,t),...n),...n)},{unstable_is:t=>l(t,e)});return n},a=i=>{let a=e.get(i);return a||(a=d.has(i)?t(i,!0):t(i,!1),e.set(i,a)),a},n=i=>{if(d.has(i)){let a=e.get(i);return a||(a=t(i,!1),e.set(i,a)),a}return m(i)},s=o({},f,{get:(e,...t)=>f.get(a(e),...t),set:(e,...t)=>f.set(a(e),...t),sub:(e,...t)=>f.sub(a(e),...t)});return[s,[n,f],i,d]},[N,g]=(0,n.useState)(x);i===N[2]&&r(d,N[3])||g(x);let[h,j]=N;return(0,a.jsx)(c.Provider,{value:j,children:(0,a.jsx)(s.zt,{store:h,children:t})})}},11741:function(e,t,i){(window.__NEXT_P=window.__NEXT_P||[]).push(["/doctor-setting/[hid]/initialize/notification-setting",function(){return i(28090)}])},91807:function(e,t,i){"use strict";var a=i(85893);i(67294);let n=e=>{let{domains:t,emphasized:i=!1}=e;return i?(0,a.jsxs)("div",{className:"bg-[#e9efd9] rounded-lg py-[11px] px-[17px] text-[13px]",children:["※",(0,a.jsx)("span",{className:"font-bold",children:"下記ドメインのメールアドレスにはシステムからのメールが届かない"}),"場合がございます。他のドメインのアドレスをご入力ください。",(0,a.jsx)("br",{}),"【対象】",(0,a.jsx)("br",{}),t.map((e,t)=>(0,a.jsxs)("span",{className:"mr-4",children:[e," "]},t))]}):(0,a.jsxs)("div",{children:["※下記のドメインのメールアドレスに対してはシステムからのメールが正しく届かない場合がございます。",(0,a.jsx)("br",{}),"他のドメインのメールアドレスをご入力ください。",(0,a.jsx)("br",{}),"【対象】",(0,a.jsx)("br",{}),t.map((e,t)=>(0,a.jsxs)("span",{className:"mr-4",children:[e," "]},t))]})};t.Z=n},92553:function(e,t,i){"use strict";var a=i(85893);i(67294);let n=e=>{let{children:t}=e;return(0,a.jsx)("div",{className:"text-xs font-medium text-doctor-error",children:t})};t.Z=n},94290:function(e,t,i){"use strict";i.d(t,{h:function(){return l}});var a=i(85893);i(67294);var n=i(23569),s=i(87536),o=i(89583);let l=e=>{let{label:t,name:i,className:l,disabled:r,rules:c}=e,{register:d,watch:m}=(0,s.Gc)(),p=m(i);return(0,a.jsx)("div",{className:"flex max-w-md flex-col gap-4",id:"checkbox",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(n.XZ,{id:i,...d(i,c),className:"sr-only",disabled:r}),(0,a.jsx)(n.__,{htmlFor:i,className:"items-center cursor-pointer w-full ".concat(l),children:(0,a.jsxs)("div",{className:"flex flex-none  min-w-40 border-2 rounded-md p-[15px] h-[54px] space-x-3\n              ".concat(p&&" border-doctor-base","\n              ").concat(r&&" bg-doctor-inactive-field cursor-not-allowed","\n              "),children:[(0,a.jsx)("div",{className:"flex items-center justify-center border border-doctor-disabled rounded-[4px] w-[21px] h-[21px] bg-doctor-inactive-check",children:p&&(0,a.jsx)(o.l_A,{className:"text-doctor-selected"})}),(0,a.jsx)("div",{className:"font-bold",children:t})]})})]})})}},33025:function(e,t,i){"use strict";i.d(t,{K:function(){return p},N:function(){return u}});var a=i(85893),n=i(67294),s=i(27856),o=i.n(s),l=i(23569),r=i(87536),c=i(32196),d=i(94433),m=i(92553);let p=e=>{let{name:t,disabled:i=!1,placeholder:n,color:s,rules:o,addMarginOnError:p=!0}=e,{control:u,formState:{errors:f}}=(0,r.Gc)(),x=(0,d.U)(f,t),N=p&&x?"mt-5":"";return(0,a.jsx)(a.Fragment,{children:(0,a.jsx)(r.Qr,{control:u,name:t,rules:o,render:e=>{let{field:t}=e;return(0,a.jsxs)("div",{className:N,children:[(0,a.jsx)(l.gx,{...t,theme:c.Q.textarea,disabled:i,placeholder:n,color:s||"gray"}),x&&(0,a.jsx)("div",{className:"mt-1 h-5",children:(0,a.jsx)(m.Z,{children:x})})]})}})})},u=e=>{let{name:t,backgroundColor:i="bg-doctor-disabled"}
1=e,[s,l]=(0,n.useState)(""),{watch:c}=(0,r.Gc)(),d=c(t);return(0,n.useEffect)(()=>{l(o().sanitize(d))},[d]),(0,a.jsx)("div",{className:"Link p-2.5 text-sm ".concat(i," rounded-lg borderh-72 overflow-auto"),dangerouslySetInnerHTML:{__html:s}})}},92862:function(e,t,i){"use strict";i.d(t,{j:function(){return c}});var a=i(85893);i(67294);var n=i(23569),s=i(87536),o=i(92553),l=i(32196),r=i(94433);let c=e=>{let{name:t,placeholder:i,size:c="md",color:d="gray",disabled:m=!1,rules:p,readOnly:u=!1,addMarginOnError:f=!0,onClick:x}=e,{control:N,formState:{errors:g}}=(0,s.Gc)(),h=(0,r.U)(g,t),j=f&&h?"mt-5":"";return(0,a.jsx)(s.Qr,{control:N,name:t,rules:p,render:e=>{let{field:t}=e;return(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:j,onClick:x,children:(0,a.jsx)(n.oi,{...t,placeholder:i,value:t.value||"",theme:l.Q.textInput,sizing:c,color:d,disabled:m,readOnly:u})}),h&&(0,a.jsx)("div",{className:"mt-1",children:(0,a.jsx)(o.Z,{children:h})})]})}})}},11218:function(e,t,i){"use strict";i.d(t,{BU:function(){return l},C9:function(){return d},GT:function(){return r},HW:function(){return a},LP:function(){return m},Ml:function(){return f},OZ:function(){return o},Rc:function(){return x},Yc:function(){return N},o8:function(){return n},pT:function(){return c},ro:function(){return g},xX:function(){return s}});let a=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,63}$/,n=/^(\d{2}-\d{4}-\d{4}|\d{3}-\d{3}-\d{4}|\d{3}-\d{4}-\d{4}|\d{4}-\d{2}-\d{4}|\d{4}-\d{3}-\d{3}|\d{5}-\d{1}-\d{4})$/,s=e=>({maxLength:{value:e,message:"".concat(e,"文字以内で入力してください")}}),o={validate:e=>!/\s/.test(e)||"空白を含めないでください"},l={pattern:{value:/^[\u30A0-\u30FF]+$/,message:"カタカナで入力してください"}},r={pattern:{value:a,message:"メールアドレスの形式が誤っています。"}},c=/^\d{8}$/,d={validate:e=>!!(!e||c.test(e))||"生年月日は年・月・日をすべて入力してください"},m={pattern:{value:/^\d{2,4}-?\d{3,4}-?\d{4}$/,message:"電話番号の形式が誤っています。"}},p=/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)[A-Za-z\d]+$/,u=/^[A-Za-z\d]+$/,f="パスワードは大文字英字・小文字英字・数字を含む8文字以上16文字以下で設定してください。",x="利用規約およびプライバシーポリシーへの同意が必要です",N=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"password";return{required:"確認用のパスワードを設定してください。",validate:i=>{let a=e(t);return i===a||"パスワードとパスワード(確認用)が一致しません"}}},g={required:"パスワードを設定してください",minLength:{value:8,message:f},maxLength:{value:16,message:f},validate:e=>u.test(e)?!!p.test(e)||f:"記号が含まれています。パスワードは大文字英字・小文字英字・数字のみ入力可能です。"}},28090:function(e,t,i){"use strict";i.r(t),i.d(t,{NotificationSetting:function(){return y},__N_SSP:function(){return S},default:function(){return M}});var a=i(85893),n=i(67294),s=i(11163),o=i(46981),l=i(53025),r=i(87536),c=i(13626),d=i(17184),m=i(91807),p=i(11218),u=i(7818),f=i(10906),x=i(98513),N=i(72395),g=i(94290),h=i(33025),j=i(92862),v=i(64355);let b=()=>{var e;let t=(0,s.useRouter)(),i=Number(t.query.hid),{doctorInitializeData:o,setDoctorInitializeData:l}=(0,d.r)(i,t),b=(null==o?void 0:o.appointType)||"seq",_="seq"==b?5:6,{removePageLeaveEvent:S}=(0,c.O)(!0,!1),y=()=>{t.push((0,v.m)(b,_-1,i))},M=async()=>{if(o){if(q.getValues("mailNotificationEnabled")&&!q.getValues("appointNoticeSendmail")){q.setError("appointNoticeSendmail",{message:"メールアドレスを入力してください"});return}if(q.getValues("faxNotificationEnabled")&&!q.getValues("appointmentNoticeFax")){q.setError("appointmentNoticeFax",{message:"FAX番号を入力してください"});return}if("seq"==b){if(!o.seqData)return;let e=q.getValues("mailNotificationEnabled")&&q.getValues("faxNotificationEnabled")?"mail_fax_notification_enabled":q.getValues("mailNotificationEnabled")?"mail_notification_enabled":q.getValues("faxNotificationEnabled")?"fax_notification_enabled":"notification_disabled",t=[{mailType:"notice_mail_to_patient",message:q.getValues("appointmentConfirmationMessage")},{mailType:"nearby_notice_mail_to_patient",message:q.getValues("justBeforeAppointmentConfirmationMessage")}];o.seqData.postSeqInitialSettingRequest.appointNoticeType=e,o.seqData.postSeqInitialSettingRequest.appointNoticeMailWebonly=q.getValues("isAppointmentNoticeMail"),o.seqData.postSeqInitialSettingRequest.appointNoticeSendmail1=q.getValues("appointNoticeSendmail")||null,o.seqData.postSeqInitialSettingRequest.appointNoticeFaxWebonly=q.getValues("isAppointmentNoticeFax"),o.seqData.postSeqInitialSettingRequest.appointNoticeSendfax1=q.getValues("appointmentNoticeFax")||null,o.seqData.postSeqInitialSettingRequest.orderNoticeMailUse=q.getValues("useNearbyNoticeMail"),o.seqData.postSeqInitialSettingRequest.mailInfos=t}else{if(!o.timeData)return;
1let e=q.getValues("mailNotificationEnabled")&&q.getValues("faxNotificationEnabled")?"mail_fax_notification_enabled":q.getValues("mailNotificationEnabled")?"mail_notification_enabled":q.getValues("faxNotificationEnabled")?"fax_notification_enabled":"notification_disabled",t=[{mailType:"notice_mail_to_patient",message:q.getValues("appointmentConfirmationMessage")},{mailType:"nearby_notice_mail_to_patient",message:q.getValues("justBeforeAppointmentConfirmationMessage")}];o.timeData.postTimeInitialSettingRequest.appointNoticeType=e,o.timeData.postTimeInitialSettingRequest.appointNoticeMailWebonly=q.getValues("isAppointmentNoticeMail"),o.timeData.postTimeInitialSettingRequest.appointNoticeSendmail1=q.getValues("appointNoticeSendmail")||null,o.timeData.postTimeInitialSettingRequest.appointNoticeFaxWebonly=q.getValues("isAppointmentNoticeFax"),o.timeData.postTimeInitialSettingRequest.appointNoticeSendfax1=q.getValues("appointmentNoticeFax")||null,o.timeData.postTimeInitialSettingRequest.orderNoticeMailUse=q.getValues("useNearbyNoticeMail"),o.timeData.postTimeInitialSettingRequest.mailInfos=t}l(o),S(),t.push((0,v.m)(b,_+1,i))}},q=(0,r.cI)({defaultValues:(()=>{var e,t,i,a,n,s,l,r,c,d;if("seq"==b){let s=null==o?void 0:null===(e=o.seqData)||void 0===e?void 0:e.postSeqInitialSettingRequest;if(s)return{mailNotificationEnabled:"mail_notification_enabled"==s.appointNoticeType||"mail_fax_notification_enabled"==s.appointNoticeType,isAppointmentNoticeMail:s.appointNoticeMailWebonly||!1,appointNoticeSendmail:s.appointNoticeSendmail1||"",faxNotificationEnabled:"fax_notification_enabled"==s.appointNoticeType||"mail_fax_notification_enabled"==s.appointNoticeType,isAppointmentNoticeFax:s.appointNoticeFaxWebonly||!1,appointmentNoticeFax:s.appointNoticeSendfax1||"",appointmentConfirmationSampleMessage:String(o.initialSetting.seqNoticeMailToPatient),temporaryAppointmentConfirmationSampleMessage:String(o.initialSetting.timeTemporaryNoticeMailToPatient),appointmentConfirmationMessage:(null===(t=null===(i=s.mailInfos)||void 0===i?void 0:i.find(e=>"notice_mail_to_patient"==e.mailType))||void 0===t?void 0:t.message)||"",useNearbyNoticeMail:s.orderNoticeMailUse||!1,justBeforeAppointmentConfirmationSampleMessage:String(o.initialSetting.seqNearbyNoticeMailToPatient),justBeforeAppointmentConfirmationMessage:(null===(a=null===(n=s.mailInfos)||void 0===n?void 0:n.find(e=>"nearby_notice_mail_to_patient"==e.mailType))||void 0===a?void 0:a.message)||""}}else{let e=null==o?void 0:null===(s=o.timeData)||void 0===s?void 0:s.postTimeInitialSettingRequest;if(e)return{mailNotificationEnabled:"mail_notification_enabled"==e.appointNoticeType||"mail_fax_notification_enabled"==e.appointNoticeType,isAppointmentNoticeMail:e.appointNoticeMailWebonly||!1,appointNoticeSendmail:e.appointNoticeSendmail1||"",faxNotificationEnabled:"fax_notification_enabled"==e.appointNoticeType||"mail_fax_notification_enabled"==e.appointNoticeType,isAppointmentNoticeFax:e.appointNoticeFaxWebonly||!1,appointmentNoticeFax:e.appointNoticeSendfax1||"",appointmentConfirmationSampleMessage:String(o.initialSetting.seqNoticeMailToPatient),temporaryAppointmentConfirmationSampleMessage:String(o.initialSetting.timeTemporaryNoticeMailToPatient),appointmentConfirmationMessage:(null===(l=null===(r=e.mailInfos)||void 0===r?void 0:r.find(e=>"notice_mail_to_patient"==e.mailType))||void 0===l?void 0:l.message)||"",useNearbyNoticeMail:e.orderNoticeMailUse||!1,justBeforeAppointmentConfirmationSampleMessage:String(o.initialSetting.seqNearbyNoticeMailToPatient),justBeforeAppointmentConfirmationMessage:(null===(c=null===(d=e.mailInfos)||void 0===d?void 0:d.find(e=>"nearby_notice_mail_to_patient"==e.mailType))||void 0===c?void 0:c.message)||""}}return{mailNotificationEnabled:!1,isAppointmentNoticeMail:!1,appointNoticeSendmail:"",faxNotificationEnabled:!1,isAppointmentNoticeFax:!1,appointmentNoticeFax:"",appointmentConfirmationSampleMessage:"",temporaryAppointmentConfirmationSampleMessage:"",appointmentConfirmationMessage:"",useNearbyNoticeMail:!1,justBeforeAppointmentConfirmationSampleMessage:"",justBeforeAppointmentConfirmationMessage:""}})()}
1),A=q.watch("mailNotificationEnabled");(0,n.useEffect)(()=>{A||q.setValue("isAppointmentNoticeMail",!1)},[A,q]);let T=q.watch("faxNotificationEnabled");return(0,n.useEffect)(()=>{T||q.setValue("isAppointmentNoticeFax",!1)},[T,q]),(0,a.jsx)("div",{className:"flex justify-center",children:(0,a.jsx)("div",{className:"w-[1167px] py-[40px]",children:(0,a.jsxs)("div",{className:"flex flex-col gap-10",children:[(0,a.jsx)(v.Y,{appointType:b,currentNo:_}),(0,a.jsxs)(f._,{children:[(0,a.jsx)(N.H,{text:"通知設定"}),(0,a.jsxs)(r.RV,{...q,children:[(0,a.jsxs)("div",{className:"my-5",children:[(0,a.jsx)("p",{className:"font-bold",children:"医院向け通知"}),(0,a.jsxs)("div",{children:["1.予約が入った際・変更/キャンセルされた際にメール通知を受け取る場合はチェックを入れてください。",(0,a.jsxs)("div",{className:"flex",children:[(0,a.jsx)("div",{className:"m-5",children:(0,a.jsx)(g.h,{name:"mailNotificationEnabled",label:"メール通知を受け取る"})}),(0,a.jsx)("div",{className:"m-5",children:(0,a.jsx)(g.h,{name:"isAppointmentNoticeMail",label:"院内予約・変更/キャンセルの通知は受け取らない",disabled:!q.watch("mailNotificationEnabled")})})]}),"1-1.通知先メールアドレスを入力してください。",(0,a.jsxs)("div",{className:"m-5",children:[(0,a.jsx)(j.j,{name:"appointNoticeSendmail",placeholder:"メールアドレスを入力してください",disabled:!q.watch("mailNotificationEnabled"),rules:{pattern:{value:p.HW,message:"メールアドレスの形式が誤っています。"}}}),(0,a.jsx)(x.U,{className:"leading-8",children:(0,a.jsx)(m.Z,{domains:null!==(e=null==o?void 0:o.initialSetting.excludeDomains)&&void 0!==e?e:[]})})]})]}),(0,a.jsxs)("div",{children:["2.予約が入った際・変更/キャンセルされた際にFAX通知を受け取る場合はチェックを入れてください。",(0,a.jsxs)("div",{className:"flex",children:[(0,a.jsx)("div",{className:"m-5",children:(0,a.jsx)(g.h,{name:"faxNotificationEnabled",label:"FAX通知を受け取る"})}),(0,a.jsx)("div",{className:"m-5",children:(0,a.jsx)(g.h,{name:"isAppointmentNoticeFax",label:"院内予約・変更/キャンセルの通知は受け取らない",disabled:!q.watch("faxNotificationEnabled")})})]}),"2-1.通知先FAX番号を入力してください。",(0,a.jsx)("div",{className:"m-5",children:(0,a.jsx)(j.j,{name:"appointmentNoticeFax",placeholder:"FAX番号を入力してください (ex. 03-1234-5678)",disabled:!q.watch("faxNotificationEnabled"),rules:{pattern:{value:p.o8,message:"FAX番号の形式が誤っています。"}}})})]})]}),(0,a.jsxs)("div",{className:"mt-5",children:[(0,a.jsx)("p",{className:"font-bold",children:"患者様向け通知"}),(0,a.jsxs)("div",{children:["3.患者様への予約確認通知メール内にオリジナルメッセージを含めたい場合は入力してください。","time"==b&&(0,a.jsx)("div",{children:"※仮予約運用を行う場合は仮予約時と予約確定時の2回、メールが送信されます。"}),(0,a.jsxs)("div",{className:"flex m-5 space-x-4",children:[(0,a.jsxs)("div",{style:{width:"time"==b?"50%":"100%"},children:[(0,a.jsx)("div",{children:"本予約通知内容(サンプル)"}),(0,a.jsx)(h.N,{name:"appointmentConfirmationSampleMessage"})]}),"time"==b&&(0,a.jsxs)("div",{style:{width:"50%"},children:[(0,a.jsx)("div",{children:"仮予約通知内容(サンプル)"}),(0,a.jsx)(h.N,{name:"temporaryAppointmentConfirmationSampleMessage"})]})]}),"seq"==b&&(0,a.jsxs)("p",{className:"mx-5 mt-2",children:["※「●人前にはご来院ください」の部分については、『予約枠設定画面』にて数値の設定が可能です",(0,a.jsx)("br",{})]}),(0,a.jsxs)("div",{className:"m-5",children:[(0,a.jsx)("div",{children:"通知内容に加えて貴院オリジナルのメッセージを送信したい場合はこちらに入力してください"}),(0,a.jsx)(h.K,{name:"appointmentConfirmationMessage",disabled:!1,rules:{maxLength:{value:1e3,message:"1000字以内で入力してください"}}})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{children:"4.患者への予約直前通知メールをé€
1ä¿¡ã™ã‚‹å ´åˆã¯ãƒã‚§ãƒƒã‚¯ã‚’入れてください。"}),"time"==b&&(0,a.jsx)("div",{children:"※予約日前日の昼12:00にメールが送信されます。"}),(0,a.jsx)("div",{className:"m-5",children:(0,a.jsx)(g.h,{name:"useNearbyNoticeMail",label:"送信する",className:"w-32"})}),(0,a.jsxs)("div",{className:"m-5",children:[(0,a.jsx)("div",{children:"本予約通知内容(サンプル)"}),(0,a.jsx)(h.N,{name:"justBeforeAppointmentConfirmationSampleMessage"})]}),(0,a.jsxs)("div",{className:"m-5",children:[(0,a.jsx)("div",{children:"通知内容に加えて貴院オリジナルのメッセージを送信したい場合はこちらに入力してください"}),(0,a.jsx)(h.K,{name:"justBeforeAppointmentConfirmationMessage",disabled:!q.watch("useNearbyNoticeMail"),rules:{maxLength:{value:1e3,message:"1000字以内で入力してください"}}})]})]})]})]}),(0,a.jsxs)("div",{className:"flex gap-4",children:[(0,a.jsx)(u.o,{text:"戻る",className:"mt-10 w-40",onClick:y,color:"white"}),(0,a.jsx)(u.o,{text:"次へ",className:"mt-10 w-40",onClick:q.handleSubmit(M)})]})]})]})})})};var _=i(25638),S=!0;let y=()=>{let e=(0,s.useRouter)(),t=Number(e.query.hid);return(0,a.jsx)("div",{children:(0,a.jsx)(_.A,{hid:t,isInitializing:!0,children:(0,a.jsxs)(l.A,{children:[(0,a.jsx)(o.V,{title:"初期設定"}),(0,a.jsx)(b,{})]})})})};var M=y},94433:function(e,t,i){"use strict";i.d(t,{U:function(){return a}});let a=(e,t)=>{let i=t.split("."),a=e;for(let e of i)if(!(a=a[e]))return;return a.message||void 0}}},function(e){e.O(0,[5445,6556,1137,1664,7536,7049,651,8677,6191,9774,2888,179],function(){return e(e.s=11741)}),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.